Function at 0x40f843
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x431344
call fcn.00430000
sub esp, 0xa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
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]
push dword [0x434fac]
mov byte [0x43bbcf], al
lea eax, [ebp + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.0041031e
lea eax, [ebp - 0x18]
push eax
call fcn.0042fc05
movsx eax, word [0x43bbda]
push eax
push 0x27a3ffff
mov byte [ebp - 4], 1
call fcn.00411d1f
add esp, 0x14
cmp dword [ebp - 0x18], ebx
mov dword [0x43bbf4], eax
je 0x4100e8
movsx eax, word [0x43bbd8]
push 0x294bffff
push eax
call fcn.00411c25
add byte [0x43bbcb], al
mov eax, dword [0x43bbf4]
and eax, dword [0x43bc00]
cmp dword [ebp - 0x18], ebx
pop ecx
mov esi, 0x80004003
mov word [0x43bbd8], ax
mov al, byte [0x43bc08]
pop ecx
mov byte [0x43bbd0], al
jne 0x40f916
push esi
call fcn.00430430
mov ecx, dword [ebp - 0x18]
call fcn.00410298
cmp eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ebx
jle 0x4100e8
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
add word [0x43bbd2], ax
cmp dword [ebp - 0x18], ebx
jne 0x40f946
push esi
call fcn.00430430
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x24]
push eax
call fcn.00410263
push 0x90abffff
mov byte [ebp - 4], 2
push dword [0x43bbec]
call fcn.00411d58
or word [0x43bbdc], 0xffff
cmp dword [ebp - 0x24], ebx
pop ecx
mov byte [0x43bbcd], al
pop ecx
je 0x4100c8
movsx eax, byte [0x43bbcb]
push dword [0x43bbfc]
dec byte [0x43bbd0]
push eax
call fcn.00411e4a
add word [0x43bbdc], ax
push 0x7883ffff
push 0x8c61ffff
mov word [0x43bbe4], bx
call fcn.00411d90
add esp, 0x10
mov dword [0x43bbf4], eax
lea eax, [ebp - 0x24]
push dword [0x434fb0]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0041031e
lea eax, [ebp - 0x1c]
push eax
call fcn.0042fb1b
add esp, 0xc
cmp dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 3
je 0x40ff78
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
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x74]
mov byte [ebp - 0x74], al
push ebx
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 - 0x1c]
push dword [0x434f90]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0041031e
call fcn.0042fcfe
add esp, 0xc
cmp eax, ebx
je 0x40ff57
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x1c]
push dword [0x434f94]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0041031e
call fcn.0042fcfe
add esp, 0xc
cmp eax, ebx
je 0x40ff57
push 0x9f4fffff
push 0xab79ffff
call fcn.00411d58
pop ecx
mov byte [0x43bbcd], al
pop ecx
lea eax, [ebp - 0x1c]
push dword [0x434f8c]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0041031e
lea eax, [ebp - 0x20]
push eax
call fcn.0042fc05
movsx eax, word [0x43bbd2]
push eax
push 0x93bbffff
mov byte [ebp - 4], 6
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, 0x24
cmp dword [ebp - 0x20], ebx
mov word [0x43bbd2], ax
je 0x40ff46
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
add esp, 0x10
mov word [0x43bbe2], ax
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0x54]
push ebx
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 - 0x1c]
push dword [0x434f84]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0041031e
call fcn.0042fcfe
push 0x6e0fffff
push dword [0x43bbf0]
call fcn.00411c25
add byte [0x43bbd0], al
movsx eax, byte [0x43bbce]
push eax
push dword [0x43bbec]
call fcn.00411d58
add esp, 0x1c
cmp dword [ebp - 0x20], ebx
mov dword [0x43bbfc], eax
jne 0x40fbe7
push esi
call fcn.00430430
mov ecx, dword [ebp - 0x20]
call fcn.00410298
mov dword [ebp - 0x14], eax
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
xor edi, edi
cmp dword [ebp - 0x14], ebx
jle 0x40ff37
push 0x7359ffff
push 0x1781ffff
call fcn.00411e04
add dword [0x43bc08], eax
cmp dword [ebp - 0x20], ebx
pop ecx
pop ecx
jne 0x40fc57
push esi
call fcn.00430430
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x2c]
push edi
push eax
call fcn.00410263
movsx eax, word [0x43bbd6]
push eax
mov byte [ebp - 4], 8
push dword [0x43bc08]
call fcn.00411e4a
add byte [0x43bbcf], al
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
je 0x40ff1c
mov ax, word [0x43bc04]
push ebx
add word [0x43bbde], ax
mov al, byte [0x43bbec]
sub byte [0x43bbcd], al
mov al, byte [ebp + 0xb]
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_]
mov al, byte [0x43bbe8]
mov byte [ebp - 4], 9
add al, byte [0x43bc00]
add byte [0x43bbca], al
lea eax, [ebp - 0x44]
push eax
inc dword [0x43bc08]
push dword [0x434f80]
lea eax, [ebp - 0x2c]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0041031e
call fcn.0042f8fd
add esp, 0xc
cmp eax, ebx
je 0x40fe14
push 0x1e8dffff
push 0xe7f7ffff
call fcn.00411d1f
push dword [0x43bbf8]
mov dword [0x43bc04], eax
push 0x871dffff
call fcn.00411c25
mov esi, dword [0x434f74]
mov word [0x43bbde], ax
movsx ax, byte [0x43bbca]
add ax, word [0x43bbd8]
add esp, 0x10
add word [0x43bbd4], ax
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
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 0x40fdf2
mov esi, dword [0x434f70]
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
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 0x40fdf2
mov esi, dword [0x434f78]
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
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 0x40fdf6
mov byte [ebp - 0xd], 1
movsx eax, word [0x43bbd4]
push 0x14dbffff
push eax
call fcn.00411d1f
pop ecx
mov dword [0x43bc04], eax
pop ecx
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 - 0x2c]
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0041031e
call fcn.0042fde7
movsx eax, byte [0x43bbce]
push 0xb0d7ffff
push eax
call fcn.00411d1f
add esp, 0x10
mov dword [0x43bc00], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x9fe7ffff
push 0xa363ffff
mov word [0x43bbd6], ax
call fcn.00411c63
mov word [0x43bbd8], ax
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.0042a528
add esp, 0x18
movsx eax, word [0x43bbdc]
dec byte [0x43bbc8]
add dword [0x43bbf0], eax
cmp byte [ebp - 0xd], bl
mov byte [ebp - 4], 0xb
je 0x40feda
sub dword [0x43bc0c], 0x1de80000
lea eax, [ebp - 0x84]
push eax
mov dword [0x43bbf8], 1
call fcn.0042ae88
test al, al
pop ecx
je 0x40feec
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0040a1a5
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 - 0x2c]
mov byte [ebp - 4], 7
cmp eax, ebx
je 0x40ff2d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc edi
cmp edi, dword [ebp - 0x14]
jl 0x40fc35
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 - 0x20]
mov byte [ebp - 4], 5
cmp eax, ebx
je 0x40ff57
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_]
mov eax, dword [0x43bc00]
push 0xf8abffff
or eax, 0xd5cbffff
push 0x715ffff
add dword [0x43bbfc], eax
call fcn.00411dc3
mov dword [0x43bc04], eax
push 0x8e49ffff
movsx eax, byte [0x43bbc9]
push eax
call fcn.00411d58
add esp, 0x10
mov byte [0x43bbce], al
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0xb4]
push ebx
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 - 0x24]
push dword [0x434f7c]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0041031e
call fcn.0042fcfe
add esp, 0xc
cmp eax, ebx
je 0x4100a5
movsx eax, byte [0x43bbcb]
push eax
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 [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x94], al
push ebx
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.0040a1a5
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_]
mov al, byte [0x43bbd8]
mov byte [0x43bbc9], 1
imul byte [0x43bbda]
add byte [0x43bbcb], al
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 - 0x1c]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4100c8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x4100d9
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 0x40f92c
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x4100f8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x410109
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