Function at 0x406406
Capabilities:
Accept command line arguments
Identify system language via api

Disassembly:
mov eax, 0x41057d
call fcn.0040fcd8
sub esp, 0xec
mov al, byte [ebp + 0xb]
push ebx
push esi
push edi
xor edi, edi
lea ecx, [ebp - 0x20]
push edi
mov dword [ebp - 0x24], edi
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 [0x41581c]
push 1
pop ebx
push 0x2509ffff
push eax
mov dword [ebp - 4], ebx
call fcn.00402eff
add byte [0x415819], al
push 0x24
lea eax, [ebp - 0x4c]
push edi
push eax
call sub.MSVCRT.dll_memset
push 0x38b9ffff
push 0x31c5ffff
call fcn.00402fbe
add byte [0x415812], al
mov esi, 0x9c
push esi
lea eax, [ebp - 0xe8]
push edi
push eax
call sub.MSVCRT.dll_memset
add dword [0x415838], 0x4db9fffe
add esp, 0x28
lea eax, [ebp - 0xe8]
mov dword [ebp - 0xe8], esi
push eax
push 0x51
mov word [0x41582c], 0xfffe
call fcn.00404292
pop ecx
call eax
cmp eax, edi
jne 0x4064de
mov esi, dword [ebp + 8]
mov al, byte [ebp - 0x20]
push edi
mov ecx, esi
mov byte [esi], 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, esi
push dword [eax]
lea eax, [ebp - 0x20]
push edi
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], ebx
jmp 0x407d7e
add byte [0x415818], 0xfe
push 0x4f
call fcn.00404292
pop ecx
mov esi, eax
xor ecx, ecx
cmp dword [0x41584c], edi
lea eax, [ebp - 0x4c]
setne cl
add byte [0x415813], cl
cmp esi, edi
push eax
je 0x40650c
call esi
jmp 0x406516
push 0x52
call fcn.00404292
pop ecx
call eax
movsx eax, word [0x41581a]
movsx ecx, byte [0x415813]
add eax, ecx
cmp dword [ebp - 0xd8], 2
mov dword [0x415834], eax
jne 0x407d3f
cmp dword [ebp - 0xe4], 4
jbe 0x407d3f
mov eax, dword [0x415850]
push 0x11
or eax, dword [0x41584c]
pop ebx
push 3
mov dword [0x415854], eax
mov eax, dword [0x41288c]
pop edi
mov al, byte [eax]
push 0xfffffffffffffffc
sub al, bl
pop esi
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41288c]
push eax
call fcn.0040ef68
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_]
dec byte [0x415818]
cmp dword [ebp - 0xe4], 6
jne 0x406699
cmp dword [ebp - 0xe0], 1
jne 0x406699
mov al, byte [0x41581a]
add al, byte [0x41582c]
add byte [0x415812], al
cmp byte [ebp - 0x4e], 1
jne 0x406626
mov eax, dword [0x412890]
dec byte [0x415819]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412890]
push eax
call fcn.0040ef68
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 [0x415828]
or al, byte [0x415824]
add byte [0x415813], al
jmp 0x406687
movsx eax, byte [0x415817]
push 0x1235ffff
push eax
call fcn.0040309f
mov dword [0x415838], eax
mov eax, dword [0x412894]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412894]
push eax
call fcn.0040ef68
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 [0x415820]
inc al
mov byte [0x415819], al
xor eax, eax
cmp word [0x41581e], ax
setne al
add dword [0x415850], eax
push 0xc9fdffff
push 0xdf5fffff
call fcn.004030d8
cmp dword [ebp - 0xe4], 6
pop ecx
pop ecx
mov dword [0x415850], eax
jne 0x407057
cmp dword [ebp - 0xe0], 0
jne 0x407057
mov al, byte [0x415848]
imul byte [0x415818]
cmp byte [ebp - 0x4e], 1
mov byte [0x415813], al
jne 0x406744
movsx eax, byte [0x415815]
push 0xff09ffff
push eax
call fcn.0040302e
add byte [0x415813], al
mov eax, dword [0x412898]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412898]
push eax
call fcn.0040ef68
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.KERNEL32.dll_GetCurrentThreadId]
add word [0x415826], ax
jmp 0x40679a
movsx ax, byte [0x415817]
sub word [0x415828], ax
mov eax, dword [0x41289c]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41289c]
push eax
call fcn.0040ef68
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_GetCapture]
mov dword [0x415840], eax
mov al, byte [0x415813]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
add dword [0x415850], eax
push 0x50
call fcn.00404292
mov dword [ebp - 0x10], eax
movsx eax, word [0x41581e]
push eax
push dword [0x415840]
call fcn.004030d8
add word [0x41582c], ax
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
xor eax, eax
push eax
push eax
push eax
push 6
call dword [ebp - 0x10]
movsx eax, byte [0x415813]
push eax
movsx eax, byte [0x415816]
push eax
call fcn.00402f26
pop ecx
mov word [0x41582a], ax
pop ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xa
ja 0x406baf
je 0x406b48
lea eax, [ecx - 1]
cmp eax, 8
ja case.0x40681c.5
jmp dword [eax*4 + 0x407da3]
movsx eax, byte [0x415816]
push 0xffe1ffff
push eax
call fcn.00402eda
mov dword [0x41584c], eax
mov eax, dword [0x4128a0]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128a0]
push eax
call fcn.0040ef68
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 [0x415818]
push 0xcc5bffff
push eax
call fcn.00403002
add dword [0x415850], eax
pop ecx
pop ecx
jmp case.0x40681c.5
mov eax, dword [0x4128a4]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128a4]
push eax
call fcn.0040ef68
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 [0x415810]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov byte [0x415819], al
jmp case.0x40681c.5
mov eax, dword [0x4128a8]
mov byte [0x415818], 0xfe
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128a8]
push eax
call fcn.0040ef68
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_]
dec byte [0x415810]
jmp case.0x40681c.5
movsx eax, byte [0x415811]
push eax
push dword [0x41584c]
call fcn.00402eda
mov dword [0x415848], eax
mov eax, dword [0x4128ac]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128ac]
push eax
call fcn.0040ef68
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 0xc6ddffff
push dword [0x415844]
call fcn.004030d8
pop ecx
mov word [0x415822], ax
pop ecx
jmp case.0x40681c.5
movsx eax, word [0x41581e]
push eax
push 0xe2f9ffff
call fcn.00402f26
add word [0x41581c], ax
mov eax, dword [0x4128b0]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128b0]
push eax
call fcn.0040ef68
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 0x36adffff
push dword [0x415840]
call fcn.00402eda
add word [0x415820], ax
pop ecx
pop ecx
jmp case.0x40681c.5
push 0xe27ffff
push dword [0x41584c]
call fcn.00402fbe
mov byte [0x415818], al
mov eax, dword [0x4128bc]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128bc]
push eax
call fcn.0040ef68
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 case.0x40681c.5
mov eax, dword [0x4128cc]
mov dword [0x415830], 1
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128cc]
push eax
call fcn.0040ef68
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 0xadf1ffff
push 0x526dffff
call fcn.00402f26
pop ecx
pop ecx
jmp case.0x40681c.5
movsx eax, word [0x415826]
push dword [0x415840]
push eax
call fcn.00402f6c
add word [0x415822], ax
mov eax, dword [0x4128d4]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128d4]
push eax
call fcn.0040ef68
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 0xa7a7ffff
push 0x37a5ffff
call fcn.00402eff
add word [0x415828], ax
pop ecx
pop ecx
jmp case.0x40681c.5
movsx eax, ax
push eax
movsx eax, byte [0x415810]
push eax
call fcn.00403002
add dword [0x41584c], eax
mov eax, dword [0x4128ac]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128ac]
push eax
call fcn.0040ef68
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 [0x415838]
mov ecx, dword [0x41584c]
add eax, ecx
jmp 0x406f3a
cmp ecx, 0xf
ja 0x406df6
je 0x406d7d
sub ecx, 0xb
je 0x406d0c
dec ecx
je 0x406c98
dec ecx
je 0x406c31
dec ecx
jne case.0x40681c.5
mov eax, dword [0x4128c4]
mov dword [0x415840], 0xefffffff
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128c4]
push eax
call fcn.0040ef68
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 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
add dword [0x415848], eax
jmp case.0x40681c.5
call dword [sym.imp.USER32.dll_GetActiveWindow]
add byte [0x415810], al
mov eax, dword [0x4128d8]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128d8]
push eax
call fcn.0040ef68
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 [0x41581e]
push 0x7567ffff
push eax
call fcn.00402fbe
pop ecx
mov word [0x415828], ax
pop ecx
jmp case.0x40681c.5
push 0xfe9ffff
push 0x2a5bffff
call fcn.00402fbe
mov word [0x415822], ax
mov eax, dword [0x4128c0]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128c0]
push eax
call fcn.0040ef68
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 [0x415814]
push eax
movsx eax, word [0x41582a]
push eax
call fcn.004030d8
pop ecx
mov byte [0x415816], al
pop ecx
jmp case.0x40681c.5
push 0x98d9ffff
push 0x8f03ffff
call fcn.0040309f
mov byte [0x415814], al
mov eax, dword [0x4128b4]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128b4]
push eax
call fcn.0040ef68
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 [0x415812]
push eax
push 0xdfb5ffff
call fcn.00403002
add byte [0x415810], al
pop ecx
pop ecx
jmp case.0x40681c.5
movsx eax, word [0x41581c]
push dword [0x41584c]
push eax
call fcn.00402f26
add dword [0x41584c], eax
mov eax, dword [0x4128c8]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128c8]
push eax
call fcn.0040ef68
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 [0x415824]
push eax
movsx eax, byte [0x415818]
push eax
call fcn.00402eff
add dword [0x415834], eax
pop ecx
pop ecx
jmp case.0x40681c.5
sub ecx, ebx
je 0x406ed5
dec ecx
je 0x406e6a
sub ecx, 7
jne case.0x40681c.5
movsx ax, byte [0x415815]
add ax, word [0x415820]
add word [0x41582c], ax
mov eax, dword [0x4128d0]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128d0]
push eax
call fcn.0040ef68
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 word [0x41582c], 1
jmp case.0x40681c.5
push 0x6135ffff
push dword [0x41584c]
call fcn.00403002
mov byte [0x415819], al
mov eax, dword [0x4128b8]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128b8]
push eax
call fcn.0040ef68
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 0x17d3ffff
push 0x11e3ffff
call fcn.00403002
pop ecx
mov dword [0x415834], eax
pop ecx
jmp case.0x40681c.5
movsx cx, byte [0x415815]
imul ecx, dword [0x415838]
add ax, cx
mov word [0x41582a], ax
mov eax, dword [0x4128dc]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128dc]
push eax
call fcn.0040ef68
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 0xdd53ffff
push 0xb367ffff
call fcn.00402eff
pop ecx
pop ecx
mov word [0x41581e], ax
xor eax, eax
cmp word [0x41581a], ax
je 0x406f5d
cmp word [0x415826], ax
je 0x406f5d
mov byte [0x415814], 1
jmp 0x406f64
and byte [0x415814], 0
cmp word [ebp - 0x4c], 9
jne 0x406fcd
movsx eax, byte [0x415819]
push 0x94a9ffff
push eax
call fcn.00402f6c
add word [0x415826], ax
mov eax, dword [0x4128e0]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128e0]
push eax
call fcn.0040ef68
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 word [0x415824], 1
jmp 0x40703f
cmp word [ebp - 0x4c], ax
jne 0x40703f
cmp word [0x415828], ax
jne 0x406fea
cmp dword [0x415840], eax
mov word [0x415824], ax
je 0x406ff3
mov word [0x415824], 1
mov eax, dword [0x4128e4]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128e4]
push eax
call fcn.0040ef68
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 [0x415815]
sub al, byte [0x41581e]
mov byte [0x415817], al
push 0x763bffff
push dword [0x415854]
call fcn.00403002
pop ecx
mov word [0x41581e], ax
pop ecx
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x415819], al
cmp dword [ebp - 0xe4], 5
jne 0x4077a5
cmp dword [ebp - 0xe0], 2
jne 0x4077a5
movsx eax, byte [0x415817]
push eax
push dword [0x415830]
call fcn.00402eda
pop ecx
mov dword [0x415848], eax
pop ecx
push 0x59
push 0x54
call fcn.00404292
pop ecx
call eax
test eax, eax
je 0x407107
push 0x943bffff
push 0x7059ffff
call fcn.00402eff
add byte [0x415815], al
mov eax, dword [0x4128e8]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128e8]
push eax
call fcn.0040ef68
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 word [0x41582c], 0xffff
jmp 0x407299
cmp word [ebp - 0x50], 0x2000
jne 0x407170
mov eax, dword [0x4128ec]
mov byte [0x415817], 0xfe
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128ec]
push eax
call fcn.0040ef68
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 [0x415826]
push 0xe0e3ffff
push eax
call fcn.0040309f
pop ecx
mov byte [0x415818], al
pop ecx
jmp 0x407299
cmp word [ebp - 0x50], 0x8000
jne 0x4071dc
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add word [0x41581e], ax
mov eax, dword [0x4128f0]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128f0]
push eax
call fcn.0040ef68
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 [0x415814]
movsx ecx, word [0x41582c]
imul eax, ecx
mov dword [0x415850], eax
jmp 0x407299
cmp byte [ebp - 0x4e], 1
jne 0x407244
cmp word [ebp - 0x4c], 9
jne 0x407244
movsx eax, byte [0x415810]
imul eax, eax, 0x6f0fffff
add dword [0x415834], eax
mov eax, dword [0x4128f4]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128f4]
push eax
call fcn.0040ef68
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 [0x415818]
mov byte [0x415811], al
jmp 0x407299
mov ax, word [0x415824]
dec ax
mov word [0x415826], ax
mov eax, dword [0x4128f8]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128f8]
push eax
call fcn.0040ef68
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_GetInputState]
mov dword [0x415848], eax
movsx eax, word [0x41581e]
push eax
push 0x7b99ffff
call fcn.00402f6c
cmp byte [ebp - 0x4e], 1
pop ecx
pop ecx
mov dword [0x415834], eax
je 0x407798
mov ax, word [0x415824]
mov cx, ax
add cx, word [0x41581c]
add word [0x415828], cx
cmp word [ebp - 0x4c], 6
jne 0x4073c3
movsx eax, byte [0x415813]
push eax
push 0x65c1ffff
call fcn.00403002
test byte [ebp - 0x50], 0x80
pop ecx
mov byte [0x415816], al
pop ecx
je 0x40734e
call dword [sym.imp.USER32.dll_GetFocus]
mov byte [0x415817], al
mov eax, dword [0x4128fc]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128fc]
push eax
call fcn.0040ef68
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 word [0x415828], 0xffff
jmp 0x4073a7
test byte [ebp - 0x50], 2
je 0x4073a7
xor eax, eax
cmp byte [0x415812], al
setne al
mov dword [0x415840], eax
mov eax, dword [0x4128c8]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128c8]
push eax
call fcn.0040ef68
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 [0x415820]
push 0x6967ffff
push 0xea1bffff
call fcn.00402f6c
pop ecx
mov word [0x415826], ax
pop ecx
jmp 0x407781
cmp word [ebp - 0x4c], 9
jne 0x40754a
movsx ax, byte [0x415813]
add ax, word [0x415828]
add word [0x415826], ax
test byte [ebp - 0x50], 0x80
je 0x40745e
movsx eax, byte [0x415817]
push eax
push dword [0x41584c]
call fcn.00402f6c
mov word [0x41582c], ax
mov eax, dword [0x412900]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412900]
push eax
call fcn.0040ef68
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 [0x415840]
push 0x7033ffff
call fcn.004030d8
add dword [0x415850], eax
pop ecx
pop ecx
jmp 0x407533
test byte [ebp - 0x50], 2
je 0x4074c0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add dword [0x415840], eax
mov eax, dword [0x412904]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412904]
push eax
call fcn.0040ef68
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 [0x415822]
push 0xd8c7ffff
push eax
call fcn.00402f26
jmp 0x407451
movsx eax, word [0x415828]
push dword [0x415830]
push eax
push 0xf2e5ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [0x415815], al
mov eax, dword [0x412908]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412908]
push eax
call fcn.0040ef68
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 [0x415824]
push 0x1eb7ffff
push eax
call fcn.00402f6c
pop ecx
mov byte [0x415810], al
pop ecx
movsx eax, byte [0x415815]
push 0xa9edffff
push eax
call fcn.00403002
jmp 0x40777a
xor ecx, ecx
cmp word [0x41581a], cx
setne cl
add byte [0x415818], cl
mov ecx, dword [ebp - 0x50]
test ch, 0x40
je 0x4075cb
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add word [0x415826], ax
mov eax, dword [0x41290c]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41290c]
push eax
call fcn.0040ef68
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 ax, byte [0x415816]
movsx cx, byte [0x415815]
sub eax, ecx
add word [0x415822], ax
jmp 0x407768
test cl, 0x80
je 0x40763d
push 0x50ffffff
push 0x647fffff
call fcn.00402eff
add word [0x41581a], ax
mov eax, dword [0x4128bc]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128bc]
push eax
call fcn.0040ef68
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 ax, word [0x41584c]
sub ax, word [0x41581a]
add word [0x41582a], ax
jmp 0x407768
test cl, 2
je 0x4076aa
movsx ecx, byte [0x415818]
movsx eax, ax
push ecx
push eax
call fcn.0040302e
mov word [0x415824], ax
mov eax, dword [0x4128ac]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128ac]
push eax
call fcn.0040ef68
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 ax, word [0x415822]
dec ax
mov word [0x41581a], ax
jmp 0x407768
test ch, 4
je 0x40770d
mov eax, dword [0x412910]
or word [0x415824], 0xffff
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412910]
push eax
call fcn.0040ef68
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 [0x415848]
push 0x8b57ffff
call fcn.0040309f
pop ecx
mov word [0x41582a], ax
pop ecx
jmp 0x407768
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov word [0x415822], ax
mov eax, dword [0x4128d4]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x4128d4]
push eax
call fcn.0040ef68
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 [0x415844]
and al, byte [0x415814]
add byte [0x415818], al
movsx eax, word [0x41581a]
push eax
push 0x65b9ffff
call fcn.00402eda
pop ecx
mov dword [0x41584c], eax
pop ecx
push 0x8d41ffff
push 0x23dffff
call fcn.0040302e
add byte [0x415819], al
pop ecx
pop ecx
mov eax, dword [0x415838]
neg eax
mov word [0x415824], ax
movsx eax, word [0x415826]
push eax
movsx eax, byte [0x415813]
push eax
call fcn.00403002
cmp dword [ebp - 0xe4], 5
pop ecx
pop ecx
mov dword [0x415840], eax
jne 0x40791e
cmp dword [ebp - 0xe0], 1
jne 0x40791e
movsx eax, byte [0x415813]
push 0xa321ffff
push eax
call fcn.00402eff
add dword [0x41583c], eax
mov eax, dword [0x412914]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412914]
push eax
call fcn.0040ef68
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 [0x415854]
neg al
test byte [ebp - 0x4f], 2
mov byte [0x415813], al
je 0x4078a2
push 0x12dfffff
push 0x9e97ffff
call fcn.00402eff
add dword [0x415850], eax
mov eax, dword [0x412918]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412918]
push eax
call fcn.0040ef68
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_]
add dword [0x415850], 0x5109ffff
jmp 0x40790d
push 0xdb6bffff
push 0x8215ffff
call fcn.004030d8
mov dword [0x415848], eax
mov eax, dword [0x41291c]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41291c]
push eax
call fcn.0040ef68
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 [0x415848]
push dword [0x415840]
call fcn.00402eda
add dword [0x415854], eax
pop ecx
pop ecx
movsx eax, word [0x41582a]
or eax, 0xd43dffff
mov dword [0x415834], eax
xor eax, eax
cmp byte [0x415819], al
setne al
add word [0x415824], ax
cmp dword [ebp - 0xe4], 5
jne 0x407b71
cmp dword [ebp - 0xe0], 0
jne 0x407b71
mov eax, dword [0x412920]
dec word [0x415828]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412920]
push eax
call fcn.0040ef68
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 [0x415815]
neg al
cmp byte [ebp - 0x4e], 1
mov byte [0x415812], al
jne 0x407a00
mov al, byte [0x415810]
sub al, byte [0x415814]
mov byte [0x415813], al
mov eax, dword [0x41291c]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41291c]
push eax
call fcn.0040ef68
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 [0x415816]
add al, byte [0x415818]
mov byte [0x415813], al
jmp 0x407b58
push 0x701ffff
push 0x1d83ffff
call fcn.00402f6c
add byte [0x415814], al
pop ecx
test byte [ebp - 0x50], 0x80
pop ecx
je 0x407a71
mov eax, dword [0x412924]
inc word [0x415822]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412924]
push eax
call fcn.0040ef68
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.KERNEL32.dll_GetUserDefaultLCID]
mov word [0x415820], ax
jmp 0x407b3e
test byte [ebp - 0x50], 2
je 0x407adb
or ax, 0xffff
sub ax, word [0x415824]
mov word [0x41582a], ax
mov eax, dword [0x412928]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412928]
push eax
call fcn.0040ef68
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 [0x415815]
push eax
call dword [sym.imp.USER32.dll_IsMenu]
add word [0x41581e], ax
jmp 0x407b3e
movsx eax, byte [0x415810]
push dword [0x415850]
push eax
call fcn.00403002
mov word [0x41581c], ax
mov eax, dword [0x41292c]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x41292c]
push eax
call fcn.0040ef68
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_GetFocus]
add dword [0x415834], eax
movsx eax, word [0x415826]
push 0x51fffff
push eax
call fcn.004030d8
add dword [0x415844], eax
pop ecx
pop ecx
movsx eax, byte [0x415815]
push eax
push 0x7ac1ffff
call fcn.0040309f
pop ecx
mov byte [0x415815], al
pop ecx
mov al, byte [0x41581e]
add al, byte [0x415818]
add byte [0x415814], al
lea eax, [ebp - 0xd4]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x407c30
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov word [0x41582c], ax
mov eax, dword [0x412930]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412930]
push eax
call fcn.0040ef68
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 dword [0x415850], 0
jne 0x407bf2
xor eax, eax
cmp dword [0x415848], eax
je 0x407bf5
push 1
pop eax
add dword [0x41583c], eax
lea eax, [ebp - 0xd4]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x20]
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 0xb199ffff
push dword [0x415844]
call fcn.00402eff
pop ecx
mov dword [0x41584c], eax
pop ecx
push 0xe95bffff
push 0x971ffff
call fcn.004030d8
add dword [0x415844], eax
mov eax, dword [0x412934]
pop ecx
mov al, byte [eax]
pop ecx
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412934]
push eax
call fcn.0040ef68
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 [0x415828]
push 0xb01dffff
push eax
call fcn.00403002
push dword [ebp - 0xdc]
mov word [0x41582a], ax
lea eax, [ebp - 0xf8]
push eax
call fcn.00408ae1
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_]
cmp word [0x415822], 0
setne al
mov byte [0x415813], al
mov eax, dword [0x412938]
mov al, byte [eax]
sub al, bl
movzx eax, al
add eax, edi
and eax, esi
call fcn.0040fc90
mov eax, esp
push dword [0x412938]
push eax
call fcn.0040ef68
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_]
push 0x5849ffff
push 0xb919ffff
call fcn.004030d8
pop ecx
mov word [0x415822], ax
pop ecx
xor edi, edi
push 1
pop ebx
push dword [0x415840]
push 0xb037ffff
call fcn.00403002
mov esi, dword [ebp + 8]
pop ecx
pop ecx
mov byte [0x415819], al
mov al, byte [ebp - 0x20]
push edi
mov ecx, esi
mov byte [esi], 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, esi
push dword [eax]
lea eax, [ebp - 0x20]
push edi
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], ebx
and byte [ebp - 4], 0
push ebx
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, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret