Function at 0x407364
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x430b68
call fcn.00430000
sub esp, 0xb4
push ebx
push esi
push edi
call fcn.00401ebc
push dword [0x43bbfc]
mov byte [ebp - 0xf], al
push 0x2313ffff
call fcn.00411dc3
add dword [0x43bc0c], eax
push 0x9b2fffff
push dword [0x43bbfc]
call fcn.00411d58
add dword [0x43bbec], eax
push 0x773dffff
movsx eax, byte [0x43bbc8]
push eax
call fcn.00411c25
mov dword [0x43bc00], eax
call fcn.004033c3
push 0x241fffff
mov byte [ebp - 0xd], al
push dword [0x43bbfc]
call fcn.00411dc3
push dword [0x43bc04]
mov word [0x43bbd6], ax
push 0xa99ffff
call fcn.00411e4a
add byte [0x43bbc9], al
movsx eax, byte [0x43bbcf]
push eax
push 0x8ba3ffff
call fcn.00411cac
add dword [0x43bc08], eax
xor ebx, ebx
add esp, 0x30
cmp byte [ebp - 0xd], bl
je 0x407485
call dword [sym.imp.USER32.dll_GetInputState]
mov word [0x43bbe2], ax
movsx eax, word [0x43bbd6]
push eax
push 0x5a27ffff
call fcn.00411d1f
push 0x4119ffff
push 0xab3ffff
mov word [0x43bbe0], ax
call fcn.00411d90
add byte [0x43bbcf], al
call fcn.004035a9
movsx eax, word [0x43bbe2]
push 0xec8bffff
push eax
call fcn.00411cac
push 0x989dffff
push 0x194bffff
mov word [0x43bbd2], ax
call fcn.00411d1f
add esp, 0x20
mov byte [0x43bbcf], al
push 0x9889ffff
push 0xe5a7ffff
call fcn.00411cd8
add byte [0x43bbcc], al
push 0xc0f7ffff
push 0x6fd1ffff
call fcn.00411d90
add word [0x43bbd8], ax
push 0x1293ffff
movsx eax, byte [0x43bbc8]
push eax
call fcn.00411c25
push 0x4b
mov byte [0x43bbca], al
call fcn.004163e0
add esp, 0x1c
call eax
push eax
call dword [sym.imp.MSVCRT.dll_srand]
push dword [0x43bbf0]
push 0x5cdbffff
call fcn.00411d58
mov byte [0x43bbcb], al
movsx eax, byte [0x43bbcc]
push eax
push eax
call fcn.00411cd8
add esp, 0x14
mov dword [0x43bc00], eax
push 0x326fffff
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
push dword [0x43bbe8]
mov dword [0x43bbf8], eax
push 0x3969ffff
call fcn.00411c63
push dword [0x43bc0c]
add word [0x43bbe4], ax
push dword [0x43bbe8]
call fcn.00411d90
mov dword [0x43bbf8], eax
call fcn.0042f243
push 0x72b7ffff
push dword [0x43bbf8]
call fcn.00411e4a
add dword [0x43bc0c], eax
push dword [0x43bbf8]
movsx eax, word [0x43bbd2]
push eax
call fcn.00411d90
mov dword [0x43bbfc], eax
mov eax, dword [0x43bbf8]
dec eax
mov word [0x43bbda], ax
movsx eax, byte [0x43bbc8]
push eax
push 0x8f4bffff
call fcn.00411d1f
add word [0x43bbda], ax
add esp, 0x28
call fcn.00402168
mov byte [ebp - 0xd], al
call fcn.0040b3b3
cmp byte [ebp - 0xf], bl
jne 0x4075b4
call fcn.00402f7e
cmp byte [ebp - 0xd], bl
je 0x4075c2
call fcn.00406f4b
test al, al
je 0x4075db
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xcc]
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 4
call fcn.004070ef
call fcn.0040717e
push dword [0x43b8b0]
call fcn.0041aa1a
movsx eax, byte [0x43bbd0]
push 0xc917ffff
push eax
call fcn.00411e4a
mov byte [0x43bbce], al
movsx eax, byte [0x43bbcd]
push eax
push 0xc37bffff
call fcn.00411e04
add byte [0x43bbca], al
push 0xd82bffff
push 0x66fbffff
call fcn.00411d1f
mov eax, dword [0x43bbf4]
push 0xb1d5ffff
push dword [0x43bc04]
mov dword [ebp - 0x1c], ebx
neg eax
dec byte [0x43bbd0]
mov word [0x43bbe4], ax
mov byte [ebp - 0xd], 1
call fcn.00411c63
mov dword [0x43bc00], eax
push 0x4387ffff
movsx eax, word [0x43bbd6]
push eax
call fcn.00411cac
add byte [0x43bbcf], al
add esp, 0x2c
cmp byte [0x43bbca], bl
jne 0x40768e
cmp dword [0x43bbf8], ebx
mov byte [0x43bbc9], bl
je 0x407695
mov byte [0x43bbc9], 1
push 0xb115ffff
push dword [0x43bbf0]
call fcn.00411cd8
pop ecx
mov dword [0x43bbe8], eax
pop ecx
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x11], bl
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
add dword [0x43bc04], eax
push 0x27fffff
movsx eax, byte [0x43bbd1]
push eax
call fcn.00411cac
pop ecx
mov word [0x43bbd2], ax
pop ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
cmp dword [ebp - 0x18], ebx
mov byte [0x43bbcf], al
jne 0x40770e
push 9
call fcn.0040b5d2
push 2
mov esi, eax
call fcn.0040b5d2
imul esi, eax
imul esi, esi, 0x3e8
pop ecx
pop ecx
push esi
push 0x5a
call fcn.004163e0
pop ecx
call eax
movsx eax, word [0x43bbda]
push eax
push 0x27a3ffff
call fcn.00411d1f
mov dword [0x43bbf4], eax
push 0x294bffff
movsx eax, word [0x43bbd8]
push eax
call fcn.00411c25
add byte [0x43bbcb], al
mov eax, dword [0x43bc00]
and eax, dword [0x43bbf4]
inc dword [ebp - 0x18]
push 9
mov word [0x43bbd8], ax
mov al, byte [0x43bc08]
mov byte [0x43bbd0], al
call fcn.0040b5d2
add esp, 0x14
cmp dword [ebp - 0x18], eax
jb 0x4077a4
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
add word [0x43bbd2], ax
push 0x90abffff
push dword [0x43bbec]
mov dword [ebp - 0x18], ebx
call fcn.00411d58
or word [0x43bbdc], 0xffff
dec byte [0x43bbd0]
pop ecx
mov byte [0x43bbcd], al
pop ecx
mov byte [ebp - 0x11], bl
movsx eax, byte [0x43bbcb]
push dword [0x43bbfc]
push eax
call fcn.00411e4a
add word [0x43bbdc], ax
push 0x7883ffff
push 0x8c61ffff
mov word [0x43bbe4], bx
call fcn.00411d90
mov dword [0x43bbf4], eax
call fcn.00421340
mov esi, eax
mov al, byte [0x43bc0c]
push 0x885bffff
push 0xfeb3ffff
mov byte [0x43bbca], al
call fcn.00411d1f
add dword [0x43bc0c], eax
push 0xa3d7ffff
push 0x8b33ffff
call fcn.00411e4a
add word [0x43bbd4], ax
push 7
call fcn.0040b5d2
add esp, 0x24
cmp esi, eax
jae 0x407984
push 0x9f4fffff
push 0xab79ffff
call fcn.00411d58
cmp dword [ebp - 0x1c], 3
pop ecx
pop ecx
mov byte [0x43bbcd], al
jb 0x4076b2
movsx eax, word [0x43bbd2]
push eax
push 0x93bbffff
call fcn.00411c25
add byte [0x43bbc8], al
push 0xe87bffff
push 0x99c9ffff
call fcn.00411e04
mov dword [0x43bc00], eax
movsx eax, word [0x43bbe4]
push eax
push dword [0x43bbe8]
call fcn.00411c63
add esp, 0x18
mov word [0x43bbd2], ax
call fcn.0040375e
push 0x1388
push 0x5a
call fcn.004163e0
pop ecx
call eax
movsx eax, word [0x43bbda]
push 0x55c3ffff
push eax
call fcn.00411d58
movsx ecx, byte [0x43bbcc]
mov dword [0x43bbf4], eax
push 0xb891ffff
movsx eax, word [0x43bbde]
sub ecx, eax
movsx eax, word [0x43bbd6]
push eax
mov dword [0x43bc08], ecx
call fcn.00411cac
mov word [0x43bbe2], ax
call fcn.00421340
push 0x6e0fffff
mov esi, eax
push dword [0x43bbf0]
call fcn.00411c25
add byte [0x43bbd0], al
movsx eax, byte [0x43bbce]
push eax
push dword [0x43bbec]
call fcn.00411d58
push 7
mov dword [0x43bbfc], eax
call fcn.0040b5d2
add esp, 0x24
cmp esi, eax
jae 0x407968
call fcn.0042efb3
movsx eax, word [0x43bbd2]
push eax
push 0x2a6dffff
call fcn.00411cd8
mov byte [0x43bbc9], al
mov ax, word [0x43bbe0]
add word [0x43bbdc], ax
xor eax, eax
cmp byte [0x43bbd1], bl
pop ecx
pop ecx
setne al
add word [0x43bbd8], ax
push 0x7359ffff
push 0x1781ffff
call fcn.00411e04
add dword [0x43bc08], eax
pop ecx
pop ecx
jmp 0x4076b2
call fcn.00403746
cmp eax, 0x32
jl 0x4079d1
movsx eax, word [0x43bbd6]
push eax
push dword [0x43bc08]
call fcn.00411e4a
add byte [0x43bbcf], al
cmp dword [ebp - 0x1c], 1
pop ecx
pop ecx
jb 0x4079b4
call fcn.0042efb3
mov ax, word [0x43bc04]
add word [0x43bbde], ax
mov al, byte [0x43bbec]
sub byte [0x43bbcd], al
jmp 0x4076b2
lea ecx, [ebp - 0xb0]
call fcn.004088a4
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], ebx
push eax
call fcn.0040e9db
test al, al
pop ecx
je 0x4082d8
mov al, byte [0x43bbe8]
push 0x1e8dffff
add al, byte [0x43bc00]
push 0xe7f7ffff
mov byte [ebp - 0xd], bl
add byte [0x43bbca], al
inc dword [0x43bc08]
call fcn.00411d1f
push dword [0x43bbf8]
mov dword [0x43bc04], eax
push 0x871dffff
call fcn.00411c25
mov word [0x43bbde], ax
push ebx
movsx ax, byte [0x43bbca]
add ax, word [0x43bbd8]
add word [0x43bbd4], ax
call fcn.004036b6
mov esi, eax
push 0x14dbffff
movsx eax, word [0x43bbd4]
push eax
mov dword [ebp - 0x20], esi
call fcn.00411d1f
add esp, 0x1c
mov dword [0x43bc04], eax
cmp dword [esi + 0x38], 3
jl 0x407acd
movsx eax, byte [0x43bbce]
push 0xb0d7ffff
push eax
call fcn.00411d1f
pop ecx
mov dword [0x43bc00], eax
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x9fe7ffff
push 0xa363ffff
mov word [0x43bbd6], ax
call fcn.00411c63
pop ecx
mov word [0x43bbd8], ax
pop ecx
call fcn.0042efb3
movsx eax, word [0x43bbdc]
dec byte [0x43bbc8]
add dword [0x43bbf0], eax
mov eax, dword [0x43bc00]
sub dword [0x43bc0c], 0x1de80000
inc dword [ebp - 0x1c]
inc dword [ebp - 0x40]
push 1
or eax, 0xd5cbffff
add dword [0x43bbfc], eax
cmp byte [ebp - 0x11], bl
pop edi
mov byte [ebp - 0xe], bl
mov dword [0x43bbf8], edi
mov byte [ebp - 0xf], bl
jne 0x407c1d
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x44]
jge 0x407c1d
call dword [sym.imp.MSVCRT.dll_rand]
push 0xf8abffff
push 0x715ffff
mov esi, eax
call fcn.00411dc3
mov dword [0x43bc04], eax
push 0x8e49ffff
movsx eax, byte [0x43bbc9]
push eax
call fcn.00411d58
add esp, 0x10
cmp dword [ebp - 0x38], ebx
mov byte [0x43bbce], al
je 0x407b72
push 9
call fcn.0040b5d2
push eax
push dword [ebp - 0x38]
call fcn.0040711c
mov ecx, eax
mov eax, esi
cdq
idiv ecx
add esp, 0xc
test edx, edx
je 0x407b72
mov byte [ebp - 0xe], bl
jmp 0x407c1d
movsx eax, byte [0x43bbcb]
push eax
mov byte [ebp - 0xe], 1
push dword [0x43bbf0]
call fcn.00411c25
add word [0x43bbd2], ax
push 0x3a7fffff
movsx eax, byte [0x43bbce]
push eax
call fcn.00411d1f
add word [0x43bbd6], ax
mov al, byte [0x43bbd8]
imul byte [0x43bbda]
inc dword [ebp - 0x3c]
add byte [0x43bbcb], al
push 4
mov byte [ebp - 0x11], 1
mov byte [0x43bbc9], 1
call fcn.0040b5d2
add esp, 0x14
mov esi, eax
call dword [sym.imp.MSVCRT.dll_rand]
push 0x64
cdq
pop ecx
idiv ecx
cmp edx, esi
setb byte [ebp - 0xf]
cmp dword [0x43bbf8], ebx
je 0x407bfd
cmp dword [0x43bbf4], ebx
mov word [0x43bbde], di
jne 0x407c04
mov word [0x43bbde], bx
movsx eax, byte [0x43bbc8]
mov ecx, dword [0x43bc0c]
lea eax, [ecx + eax - 0x3f0a0001]
mov dword [0x43bc0c], eax
cmp word [0x43bbdc], bx
je 0x407c33
cmp word [0x43bbde], bx
je 0x407c33
mov eax, edi
jmp 0x407c35
xor eax, eax
add word [0x43bbd2], ax
mov ecx, dword [0x43bc08]
movsx eax, byte [0x43bbd0]
push 0x14
xor edx, edx
lea eax, [ecx + eax - 0x36ac0001]
pop ecx
mov dword [0x43bc08], eax
mov eax, dword [ebp - 0x1c]
div ecx
test edx, edx
jne 0x407cd6
movsx eax, byte [0x43bbca]
push eax
push 0xf547ffff
call fcn.00411d58
mov dword [0x43bbf4], eax
lea eax, [ebp - 0xc0]
push eax
mov byte [0x43bbcc], bl
mov dword [0x43bc04], edi
call fcn.0042771f
cmp dword [0x43bbf8], ebx
mov byte [ebp - 4], 1
setne al
mov byte [0x43bbca], al
mov eax, dword [0x43bbec]
imul eax, eax, 0x5dc7ffff
add dword [0x43bc08], eax
lea eax, [ebp - 0xc0]
push eax
push 5
call fcn.0040ba0d
add esp, 0x14
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], bl
push 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_]
push 0xc3b9ffff
push 0xe35bffff
call fcn.00411c63
add dword [0x43bbe8], eax
push 0xbe8bffff
movsx eax, byte [0x43bbce]
push eax
mov byte [0x43bbc9], 1
call fcn.00411dc3
mov byte [0x43bbc9], al
lea eax, [ebp - 0xb0]
push ebx
push eax
call fcn.0040dbc2
mov al, byte [0x43bc0c]
add esp, 0x18
dec al
mov byte [0x43bbce], al
call fcn.0040ed69
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], 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_]
push 0x1fafffff
push 0x374fffff
mov byte [ebp - 4], 2
mov byte [ebp - 0x10], bl
call fcn.00411c63
add byte [0x43bbd0], al
push 0xa477ffff
movsx eax, word [0x43bbe0]
push eax
call fcn.00411d58
add dword [0x43bc04], eax
add esp, 0x10
call dword [sym.imp.USER32.dll_GetDesktopWindow]
add word [0x43bbda], ax
cmp dword [ebp - 0x50], 3
jne 0x407de3
xor eax, eax
cmp dword [0x43bbec], ebx
mov dword [0x43bbf4], edi
lea ecx, [ebp - 0x30]
setne al
add word [0x43bbd6], ax
mov ax, word [0x43bbde]
dec ax
add word [0x43bbe2], 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]
push dword [eax]
lea eax, [ebp - 0x80]
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_]
cmp word [0x43bbda], bx
jne 0x407dd6
cmp word [0x43bbd6], bx
jne 0x407dd6
xor eax, eax
jmp 0x407dd8
mov eax, edi
add dword [0x43bbe8], eax
jmp 0x408154
cmp dword [ebp - 0x50], 4
jne 0x407e87
cmp dword [ebp - 0x98], ebx
jbe 0x407e7e
mov esi, dword [0x434eb0]
mov al, byte [esi]
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 - 0x30]
push dword [eax]
lea eax, [ebp - 0xb0]
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 [0x434eb4]
mov al, byte [esi]
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 0x408154
mov byte [ebp - 0x10], 1
jmp 0x408154
push 0x3e03ffff
push 0xa1b1ffff
call fcn.00411cd8
mov esi, dword [0x434eb8]
add word [0x43bbe2], ax
inc byte [0x43bbce]
or byte [0x43bbca], 0xff
mov al, byte [esi]
pop ecx
add al, 0x79
pop ecx
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 - 0x50], edi
jne 0x407fa9
mov esi, dword [0x434ec8]
mov al, byte [esi]
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 0x65adffff
push 0x301bffff
call fcn.00411dc3
mov byte [0x43bbcc], al
movsx eax, word [0x43bbd2]
push eax
push 0x95cdffff
call fcn.00411d1f
mov byte [0x43bbc8], al
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 - 0x30]
push dword [eax]
lea eax, [ebp - 0xb0]
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 [0x434ecc]
mov al, byte [esi]
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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]
mov dword [0x43bbf4], eax
jmp 0x4080bd
cmp dword [ebp - 0x50], 2
jne 0x4080bd
movsx eax, word [0x43bbd6]
push eax
push 0xac9dffff
call fcn.00411e4a
mov dword [0x43bc00], eax
pop ecx
movsx ax, byte [0x43bbcd]
sub word [0x43bbd2], ax
cmp dword [0x43bbec], ebx
pop ecx
je 0x407fef
cmp dword [0x43bc08], ebx
je 0x407fef
mov eax, edi
jmp 0x407ff1
xor eax, eax
mov esi, dword [0x434ed0]
add dword [0x43bbe8], eax
mov al, byte [esi]
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 - 0x30]
push dword [eax]
lea eax, [ebp - 0xb0]
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_]
movsx eax, byte [0x43bbcb]
push 0xf273ffff
push eax
call fcn.00411d90
push dword [0x43bc04]
mov word [0x43bbe0], ax
movsx eax, byte [0x43bbca]
push eax
call fcn.00411cd8
add dword [0x43bbf4], eax
mov esi, dword [0x434ed4]
movsx eax, byte [0x43bbcf]
imul eax, eax, 0xf901ffff
mov dword [0x43bc08], eax
mov al, byte [esi]
add al, 0x79
add esp, 0x10
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 [0x43bbd1]
call dword [sym.imp.USER32.dll_GetCursor]
add word [0x43bbd6], ax
movsx eax, byte [0x43bbcb]
push eax
push 0x4027ffff
call fcn.00411d1f
mov esi, dword [0x434ec4]
mov dword [0x43bbec], eax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x79
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430020
mov ecx, esp
mov edx, esi
call fcn.0042c1e6
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
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 0xce9dffff
push 0x841bffff
call fcn.00411cd8
mov byte [0x43bbd0], al
movsx eax, byte [0x43bbcd]
push eax
push dword [0x43bc00]
call fcn.00411c63
add esp, 0x10
add word [0x43bbde], ax
mov dword [0x43bbfc], edi
cmp byte [ebp - 0x33], bl
je 0x408166
lea eax, [ebp - 0xb0]
push eax
call fcn.0042d9cc
pop ecx
movsx eax, word [0x43bbde]
mov ecx, 0x3887ffff
sub ecx, eax
cmp byte [0x43bbd0], bl
mov dword [0x43bc08], ecx
jne 0x40818f
cmp word [0x43bbdc], bx
jne 0x40818f
xor eax, eax
jmp 0x408191
mov eax, edi
add dword [0x43bc04], eax
push 0xfc6bffff
push dword [0x43bbe8]
call fcn.00411c63
cmp byte [ebp - 0x10], bl
pop ecx
pop ecx
mov dword [0x43bc04], eax
jne 0x4081c5
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.004139ad
pop ecx
pop ecx
push 0x507fffff
push 0x426fffff
call fcn.00411dc3
add dword [0x43bbf8], eax
movsx eax, word [0x43bbe0]
push eax
push 0x2fcfffff
call fcn.00411cd8
add word [0x43bbda], ax
mov al, byte [0x43bbe8]
add esp, 0x10
cmp byte [ebp - 0x10], bl
mov byte [0x43bbce], al
mov al, byte [ebp - 0xe]
je 0x408220
xor ecx, ecx
cmp byte [ebp - 0xf], bl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0xb0]
jmp 0x408236
xor ecx, ecx
cmp byte [ebp - 0xf], bl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.00403cd1
cmp byte [ebp - 0xe], bl
je 0x40828b
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x60]
push eax
call fcn.00406f32
mov edi, dword [ebp - 0x20]
mov esi, 0x404
push 0x11
push esi
mov ecx, edi
call fcn.00417a41
push 0x12
push esi
mov ecx, edi
call fcn.00417a41
push 0x13
push esi
mov ecx, edi
call fcn.00417a41
push 0x14
push 0x403
mov ecx, edi
call fcn.00417a41
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x43bbcc], al
push 0x2525ffff
push dword [0x43bbe8]
call fcn.00411c25
add word [0x43bbd4], ax
pop ecx
movsx ax, byte [0x43bbcc]
and eax, dword [0x43bbfc]
pop ecx
push 1
lea ecx, [ebp - 0x30]
add word [0x43bbd2], ax
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_]
jmp 0x4083e3
cmp byte [ebp - 0xd], bl
jne 0x4083e3
push 6
call fcn.0040b5d2
push 5
mov esi, eax
call fcn.0040b5d2
pop ecx
cmp esi, eax
pop ecx
jb 0x4083e3
push 0xe
call fcn.0040b5d2
push 0xd
mov esi, eax
call fcn.0040b5d2
pop ecx
cmp esi, eax
pop ecx
jb 0x4083e3
push dword [0x43bbe8]
push 0x77afffff
call fcn.00411c63
add dword [0x43bc0c], eax
pop ecx
pop ecx
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharAlphaA]
push dword [0x43bbe8]
add word [0x43bbda], ax
push dword [0x43bbec]
call fcn.00411d90
add byte [0x43bbc9], al
call fcn.0040375e
push dword [0x43bbf0]
mov byte [ebp - 0xd], 1
push 0xed9fffff
call fcn.00411cd8
add byte [0x43bbc8], al
dec word [0x43bbd8]
movsx eax, byte [0x43bbce]
push 0x9f69ffff
push eax
call fcn.00411dc3
add word [0x43bbe2], ax
call fcn.0040ed69
movsx eax, word [0x43bbda]
mov ecx, dword [0x43bc08]
lea eax, [ecx + eax - 0x33f1ffff]
mov dword [0x43bc08], eax
call fcn.0042efb3
push 0x880bffff
push dword [0x43bbe8]
call fcn.00411e4a
add byte [0x43bbcd], al
push 0x6627ffff
push dword [0x43bbfc]
call fcn.00411c25
add esp, 0x28
mov dword [0x43bbf0], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb0]
call fcn.0040844e
jmp 0x4076b2