; ; setSBUpLow from 0x18013a3b8 to 0x18013a599 (481 bytes) ; ; 3 xrefs: ; > _setmbcp_nolock @ 0x18013a936 ; > @ 0x180203848 ; > @ 0x180203854 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp-8+arg_8], rbx ; +0x0, 0x18013a3b8 mov [rsp-8+arg_10], rsi ; +0x5, 0x18013a3bd push rbp ; +0xa, 0x18013a3c2 lea rbp, [rsp-680h] ; +0xb, 0x18013a3c3 sub rsp, 780h ; +0x13, 0x18013a3cb mov rax, cs:__security_cookie ; +0x1a, 0x18013a3d2 xor rax, rsp ; +0x21, 0x18013a3d9 mov [rbp+680h+var_10], rax ; +0x24, 0x18013a3dc mov rbx, rcx ; +0x2b, 0x18013a3e3 mov ecx, [rcx+4]; CodePage ; +0x2e, 0x18013a3e6 cmp ecx, 0FDE9h ; +0x31, 0x18013a3e9 jz loc_18013A532 ; +0x37, 0x18013a3ef lea rdx, [rsp+780h+CPInfo]; lpCPInfo ; +0x3d, 0x18013a3f5 call cs:GetCPInfo ; +0x42, 0x18013a3fa test eax, eax ; +0x48, 0x18013a400 jz loc_18013A532 ; +0x4a, 0x18013a402 xor eax, eax ; +0x50, 0x18013a408 lea rcx, [rsp+780h+var_710] ; +0x52, 0x18013a40a mov esi, 100h ; +0x57, 0x18013a40f mov [rcx], al ; +0x5c, 0x18013a414 inc eax ; +0x5e, 0x18013a416 inc rcx ; +0x60, 0x18013a418 cmp eax, esi ; +0x63, 0x18013a41b jb short loc_18013A414 ; +0x65, 0x18013a41d mov al, [rsp+780h+CPInfo.LeadByte] ; +0x67, 0x18013a41f lea rdx, [rsp+780h+CPInfo.LeadByte] ; +0x6b, 0x18013a423 mov [rsp+780h+var_710], 20h ; ' ' ; +0x70, 0x18013a428 jmp short loc_18013A44F ; +0x75, 0x18013a42d movzx r8d, byte ptr [rdx+1] ; +0x77, 0x18013a42f movzx ecx, al ; +0x7c, 0x18013a434 jmp short loc_18013A444 ; +0x7f, 0x18013a437 cmp ecx, esi ; +0x81, 0x18013a439 jnb short loc_18013A449 ; +0x83, 0x18013a43b mov [rsp+rcx+780h+var_710], 20h ; ' ' ; +0x85, 0x18013a43d inc ecx ; +0x8a, 0x18013a442 cmp ecx, r8d ; +0x8c, 0x18013a444 jbe short loc_18013A439 ; +0x8f, 0x18013a447 add rdx, 2 ; +0x91, 0x18013a449 mov al, [rdx] ; +0x95, 0x18013a44d test al, al ; +0x97, 0x18013a44f jnz short loc_18013A42F ; +0x99, 0x18013a451 mov eax, [rbx+4] ; +0x9b, 0x18013a453 lea r8, [rsp+780h+var_710] ; +0x9e, 0x18013a456 and [rsp+780h+var_750], 0 ; +0xa3, 0x18013a45b mov r9d, esi ; +0xa8, 0x18013a460 mov dword ptr [rsp+780h+var_758], eax; int ; +0xab, 0x18013a463 mov edx, 1; dwInfoType ; +0xaf, 0x18013a467 lea rax, [rbp+680h+CharType] ; +0xb4, 0x18013a46c xor ecx, ecx; struct __crt_locale_pointers * ; +0xbb, 0x18013a473 mov [rsp+780h+lpCharType], rax; lpCharType ; +0xbd, 0x18013a475 call __acrt_GetStringTypeA ; +0xc2, 0x18013a47a and [rsp+780h+var_740], 0 ; +0xc7, 0x18013a47f lea r9, [rsp+780h+var_710]; char * ; +0xcc, 0x18013a484 mov eax, [rbx+4] ; +0xd1, 0x18013a489 mov r8d, esi; unsigned int ; +0xd4, 0x18013a48c mov rdx, [rbx+220h]; wchar_t * ; +0xd7, 0x18013a48f xor ecx, ecx; struct __crt_locale_pointers * ; +0xde, 0x18013a496 mov [rsp+780h+var_748], eax; int ; +0xe0, 0x18013a498 lea rax, [rbp+680h+var_610] ; +0xe4, 0x18013a49c mov [rsp+780h+var_750], esi; int ; +0xe8, 0x18013a4a0 mov [rsp+780h+var_758], rax; char * ; +0xec, 0x18013a4a4 mov dword ptr [rsp+780h+lpCharType], esi; int ; +0xf1, 0x18013a4a9 call __acrt_LCMapStringA ; +0xf5, 0x18013a4ad and [rsp+780h+var_740], 0 ; +0xfa, 0x18013a4b2 lea r9, [rsp+780h+var_710]; char * ; +0xff, 0x18013a4b7 mov eax, [rbx+4] ; +0x104, 0x18013a4bc mov r8d, 200h; unsigned int ; +0x107, 0x18013a4bf mov rdx, [rbx+220h]; wchar_t * ; +0x10d, 0x18013a4c5 xor ecx, ecx; struct __crt_locale_pointers * ; +0x114, 0x18013a4cc mov [rsp+780h+var_748], eax; int ; +0x116, 0x18013a4ce lea rax, [rbp+680h+var_510] ; +0x11a, 0x18013a4d2 mov [rsp+780h+var_750], esi; int ; +0x121, 0x18013a4d9 mov [rsp+780h+var_758], rax; char * ; +0x125, 0x18013a4dd mov dword ptr [rsp+780h+lpCharType], esi; int ; +0x12a, 0x18013a4e2 call __acrt_LCMapStringA ; +0x12e, 0x18013a4e6 mov eax, 1 ; +0x133, 0x18013a4eb lea rdx, [rbp+680h+CharType] ; +0x138, 0x18013a4f0 test byte ptr [rdx], 1 ; +0x13f, 0x18013a4f7 jz short loc_18013A507 ; +0x142, 0x18013a4fa or byte ptr [rax+rbx+18h], 10h ; +0x144, 0x18013a4fc mov cl, [rbp+rax+680h+var_611] ; +0x149, 0x18013a501 jmp short loc_18013A51C ; +0x14d, 0x18013a505 test byte ptr [rdx], 2 ; +0x14f, 0x18013a507 jz short loc_18013A51A ; +0x152, 0x18013a50a or byte ptr [rax+rbx+18h], 20h ; +0x154, 0x18013a50c mov cl, [rbp+rax+680h+var_511] ; +0x159, 0x18013a511 jmp short loc_18013A51C ; +0x160, 0x18013a518 xor cl, cl ; +0x162, 0x18013a51a mov [rax+rbx+118h], cl ; +0x164, 0x18013a51c add rdx, 2 ; +0x16b, 0x18013a523 inc rax ; +0x16f, 0x18013a527 sub rsi, 1 ; +0x172, 0x18013a52a jnz short loc_18013A4F7 ; +0x176, 0x18013a52e jmp short loc_18013A575 ; +0x178, 0x18013a530 xor edx, edx ; +0x17a, 0x18013a532 mov esi, 100h ; +0x17c, 0x18013a534 lea ecx, [rdx+1] ; +0x181, 0x18013a539 lea r8d, [rdx-61h] ; +0x184, 0x18013a53c lea eax, [r8+20h] ; +0x188, 0x18013a540 cmp eax, 19h ; +0x18c, 0x18013a544 ja short loc_18013A553 ; +0x18f, 0x18013a547 or byte ptr [rbx+rcx+18h], 10h ; +0x191, 0x18013a549 lea eax, [rdx+20h] ; +0x196, 0x18013a54e jmp short loc_18013A565 ; +0x199, 0x18013a551 cmp r8d, 19h ; +0x19b, 0x18013a553 ja short loc_18013A563 ; +0x19f, 0x18013a557 or byte ptr [rbx+rcx+18h], 20h ; +0x1a1, 0x18013a559 lea eax, [rdx-20h] ; +0x1a6, 0x18013a55e jmp short loc_18013A565 ; +0x1a9, 0x18013a561 xor al, al ; +0x1ab, 0x18013a563 mov [rbx+rcx+118h], al ; +0x1ad, 0x18013a565 inc edx ; +0x1b4, 0x18013a56c inc rcx ; +0x1b6, 0x18013a56e cmp edx, esi ; +0x1b9, 0x18013a571 jb short loc_18013A53C ; +0x1bb, 0x18013a573 mov rcx, [rbp+680h+var_10] ; +0x1bd, 0x18013a575 xor rcx, rsp; StackCookie ; +0x1c4, 0x18013a57c call __security_check_cookie ; +0x1c7, 0x18013a57f lea r11, [rsp+780h+var_s0] ; +0x1cc, 0x18013a584 mov rbx, [r11+18h] ; +0x1d4, 0x18013a58c mov rsi, [r11+20h] ; +0x1d8, 0x18013a590 mov rsp, r11 ; +0x1dc, 0x18013a594 pop rbp ; +0x1df, 0x18013a597 retn ; +0x1e0, 0x18013a598