Function at 0x40f2c2
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x430a24
call fcn.0042f6e0
sub esp, 0xa8
push ebx
push esi
push edi
push dword [0x434fe0]
xor ebx, ebx
cmp word [0x43bbd2], bx
mov dword [ebp - 4], ebx
push ecx
setne al
mov byte [0x43bbce], al
lea eax, [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.0040fd81
lea eax, [ebp - 0x14]
push eax
call fcn.0042f31b
add esp, 0xc
mov al, byte [0x43bbf0]
or byte [0x43bbca], 0xff
imul byte [0x43bbce]
mov byte [ebp - 4], 1
mov byte [0x43bbc8], al
call dword [sym.imp.USER32.dll_GetFocus]
add dword [0x43bc00], eax
cmp dword [ebp - 0x14], ebx
je 0x40fb4b
cmp byte [0x43bbd1], bl
je 0x40f34f
cmp dword [0x43bc0c], ebx
je 0x40f34f
push 1
pop eax
jmp 0x40f351
xor eax, eax
add byte [0x43bbcf], al
push 0x25e5ffff
push dword [0x43bbf4]
call fcn.00411762
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
mov byte [0x43bbcd], al
mov esi, 0x80004003
jne 0x40f37e
push esi
call fcn.0042fb10
mov ecx, dword [ebp - 0x14]
call fcn.0040fcfb
cmp eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ebx
jle 0x40fb4b
mov al, byte [0x43bc0c]
dec al
cmp dword [ebp - 0x14], ebx
mov byte [0x43bbce], al
jne 0x40f3ab
push esi
call fcn.0042fb10
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2c]
push eax
call fcn.0040fcc6
dec byte [0x43bbd1]
cmp byte [0x43bbcb], bl
push 0x6db5ffff
push 0x8d83ffff
setne al
mov byte [ebp - 4], 2
mov byte [0x43bbc8], al
call fcn.00411856
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
mov byte [0x43bbca], al
je 0x40fb2b
xor eax, eax
cmp dword [0x43bc0c], ebx
push 0xece1ffff
setne al
add word [0x43bbdc], ax
call dword [sym.imp.USER32.dll_IsWindow]
add byte [0x43bbd1], al
mov eax, 0x8befffff
sub eax, dword [0x43bbf0]
push 0x8e1bffff
push 0xdb93ffff
add dword [0x43bbe8], eax
call fcn.004117d2
push 0xd9a7ffff
mov byte [0x43bbc9], al
push dword [0x43bbf8]
call fcn.004117aa
add esp, 0x10
mov byte [0x43bbca], al
lea eax, [ebp - 0x2c]
push dword [0x434fe4]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040fd81
lea eax, [ebp - 0x20]
push eax
call fcn.0042f223
add esp, 0xc
cmp dword [ebp - 0x20], ebx
mov byte [ebp - 4], 3
je 0x40f996
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov dword [0x43bc0c], eax
push ebx
movsx ax, byte [0x43bbd0]
sub word [0x43bbd2], ax
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0x74]
mov byte [ebp - 0x74], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 4
mov byte [ebp - 0xa4], 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_]
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x20]
push dword [0x434fc4]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040fd81
call fcn.0042f401
add esp, 0xc
cmp eax, ebx
je 0x40f975
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x20]
push dword [0x434fc8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040fd81
call fcn.0042f401
add esp, 0xc
cmp eax, ebx
je 0x40f975
movsx eax, word [0x43bbd6]
mov ecx, dword [0x43bbfc]
push dword [0x434fc0]
lea eax, [ecx + eax + 0x44980001]
push ecx
mov dword [0x43bbfc], eax
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040fd81
lea eax, [ebp - 0x18]
push eax
call fcn.0042f31b
add esp, 0xc
mov ax, word [0x43bbec]
mov byte [ebp - 4], 6
add word [0x43bbde], ax
movsx eax, word [0x43bbe4]
push eax
push 0x9fa3ffff
push 0x1c55ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
dec byte [0x43bbcd]
cmp dword [ebp - 0x18], ebx
mov word [0x43bbd8], ax
je 0x40f964
xor eax, eax
cmp dword [0x43bbfc], ebx
push ebx
lea ecx, [ebp - 0x54]
setne al
add word [0x43bbe0], ax
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x54], 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_]
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x20]
push dword [0x434fb8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040fd81
call fcn.0042f401
movsx eax, byte [0x43bbcb]
inc byte [0x43bbd0]
push eax
push dword [0x43bbec]
mov byte [0x43bbc8], bl
call fcn.00411820
add word [0x43bbe2], ax
add esp, 0x14
cmp dword [ebp - 0x18], ebx
jne 0x40f60c
push esi
call fcn.0042fb10
mov ecx, dword [ebp - 0x18]
call fcn.0040fcfb
mov cx, word [0x43bc0c]
xor edi, edi
add cx, word [0x43bbe4]
mov dword [ebp - 0x1c], eax
add word [0x43bbdc], cx
cmp eax, ebx
jle 0x40f955
movsx eax, word [0x43bbde]
push eax
movsx eax, byte [0x43bbcf]
push eax
call fcn.00411820
cmp dword [ebp - 0x18], ebx
pop ecx
pop ecx
mov word [0x43bbda], ax
jne 0x40f65e
push esi
call fcn.0042fb10
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x24]
push edi
push eax
call fcn.0040fcc6
movsx eax, byte [0x43bbca]
push eax
mov byte [ebp - 4], 8
movsx eax, word [0x43bbe2]
push eax
call fcn.004116ab
cmp dword [ebp - 0x24], ebx
pop ecx
pop ecx
mov dword [0x43bbec], eax
je 0x40f93a
movsx eax, byte [0x43bbcd]
push dword [0x43bbf8]
push eax
call fcn.0041172e
pop ecx
mov word [0x43bbd4], ax
mov al, byte [0x43bbde]
pop ecx
push eax
call dword [sym.imp.USER32.dll_IsCharLowerA]
mov dword [0x43bbf0], eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x44]
mov byte [ebp - 0xd], bl
mov byte [ebp - 0x44], 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 [0x43bbda]
push eax
push 0xa57ffff
mov byte [ebp - 4], 9
call fcn.004116de
mov word [0x43bbe2], ax
push 0x3b01ffff
movsx eax, word [0x43bbdc]
push eax
call fcn.00411762
add dword [0x43bbf8], eax
push 0x6695ffff
push 0xbce3ffff
call fcn.004116de
add esp, 0x18
mov word [0x43bbda], ax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x24]
push dword [0x434fb4]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd81
call fcn.0042f034
add esp, 0xc
cmp eax, ebx
je 0x40f853
mov eax, dword [0x43bbec]
push 0x6515ffff
sub eax, dword [0x43bc04]
push dword [0x43bc0c]
add word [0x43bbda], ax
call fcn.004118a0
mov esi, dword [0x434fa8]
mov word [0x43bbde], ax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
mov edx, esi
call fcn.0042b9bf
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x44]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
cmp eax, ebx
je 0x40f826
mov esi, dword [0x434fa4]
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
mov edx, esi
call fcn.0042b9bf
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x44]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
cmp eax, ebx
je 0x40f826
mov esi, dword [0x434fac]
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
mov edx, esi
call fcn.0042b9bf
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x44]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
cmp eax, ebx
jne 0x40f82a
mov byte [ebp - 0xd], 1
push 0xc669ffff
push 0x2a01ffff
call fcn.00411762
add byte [0x43bbcf], al
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
add word [0x43bbd8], ax
mov esi, 0x80004003
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x64]
mov byte [ebp - 0x64], 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_]
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0xa
push eax
push ecx
lea eax, [ebp - 0x24]
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd81
call fcn.0042f4d0
movsx eax, word [0x43bbd4]
push eax
push dword [0x43bc04]
call fcn.004116ab
add dword [0x43bbf8], eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00429c7c
add esp, 0x20
mov al, byte [0x43bbe0]
mov byte [ebp - 4], 0xb
add al, byte [0x43bc04]
add byte [0x43bbc8], al
movsx eax, byte [0x43bbcb]
or eax, 0x1ab3ffff
cmp byte [ebp - 0xd], bl
mov dword [0x43bc04], eax
je 0x40f8f8
inc byte [0x43bbc9]
lea eax, [ebp - 0x84]
push eax
call fcn.0042a5c7
test al, al
pop ecx
je 0x40f90a
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00409d28
pop ecx
pop ecx
push 1
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xa
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 1
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 9
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 1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 8
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 [ebp - 0x24]
mov byte [ebp - 4], 7
cmp eax, ebx
je 0x40f94b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc edi
cmp edi, dword [ebp - 0x1c]
jl 0x40f636
push 1
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 6
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 [ebp - 0x18]
mov byte [ebp - 4], 5
cmp eax, ebx
je 0x40f975
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 1
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 4
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 1
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
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, byte [0x43bbc8]
movsx ecx, byte [0x43bbce]
imul eax, ecx
add dword [0x43bc04], eax
sub dword [0x43bbf0], 0x6ed00002
movsx eax, word [0x43bbde]
push eax
mov dword [0x43bc00], 0x82560001
movsx eax, word [0x43bbe2]
push eax
call fcn.0041172e
add dword [0x43bc08], eax
pop ecx
pop ecx
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
add dword [0x43bbe8], eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0xb4]
mov byte [ebp - 0xb4], 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_]
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x2c]
push dword [0x434fb0]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd81
call fcn.0042f401
add esp, 0xc
cmp eax, ebx
je 0x40fb08
movsx eax, word [0x43bbd4]
push eax
push dword [0x43bc08]
call fcn.004117aa
add byte [0x43bbcd], al
pop ecx
movsx eax, byte [0x43bbcf]
pop ecx
push 0xeafbffff
push 0x2897ffff
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add byte [0x43bbcf], al
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x94], 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 edi, 0x43b9bc
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x94]
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_]
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00409d28
pop ecx
mov byte [ebp - 4], 0xc
pop ecx
push 1
lea ecx, [ebp - 0x94]
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 0x164bffff
push 0xb6f5ffff
call fcn.00411762
push 0xdb91ffff
push 0xae01ffff
mov dword [0x43bc08], eax
call fcn.004118e8
push dword [0x43bc00]
mov word [0x43bbde], ax
push 0x1fa9ffff
call fcn.00411856
add esp, 0x18
mov word [0x43bbe2], ax
push 1
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 3
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 [ebp - 0x20]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x40fb2b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x40fb3c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jl 0x40f394
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x40fb5b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x40fb6c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xc0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret