Function at 0x406d12
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42d093
call fcn.0042c5b0
sub esp, 0xec
mov al, byte [0x437bfa]
push ebx
push esi
push edi
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov word [0x437c00], ax
mov byte [0x437bec], 1
movsx eax, ax
and eax, 0xf92bffff
add dword [0x437c28], eax
call fcn.004068fe
test al, al
je 0x406d69
movsx ax, byte [0x437bf1]
add word [0x437c04], ax
jmp 0x406f45
sub dword [0x437c10], 0x5820001
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [0x437c0c], eax
call fcn.0040309c
push dword [0x437c1c]
mov byte [ebp - 0xd], al
push dword [0x437c08]
call fcn.0040ff4b
mov dword [0x437c08], eax
mov eax, dword [0x437c10]
sub eax, dword [0x437c18]
push 0x40a1ffff
push 0xf68fffff
add dword [0x437c14], eax
call fcn.00410092
xor ebx, ebx
add esp, 0x10
cmp byte [ebp - 0xd], bl
mov byte [0x437be8], al
je 0x406e46
push dword [0x437c24]
push 0x15e3ffff
call fcn.00410092
push dword [0x437c24]
add word [0x437c04], ax
push 0x5825ffff
call fcn.0040ffc6
mov byte [0x437bec], al
call fcn.00403260
mov al, byte [0x437be8]
push dword [0x437c08]
add al, byte [0x437bfa]
add byte [0x437bed], al
movsx eax, word [0x437c04]
push eax
call fcn.0040ffc6
add word [0x437c00], ax
movsx eax, word [0x437bf8]
push eax
movsx eax, word [0x437c02]
push eax
call fcn.0040ffe3
add esp, 0x20
add word [0x437bf8], ax
movsx eax, word [0x437bf8]
push 0x161bffff
push eax
call fcn.0041004e
push 0x4a
mov byte [0x437bef], al
call fcn.0041448a
add esp, 0xc
call eax
push eax
call dword [sym.imp.MSVCRT.dll_srand]
movsx eax, word [0x437bf2]
push eax
push 0x6e1ffff
call fcn.004100bc
mov dword [0x437c08], eax
add esp, 0xc
movsx ax, byte [0x437beb]
or ax, word [0x437bfa]
mov word [0x437bf6], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add byte [0x437bef], al
movsx eax, byte [0x437be9]
push eax
push dword [0x437c14]
call fcn.004100bc
mov dword [0x437c1c], eax
call fcn.0042b777
push 0x6bbfffff
push 0xd97ffff
call fcn.0040ff78
add byte [0x437bf0], al
movsx eax, byte [0x437be9]
movsx ecx, word [0x437bfa]
and eax, ecx
add dword [0x437c1c], eax
cmp dword [0x437c0c], ebx
setne al
mov byte [0x437bef], al
movsx eax, byte [0x437bea]
push eax
push dword [0x437c28]
call fcn.0041004e
add esp, 0x18
mov word [0x437bf6], ax
call fcn.00401e55
test al, al
jne 0x406f32
call fcn.0040a50e
call fcn.00402c68
jmp 0x406f45
call fcn.0040a50e
call fcn.00402c68
call fcn.00406710
test al, al
je 0x406f5e
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x104]
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 4
call fcn.004068e7
call fcn.004068ba
call fcn.00406b2c
push dword [0x4378c4]
call fcn.00418c5e
push 0xbda7ffff
push 0x66afffff
call fcn.0040ffe3
add esp, 0xc
mov dword [0x437c08], eax
call dword [sym.imp.USER32.dll_GetFocus]
cmp dword [0x437c1c], ebx
mov byte [0x437bf1], al
je 0x406fb0
cmp word [0x437c02], bx
je 0x406fb0
push 1
pop eax
jmp 0x406fb2
xor eax, eax
add byte [0x437bec], al
push 0xc36bffff
push 0x5aadffff
call fcn.0041004e
add byte [0x437bec], al
pop ecx
pop ecx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x437beb], al
movsx eax, byte [0x437bf1]
push eax
push 0xe509ffff
call fcn.0040ffc6
add word [0x437bf4], ax
movsx eax, word [0x437bf2]
movsx ecx, byte [0x437bed]
add eax, ecx
mov dword [0x437c1c], eax
movsx eax, byte [0x437bea]
push eax
movsx eax, word [0x437c02]
push eax
call fcn.0040ffc6
add dword [0x437c08], eax
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov word [0x437bf6], ax
xor eax, eax
cmp word [0x437bfe], bx
push 2
mov dword [ebp - 0x18], ebx
setne al
add word [0x437bf4], ax
call fcn.0040a71e
pop ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x38], bl
mov dword [ebp - 0x24], ebx
movsx ax, byte [0x437be9]
or ecx, 0xffffffff
sub ecx, eax
mov word [0x437bfa], cx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add byte [0x437be8], al
cmp dword [ebp - 0x18], ebx
push 3
pop edi
jne 0x4070c0
push edi
call fcn.0040a71e
cmp dword [ebp - 0x14], eax
pop ecx
jbe 0x40709e
push edi
call fcn.0040a71e
pop ecx
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0x14]
mov eax, esi
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push 7
mov dword [ebp - 0x20], esi
call fcn.0040a7bb
pop ecx
mov dword [ebp - 0x14], ebx
pop ecx
movsx eax, byte [0x437be8]
push 0xeb81ffff
push eax
call fcn.004100bc
add word [0x437c02], ax
push 0xeb2dffff
movsx eax, word [0x437bfc]
or eax, 0x3ab9ffff
mov dword [0x437c28], eax
movsx eax, byte [0x437bec]
push eax
call fcn.0041004e
mov byte [0x437bed], al
mov eax, dword [0x437c14]
push eax
push eax
call fcn.00410016
inc dword [ebp - 0x18]
push 6
mov word [0x437c04], ax
call fcn.0040a71e
add esp, 0x1c
cmp dword [ebp - 0x18], eax
jb 0x4071a4
movsx eax, word [0x437bf6]
push eax
mov byte [0x437bf1], 0xfe
push dword [0x437c2c]
call fcn.004100bc
mov word [0x437bf6], ax
pop ecx
movsx eax, word [0x437bfa]
imul eax, eax, 0x6c4fffff
add dword [0x437c18], eax
mov al, byte [0x437c14]
add al, byte [0x437c24]
pop ecx
push 0
mov dword [ebp - 0x18], ebx
dec al
and al, byte [0x437c04]
add byte [0x437beb], al
movsx eax, word [0x437c00]
or eax, dword [0x437c10]
mov dword [0x437c24], eax
movsx ax, byte [0x437bec]
dec eax
add word [0x437bfa], ax
pop eax
setne al
add byte [0x437bee], al
add dword [0x437c1c], 0xc81ffff
call fcn.0041fd52
push dword [0x437c24]
mov esi, eax
push 0x6a1fffff
call fcn.0041004e
pop ecx
mov dword [0x437c08], eax
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
add byte [0x437bea], al
push 0x67efffff
push 0xd29dffff
call fcn.0040fede
push 4
mov dword [0x437c24], eax
call fcn.0040a71e
add esp, 0xc
cmp esi, eax
jae 0x407317
movsx eax, word [0x437c00]
or word [0x437bf6], 0xffff
push 0x7f49ffff
push eax
call fcn.0041004e
add dword [0x437c14], eax
cmp dword [ebp - 0x1c], edi
pop ecx
pop ecx
jb 0x40730c
push 0xa19fffff
push 0xe729ffff
call fcn.0040fede
add word [0x437bf4], ax
mov al, byte [0x437c04]
sub byte [0x437bef], al
pop ecx
pop ecx
call fcn.00403400
push 0x1388
push 0x59
call fcn.0041448a
pop ecx
call eax
push 0x4f37ffff
push dword [0x437c28]
call fcn.004100bc
add dword [0x437c20], eax
pop ecx
pop ecx
call fcn.0041fd52
mov esi, eax
mov al, byte [0x437bee]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
push 4
mov byte [0x437bf1], al
call fcn.0040a71e
cmp esi, eax
pop ecx
jae 0x4072d4
call fcn.0042b573
movsx eax, word [0x437bf8]
push dword [0x437c1c]
push eax
call fcn.0041004e
add dword [0x437c14], eax
mov al, byte [0x437be9]
sub byte [0x437bf0], al
mov ax, word [0x437bfa]
add word [0x437bf6], ax
pop ecx
pop ecx
cmp byte [0x437bf0], bl
jne 0x4072e8
cmp byte [0x437beb], bl
jne 0x4072e8
xor eax, eax
jmp 0x4072eb
push 1
pop eax
add byte [0x437bef], al
movsx eax, word [0x437c02]
push eax
push 0xdc47ffff
call fcn.004100bc
add word [0x437bf6], ax
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
jmp 0x407060
call fcn.004033e8
cmp eax, 0x32
jl 0x40737d
cmp word [0x437c02], bx
jne 0x407336
cmp byte [0x437bed], bl
jne 0x407336
xor eax, eax
jmp 0x407339
push 1
pop eax
add byte [0x437be9], al
push 0x8a95ffff
push 0xe1c7ffff
call fcn.0040ff1a
cmp dword [ebp - 0x1c], 1
pop ecx
pop ecx
mov byte [0x437beb], al
jb 0x407360
call fcn.0042b573
movsx eax, word [0x437bfa]
push eax
push dword [0x437c10]
call fcn.0040ffe3
add dword [0x437c18], eax
pop ecx
pop ecx
jmp 0x40730c
lea ecx, [ebp - 0x88]
call fcn.00407e1f
mov dword [ebp - 4], ebx
call fcn.0042392a
push dword [ebp - 0x38]
mov esi, eax
lea eax, [ebp - 0x88]
push eax
call fcn.0040dd78
pop ecx
test al, al
pop ecx
je 0x407aa2
cmp esi, 0xffffffff
jne 0x4073b5
inc dword [ebp - 0x24]
jmp 0x4073b8
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 5
jl 0x4073c3
call fcn.0042b573
mov eax, dword [ebp - 0x40]
push 0xe539ffff
add dword [ebp - 0x14], eax
push 0x3de9ffff
mov byte [ebp - 0x38], bl
call fcn.0040ff78
push 0x3193ffff
push 0x107fffff
mov word [0x437bf6], ax
call fcn.0041004e
mov word [0x437bf2], ax
push 0xcfc1ffff
movsx eax, byte [0x437be9]
push eax
call fcn.00410092
push ebx
mov byte [0x437bf1], al
call fcn.00403358
mov esi, eax
movsx eax, word [0x437bf8]
push eax
push 0x23cdffff
mov dword [ebp - 0x3c], esi
call fcn.0041004e
push dword [0x437c20]
mov dword [0x437c18], eax
push 0x29d9ffff
call fcn.0040ff1a
mov word [0x437bfa], ax
add esp, 0x2c
movsx ax, byte [0x437bf1]
dec eax
add word [0x437bf4], ax
cmp dword [esi + 0x38], edi
jl 0x4074a9
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov byte [0x437bf0], al
push 0x3625ffff
movsx eax, byte [0x437bed]
push eax
mov dword [0x437c28], 1
call fcn.0041004e
mov dword [0x437c2c], eax
call fcn.0042b573
movsx eax, word [0x437bf4]
push eax
push 0x2cc1ffff
call fcn.0040ff1a
add esp, 0x10
add byte [0x437bec], al
movsx eax, word [0x437c02]
push 0x74cdffff
push eax
call fcn.004100bc
mov byte [0x437bee], al
movsx eax, word [0x437bf4]
push eax
push 0x72b1ffff
call fcn.004100bc
add word [0x437c02], ax
movsx eax, word [0x437bf4]
push eax
movsx eax, byte [0x437be9]
push eax
call fcn.00410016
add esp, 0x18
mov dword [0x437c18], eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
push 0x14
pop ecx
div ecx
test edx, edx
jne 0x407590
mov al, byte [0x437bfc]
push 0x1bd5ffff
or al, byte [0x437c04]
mov byte [0x437bee], 1
add byte [0x437bf1], al
movsx eax, word [0x437c00]
push eax
call fcn.00410092
add dword [0x437c10], eax
lea eax, [ebp - 0x98]
push eax
call fcn.0041e38f
add esp, 0xc
mov ax, word [0x437c0c]
push dword [0x437c08]
add word [0x437c00], ax
mov byte [ebp - 4], 1
call dword [sym.imp.USER32.dll_IsMenu]
inc byte [0x437bea]
mov byte [0x437bf0], al
lea eax, [ebp - 0x98]
push eax
push 6
call fcn.0040aae5
pop ecx
mov byte [ebp - 4], bl
pop ecx
push 1
lea ecx, [ebp - 0x98]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp - 0xd]
inc dword [0x437c10]
inc dword [ebp - 0x1c]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [0x437bfe]
mov byte [ebp - 4], 2
add al, byte [0x437bfc]
cmp dword [ebp - 0x80], ebx
mov byte [ebp - 0xd], bl
mov byte [0x437bec], al
ja 0x4075e7
push 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x88]
call fcn.00407b24
jmp 0x407060
cmp dword [ebp - 0x48], edi
jne 0x407628
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov word [0x437bf8], 1
lea ecx, [ebp - 0x34]
push dword [eax]
lea eax, [ebp - 0x68]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
movsx eax, word [0x437bfe]
push 0xddfbffff
push eax
call fcn.0040ffe3
pop ecx
mov byte [0x437bee], al
pop ecx
jmp 0x40794f
cmp dword [ebp - 0x48], 4
jne 0x4076c7
cmp dword [ebp - 0x70], ebx
jbe 0x4076be
mov esi, dword [0x430ff0]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x34]
push dword [eax]
lea eax, [ebp - 0x88]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov esi, dword [0x430ff4]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
jmp 0x40794c
mov byte [ebp - 0xd], 1
jmp 0x40794f
push dword [0x437c08]
push 0x3173ffff
call fcn.0040ffe3
pop ecx
mov byte [0x437bec], al
pop ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, dword [0x430ff8]
add byte [0x437be8], al
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
cmp dword [ebp - 0x48], 1
jne 0x407800
mov esi, dword [0x431008]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
or al, 0xff
sub al, byte [0x437c00]
add byte [0x437bef], al
movsx eax, word [0x437bfc]
push eax
push 0xdcf9ffff
call fcn.004100bc
mov word [0x437bfa], ax
movsx eax, byte [0x437bee]
push eax
movsx eax, byte [0x437bf1]
push eax
call fcn.0040ff4b
add word [0x437c04], ax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x10
lea ecx, [ebp - 0x34]
push dword [eax]
lea eax, [ebp - 0x88]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov esi, dword [0x43100c]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
xor eax, eax
cmp byte [0x437bee], bl
setne al
add byte [0x437bea], al
jmp 0x4078c7
cmp dword [ebp - 0x48], 2
jne 0x4078c7
push dword [0x437c28]
push 0xd719ffff
call fcn.0040ffe3
mov esi, dword [0x431010]
sub dword [0x437c20], 0x5315ffff
inc byte [0x437bef]
mov word [0x437bfa], ax
mov al, byte [esi]
pop ecx
add al, 0x16
pop ecx
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x34]
push dword [eax]
lea eax, [ebp - 0x88]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ax, word [0x437bfe]
mov esi, dword [0x431014]
shl ax, 1
inc eax
mov byte [0x437bef], 1
mov word [0x437bfe], ax
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
push 0xbe73ffff
push 0xd4d5ffff
call fcn.0040ff78
mov esi, dword [0x431004]
add dword [0x437c18], eax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x16
movzx eax, al
add eax, edi
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
add dword [0x437c18], eax
push dword [0x437c2c]
movsx eax, word [0x437c02]
imul eax, dword [0x437c10]
add dword [0x437c28], eax
movsx eax, byte [0x437bef]
push eax
call fcn.0040ff78
add dword [0x437c24], eax
pop ecx
pop ecx
mov esi, dword [ebp - 0x3c]
cmp byte [ebp - 0x44], bl
je 0x407961
lea eax, [ebp - 0x88]
push eax
call fcn.00429fb3
pop ecx
call dword [sym.imp.USER32.dll_GetInputState]
add dword [0x437c20], eax
cmp byte [ebp - 0xd], bl
jne 0x407981
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00411e31
pop ecx
pop ecx
xor eax, eax
cmp byte [0x437be8], bl
setne al
add byte [0x437bf0], al
cmp dword [0x437c08], ebx
jne 0x4079a7
cmp word [0x437bf2], bx
jne 0x4079a7
xor eax, eax
jmp 0x4079aa
push 1
pop eax
add word [0x437bf2], ax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xf8]
call fcn.00428c5e
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 3
push eax
call fcn.004237ce
cmp byte [ebp - 0xd], bl
mov al, byte [ebp - 0x43]
pop ecx
je 0x4079f4
xor ecx, ecx
cmp byte [ebp - 0x42], bl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0x88]
jmp 0x407a07
xor ecx, ecx
cmp byte [ebp - 0x42], bl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x88]
push eax
mov ecx, esi
call fcn.004036cd
cmp byte [ebp - 0x43], bl
je 0x407a57
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.004066f7
mov edi, 0x404
push 0x11
push edi
mov ecx, esi
call fcn.00415b0c
push 0x12
push edi
mov ecx, esi
call fcn.00415b0c
push 0x13
push edi
mov ecx, esi
call fcn.00415b0c
push 0x14
push 0x403
mov ecx, esi
call fcn.00415b0c
movsx eax, byte [0x437bf1]
push eax
movsx eax, byte [0x437bf0]
push eax
call fcn.0041004e
push dword [0x437c10]
add word [0x437bf8], ax
push dword [0x437c24]
call fcn.0040ffe3
add word [0x437bf8], ax
add esp, 0x10
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 2
call fcn.00407b80
jmp 0x4075c5
mov eax, dword [ebp - 0x20]
push edi
lea esi, [eax + eax]
mov dword [ebp - 0x14], esi
call fcn.0040a71e
cmp esi, eax
pop ecx
jb 0x4075d3
push edi
mov byte [ebp - 0x38], 1
call fcn.0040a71e
pop ecx
mov dword [ebp - 0x14], eax
jmp 0x4075d3