Function at 0x406070
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x410061
call fcn.0040f778
sub esp, 0xec
mov al, byte [ebp + 0xb]
push ebx
push esi
xor ebx, ebx
push edi
push ebx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x20], 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_]
movsx eax, word [0x415310]
push 1
pop esi
push eax
push 0xe397ffff
mov dword [ebp - 4], esi
call fcn.004027fb
mov byte [0x415300], al
push 0x24
lea eax, [ebp - 0x4c]
push ebx
push eax
call sub.MSVCRT.dll_memset
push 0x7489ffff
push 0x7517ffff
call fcn.004026ee
add word [0x415304], ax
mov edi, 0x9c
push edi
lea eax, [ebp - 0xe8]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0x28
push 0x4985ffff
push 0x9125ffff
push 0x10b7ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [0x4152fa], al
lea eax, [ebp - 0xe8]
push eax
mov dword [ebp - 0xe8], edi
mov byte [0x415300], 1
call dword [0x415878]
cmp eax, ebx
jne 0x406152
mov edi, dword [ebp + 8]
mov al, byte [ebp - 0x20]
push ebx
mov ecx, edi
mov byte [edi], 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 eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, edi
push dword [eax]
lea eax, [ebp - 0x20]
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_]
mov dword [ebp - 0x24], esi
jmp 0x4079ad
mov al, byte [0x415320]
mov edi, dword [0x415870]
push 0xac11ffff
dec al
push dword [0x41533c]
mov byte [0x4152fe], al
call fcn.00402794
pop ecx
mov byte [0x4152f8], al
pop ecx
lea eax, [ebp - 0x4c]
cmp edi, ebx
push eax
je 0x406187
call edi
jmp 0x40618d
call dword [0x41587c]
sub dword [0x415338], 0x3f6a0001
cmp dword [ebp - 0xd8], 2
jne 0x40796b
cmp dword [ebp - 0xe4], 4
jbe 0x40796b
call dword [sym.imp.USER32.dll_GetDesktopWindow]
add word [0x415302], ax
mov eax, dword [0x4128f8]
mov bl, 0x69
push 3
mov al, byte [eax]
pop edi
add al, bl
push 0xfffffffffffffffc
movzx eax, al
add eax, edi
pop esi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x4128f8]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x4559ffff
push 0x63d3ffff
call fcn.00402831
add dword [0x415328], eax
cmp dword [ebp - 0xe4], 6
pop ecx
pop ecx
jne 0x40632e
cmp dword [ebp - 0xe0], 1
jne 0x40632e
cmp word [0x415314], 0
setne al
cmp byte [ebp - 0x4e], 1
mov byte [0x4152f8], al
jne 0x4062ad
call dword [sym.imp.USER32.dll_GetCapture]
add word [0x415312], ax
mov eax, dword [0x4128fc]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x4128fc]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x415301]
push eax
push 0xec83ffff
call fcn.00402909
pop ecx
mov dword [0x415318], eax
pop ecx
jmp 0x406327
push 0x542fffff
push 0xa7bfffff
call fcn.00402831
mov word [0x415308], ax
mov eax, dword [0x412900]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412900]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
cmp word [0x41530a], 0
jne 0x40631d
cmp word [0x415304], 0
jne 0x40631d
and dword [0x415334], 0
jmp 0x406327
mov dword [0x415334], 1
mov byte [0x4152fc], 1
movsx eax, byte [0x4152fe]
push eax
push 0xd5f9ffff
call fcn.004028bd
add byte [0x415300], al
cmp dword [ebp - 0xe4], 6
pop ecx
pop ecx
jne 0x406c65
cmp dword [ebp - 0xe0], 0
jne 0x406c65
push 0xec0bffff
push 0x4605ffff
call fcn.00402735
cmp byte [ebp - 0x4e], 1
pop ecx
pop ecx
mov dword [0x41533c], eax
jne 0x4063d7
mov eax, dword [0x412904]
mov word [0x415310], 0xfffe
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412904]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 al, byte [0x4152fa]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
add byte [0x415301], al
jmp 0x406444
movsx eax, word [0x415310]
push eax
push 0xbaf9ffff
call fcn.00402909
mov word [0x41530a], ax
mov eax, dword [0x412908]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412908]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x856fffff
push 0x4c61ffff
call fcn.00402735
add byte [0x4152f8], al
pop ecx
pop ecx
mov al, byte [0x4152fb]
inc al
mov byte [0x4152f9], al
mov al, byte [0x415318]
or al, byte [0x4152fe]
add byte [0x415300], al
lea eax, [ebp - 0x28]
push eax
xor eax, eax
push eax
push eax
push eax
push 6
call dword [0x415874]
push dword [0x41533c]
push 0x2777ffff
call fcn.00402909
add dword [0x41533c], eax
mov eax, dword [ebp - 0x28]
pop ecx
cmp eax, 0xa
pop ecx
ja 0x40682f
je 0x4067cd
dec eax
cmp eax, 8
ja case.0x4064a6.5
jmp dword [eax*4 + 0x4079d2]
push 0x270fffff
push dword [0x415320]
call fcn.00402794
mov byte [0x4152fe], al
mov eax, dword [0x41290c]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41290c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
cmp word [0x415312], 0
setne al
mov byte [0x4152f8], al
jmp case.0x4064a6.5
push 0x4577ffff
push 0x4e21ffff
call fcn.004028bd
add byte [0x4152f8], al
mov eax, dword [0x412910]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412910]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415302]
add eax, dword [0x415318]
add dword [0x41532c], eax
jmp case.0x4064a6.5
movsx eax, word [0x415310]
push 0x53f1ffff
push eax
call fcn.004026b7
mov dword [0x415334], eax
mov eax, dword [0x412914]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412914]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 al, byte [0x415328]
dec al
jmp 0x406a2e
mov eax, dword [0x412918]
mov word [0x415302], 1
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412918]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 byte [0x415301], 1
jmp case.0x4064a6.5
mov eax, dword [0x41291c]
inc dword [0x41533c]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41291c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415310]
push 0x3debffff
push eax
call fcn.00402831
pop ecx
mov word [0x415304], ax
pop ecx
jmp case.0x4064a6.5
mov eax, dword [0x412928]
dec byte [0x4152fa]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412928]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x41530e]
push eax
movsx eax, word [0x41530a]
push eax
call fcn.004027d2
add word [0x41530a], ax
pop ecx
pop ecx
jmp case.0x4064a6.5
mov eax, dword [0x412938]
inc dword [0x415318]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412938]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415306]
push eax
push 0xdcc9ffff
call fcn.004027fb
add dword [0x415334], eax
pop ecx
pop ecx
jmp case.0x4064a6.5
push dword [0x415328]
push dword [0x415334]
call fcn.00402909
add dword [0x41532c], eax
mov eax, dword [0x412940]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412940]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x41530a]
push eax
push 0x3d7ffff
call fcn.004026b7
pop ecx
mov word [0x41530a], ax
pop ecx
jmp case.0x4064a6.5
movsx eax, word [0x415310]
mov ecx, 0x13a9ffff
sub ecx, eax
mov eax, dword [0x412918]
add dword [0x415320], ecx
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412918]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 al, byte [0x41530e]
inc al
add byte [0x4152f8], al
jmp case.0x4064a6.5
cmp eax, 0xf
ja 0x406a39
je 0x4069d8
sub eax, 0xb
je 0x406971
dec eax
je 0x406915
dec eax
je 0x4068b7
dec eax
jne case.0x4064a6.5
mov al, byte [0x415304]
add byte [0x4152ff], al
mov eax, dword [0x412930]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412930]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 al, byte [0x4152fa]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
add word [0x415302], ax
jmp case.0x4064a6.5
mov al, byte [0x415328]
sub al, byte [0x41530e]
mov byte [0x4152fc], al
mov eax, dword [0x412944]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412944]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 [0x41533c]
dec eax
add word [0x415310], ax
jmp case.0x4064a6.5
mov eax, dword [0x41292c]
mov dword [0x41531c], 1
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41292c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 [0x41531c]
and eax, dword [0x41532c]
add dword [0x415338], eax
jmp case.0x4064a6.5
movsx eax, word [0x41530c]
push eax
push dword [0x41533c]
call fcn.00402909
add dword [0x415338], eax
mov eax, dword [0x412920]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412920]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 [0x415320]
or eax, dword [0x415324]
jmp 0x4068ab
xor eax, eax
cmp word [0x415310], ax
setne al
mov word [0x415304], ax
mov eax, dword [0x412934]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412934]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 [0x41530a]
add byte [0x415300], al
jmp case.0x4064a6.5
sub eax, 0x11
je 0x406b1d
dec eax
je 0x406aaf
sub eax, 7
jne case.0x4064a6.5
mov eax, dword [0x41293c]
or byte [0x4152ff], 0xff
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41293c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415314]
push 0x8e4fffff
push eax
call fcn.00402794
pop ecx
mov byte [0x4152fd], al
pop ecx
jmp case.0x4064a6.5
push 0xfbc7ffff
push 0x3fb5ffff
call fcn.004027d2
add dword [0x415330], eax
mov eax, dword [0x412924]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412924]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x41532c]
push 0x9debffff
call fcn.00402794
add word [0x415314], ax
pop ecx
pop ecx
jmp case.0x4064a6.5
mov eax, dword [0x412948]
sub dword [0x41533c], 0x7ffa0000
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412948]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x1fbdffff
push 0x6009ffff
call fcn.00402879
pop ecx
mov byte [0x4152fa], al
pop ecx
push 0xadedffff
push dword [0x41533c]
call fcn.00402794
add byte [0x415301], al
cmp word [ebp - 0x4c], 9
pop ecx
pop ecx
jne 0x406c0d
movsx eax, byte [0x4152fc]
push eax
push 0x1c67ffff
call fcn.004027fb
add byte [0x4152fd], al
mov eax, dword [0x41294c]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41294c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
cmp byte [0x4152f8], 0
jne 0x406c01
xor eax, eax
cmp dword [0x41531c], eax
je 0x406c04
push 1
pop eax
add word [0x41530c], ax
jmp 0x406c5e
cmp word [ebp - 0x4c], 0
jne 0x406c5e
mov eax, dword [0x412950]
or byte [0x4152fb], 0xff
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412950]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
inc word [0x415304]
or byte [0x4152fa], 0xff
movsx eax, byte [0x4152f8]
push 0x184bffff
push eax
call fcn.004026b7
cmp dword [ebp - 0xe4], 5
pop ecx
pop ecx
mov byte [0x415300], al
jne 0x4073fc
cmp dword [ebp - 0xe0], 2
jne 0x4073fc
movsx eax, byte [0x4152fa]
push 0x70c5ffff
push eax
call fcn.00402794
add word [0x415308], ax
pop ecx
pop ecx
push 0x59
call dword [0x415884]
test eax, eax
je 0x406d33
push 0x1cbdffff
push 0x71f1ffff
call fcn.004026b7
add word [0x415304], ax
mov eax, dword [0x412954]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412954]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152fb]
push dword [0x41533c]
push eax
call fcn.004026b7
add dword [0x415328], eax
pop ecx
pop ecx
jmp 0x406eca
cmp word [ebp - 0x50], 0x2000
jne 0x406d93
call dword [sym.imp.USER32.dll_GetCursor]
mov word [0x41530c], ax
mov eax, dword [0x412958]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412958]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_GetCursor]
mov byte [0x4152fd], al
jmp 0x406eca
cmp word [ebp - 0x50], 0x8000
jne 0x406def
or al, 0xff
sub al, byte [0x415338]
mov byte [0x4152ff], al
mov eax, dword [0x41295c]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41295c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
inc dword [0x415324]
jmp 0x406eca
cmp byte [ebp - 0x4e], 1
jne 0x406e61
cmp word [ebp - 0x4c], 9
jne 0x406e61
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [0x415314], ax
mov eax, dword [0x412960]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412960]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415312]
push eax
push dword [0x41533c]
call fcn.004027fb
add byte [0x4152fd], al
pop ecx
pop ecx
jmp 0x406eca
or eax, 0xffffffff
sub eax, dword [0x415330]
add word [0x415302], ax
mov eax, dword [0x412964]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412964]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415312]
push eax
movsx eax, word [0x415306]
push eax
call fcn.00402879
add dword [0x41532c], eax
pop ecx
pop ecx
cmp byte [ebp - 0x4e], 1
mov byte [0x4152fc], 1
je 0x4073e6
or word [0x415314], 0xffff
cmp word [ebp - 0x4c], 6
jne 0x406fe2
push 0x6785ffff
push 0xc845ffff
call fcn.00402735
add byte [0x4152fd], al
pop ecx
test byte [ebp - 0x50], 0x80
pop ecx
je 0x406f74
movsx eax, byte [0x4152ff]
or eax, 0x5891ffff
add dword [0x41533c], eax
mov eax, dword [0x412968]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412968]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x415300]
push 0x5f01ffff
push eax
call fcn.004027fb
pop ecx
mov dword [0x41531c], eax
pop ecx
jmp 0x406fc9
test byte [ebp - 0x50], 2
je 0x406fc9
mov eax, dword [0x412934]
mov word [0x415304], 1
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412934]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x41531c], 1
movsx eax, byte [0x4152fd]
push eax
push 0x6a8bffff
call fcn.00402879
pop ecx
pop ecx
jmp 0x4073d2
cmp word [ebp - 0x4c], 9
jne 0x407175
push dword [0x415318]
push 0xffffffffffffffff
call fcn.00402831
test byte [ebp - 0x50], 0x80
pop ecx
mov dword [0x415324], eax
pop ecx
je 0x407072
cmp byte [0x4152f8], 0
setne al
mov byte [0x4152fa], al
mov eax, dword [0x41296c]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41296c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152fb]
push dword [0x41532c]
push eax
call fcn.004028bd
pop ecx
mov word [0x41530a], ax
pop ecx
jmp 0x407154
test byte [ebp - 0x50], 2
je 0x4070e5
push 0x4d27ffff
push 0xe3ffff
call fcn.004026ee
add dword [0x415320], eax
mov eax, dword [0x412970]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412970]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x59e7ffff
push 0xeb7ffff
call fcn.004028bd
add word [0x415304], ax
pop ecx
pop ecx
jmp 0x407154
movsx eax, word [0x415304]
push dword [0x415320]
push eax
call fcn.004026b7
add word [0x415306], ax
mov eax, dword [0x412974]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412974]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x35d9ffff
push 0x6ff3ffff
call fcn.00402735
add byte [0x4152f9], al
pop ecx
pop ecx
movsx eax, word [0x41530c]
push eax
push dword [0x415328]
call fcn.004027d2
add word [0x415314], ax
pop ecx
pop ecx
jmp 0x4073d2
movsx eax, word [0x415308]
push eax
push 0x6e9fffff
call fcn.004026b7
mov word [0x415306], ax
mov eax, dword [ebp - 0x50]
pop ecx
test ah, 0x40
pop ecx
je 0x407208
movsx eax, word [0x41530e]
push 0x2383ffff
push eax
call fcn.004028bd
mov dword [0x415330], eax
mov eax, dword [0x412978]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412978]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 [0x415320]
mov ecx, dword [0x41532c]
lea eax, [eax + ecx - 0x50a20001]
mov dword [0x415320], eax
jmp 0x4073c5
test al, 0x80
je 0x40727a
push 0x53b5ffff
push 0x43cdffff
call fcn.004027fb
mov word [0x41530c], ax
mov eax, dword [0x412928]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412928]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152ff]
movsx ecx, word [0x415302]
sub ecx, eax
mov dword [0x415324], ecx
jmp 0x4073c5
test al, 2
je 0x4072f0
movsx eax, word [0x415314]
movsx ecx, byte [0x4152fa]
imul eax, ecx
mov dword [0x41533c], eax
mov eax, dword [0x412918]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412918]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, word [0x415304]
push eax
push dword [0x415320]
call fcn.00402831
add dword [0x415330], eax
pop ecx
pop ecx
jmp 0x4073c5
test ah, 4
je 0x407365
movsx eax, word [0x415312]
push dword [0x41532c]
push eax
call fcn.004027fb
mov dword [0x415328], eax
mov eax, dword [0x41297c]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41297c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x41531c]
push dword [0x41533c]
call fcn.00402909
pop ecx
mov byte [0x4152fe], al
pop ecx
jmp 0x4073c5
push 0x963dffff
push 0x9d6dffff
call fcn.004026ee
add byte [0x4152f8], al
mov eax, dword [0x412940]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412940]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152f9]
sub dword [0x415318], eax
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharLowerA]
mov byte [0x4152fd], al
mov ax, word [0x41530a]
imul ax, word [0x415310]
mov word [0x415306], ax
push 0x6f23ffff
push 0xa0a9ffff
call fcn.00402735
pop ecx
mov dword [0x415334], eax
pop ecx
movsx eax, word [0x415310]
push eax
push 0x5679ffff
call fcn.00402735
cmp dword [ebp - 0xe4], 5
pop ecx
pop ecx
mov byte [0x4152ff], al
jne 0x407567
cmp dword [ebp - 0xe0], 1
jne 0x407567
mov eax, dword [0x412980]
or word [0x415312], 0xffff
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412980]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x415320]
call dword [sym.imp.USER32.dll_IsMenu]
test byte [ebp - 0x4f], 2
mov dword [0x415338], eax
je 0x4074e6
mov eax, dword [0x412984]
inc word [0x415310]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412984]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x3271ffff
push 0x1681ffff
call fcn.004028bd
add byte [0x4152f9], al
pop ecx
pop ecx
jmp 0x407544
push 0xc3dbffff
push dword [0x415324]
call fcn.004026ee
add dword [0x415338], eax
mov eax, dword [0x412988]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412988]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x415318], 1
xor eax, eax
cmp word [0x415310], ax
jne 0x40755d
cmp word [0x415314], ax
mov dword [0x415338], eax
je 0x407567
mov dword [0x415338], 1
dec byte [0x4152fd]
cmp dword [ebp - 0xe4], 5
jne 0x4077af
cmp dword [ebp - 0xe0], 0
jne 0x4077af
push dword [0x415334]
push 0x5ab5ffff
call fcn.00402794
mov byte [0x4152f9], al
mov eax, dword [0x41298c]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41298c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
and byte [0x4152ff], 0
cmp byte [ebp - 0x4e], 1
jne 0x407645
mov eax, dword [0x412988]
inc byte [0x4152f9]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412988]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x6c7bffff
push 0xae8dffff
call fcn.00402879
pop ecx
mov word [0x415308], ax
pop ecx
jmp 0x4077a5
push 0xc681ffff
push dword [0x415334]
call fcn.00402831
test byte [ebp - 0x50], 0x80
pop ecx
mov byte [0x4152f9], al
pop ecx
je 0x4076a9
mov eax, dword [0x412990]
inc byte [0x415300]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412990]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0x407783
test byte [ebp - 0x50], 2
je 0x407721
movsx eax, byte [0x4152f8]
push 0xdbadffff
push eax
call fcn.00402909
add word [0x415304], ax
mov eax, dword [0x412994]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412994]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 0xd917ffff
push dword [0x415328]
call fcn.004026b7
add word [0x415304], ax
pop ecx
pop ecx
jmp 0x407783
call dword [sym.imp.USER32.dll_GetCapture]
add dword [0x415328], eax
mov eax, dword [0x412998]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x412998]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152fb]
push 0x2229ffff
push eax
call fcn.004027d2
add byte [0x4152fe], al
pop ecx
pop ecx
cmp dword [0x415318], 0
jne 0x40779e
cmp byte [0x4152ff], 0
jne 0x40779e
and byte [0x4152fa], 0
jmp 0x4077a5
mov byte [0x4152fa], 1
mov dword [0x41531c], 1
push 0x5b87ffff
push 0x9e4dffff
call fcn.00402794
add byte [0x415301], al
lea eax, [ebp - 0xd4]
push eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
test eax, eax
jbe 0x40787b
push dword [0x41531c]
push dword [0x415334]
call fcn.004028bd
mov byte [0x4152fd], al
mov eax, dword [0x41299c]
pop ecx
mov al, byte [eax]
pop ecx
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x41299c]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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_]
movsx eax, byte [0x4152fe]
push eax
movsx eax, word [0x415304]
push eax
call fcn.00402735
mov dword [0x415324], eax
lea eax, [ebp - 0xd4]
push eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd4]
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_char_const___unsigned_int_]
mov al, byte [0x4152fe]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov word [0x415302], ax
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov dword [0x415318], eax
mov eax, dword [0x4129a0]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x4129a0]
push eax
call fcn.0040ea15
push eax
mov dword [ebp - 0x10], eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push dword [ebp - 0x10]
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 dword [0x41532c]
push 0xf09fffff
call fcn.004027fb
push dword [ebp - 0xdc]
mov word [0x41530e], ax
lea eax, [ebp - 0xf8]
push eax
call fcn.00408699
add esp, 0x10
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 2
push dword [ecx]
lea ecx, [ebp - 0x20]
push 0
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_]
push 1
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 1
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 [0x415328]
mov byte [0x4152fe], al
mov eax, dword [0x4129a4]
mov al, byte [eax]
add al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040f730
mov eax, esp
push dword [0x4129a4]
push eax
call fcn.0040ea15
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push esi
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.KERNEL32.dll_GetUserDefaultLCID]
add dword [0x415320], eax
push 1
xor ebx, ebx
pop esi
movsx eax, word [0x415312]
push 0x26e5ffff
push eax
call fcn.00402909
add byte [0x4152fb], al
mov edi, dword [ebp + 8]
mov al, byte [ebp - 0x20]
pop ecx
pop ecx
mov byte [edi], al
push ebx
mov ecx, edi
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 eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, edi
push dword [eax]
lea eax, [ebp - 0x20]
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_]
mov dword [ebp - 0x24], esi
and byte [ebp - 4], 0
push esi
lea ecx, [ebp - 0x20]
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 ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x104]
mov eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret