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

Disassembly:
mov eax, 0x43061c
call fcn.0042f2d0
sub esp, 0xa8
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
cmp byte [0x43abd1], bl
mov dword [ebp - 4], ebx
setne al
mov word [0x43abde], ax
movsx eax, byte [0x43abcc]
push eax
movsx eax, byte [0x43abc9]
push eax
call fcn.00411775
pop ecx
mov word [0x43abe2], ax
pop ecx
lea eax, [ebp + 8]
push dword [0x433fe0]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.0040fd65
lea eax, [ebp - 0x24]
push eax
call fcn.0042eed9
mov al, byte [0x43abf0]
push dword [0x43abfc]
dec al
mov byte [ebp - 4], 1
add byte [0x43abcc], al
push 0x9685ffff
call fcn.004117b3
mov esi, dword [ebp - 0x24]
add word [0x43abe2], ax
add esp, 0x14
cmp esi, ebx
je 0x40fb32
xor eax, eax
cmp byte [0x43abca], bl
mov ecx, esi
setne al
add byte [0x43abd0], al
call fcn.0040fcdf
cmp eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ebx
jle 0x40fb2f
push 0x3721ffff
push 0x11cbffff
call fcn.00411775
add dword [0x43abf8], eax
mov al, byte [0x43abe0]
add byte [0x43abcf], al
cmp dword [ebp - 0x24], ebx
pop ecx
pop ecx
jne 0x40f38c
push 0x80004003
call fcn.0042f700
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x2c]
push eax
call fcn.0040fcaa
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
add byte [0x43abcb], al
cmp dword [ebp - 0x2c], ebx
je 0x40fb0f
movsx eax, byte [0x43abcc]
push eax
push 0xc75ffff
call fcn.00411706
mov word [0x43abe0], ax
push 0xbe51ffff
movsx eax, word [0x43abe4]
push eax
call fcn.00411864
push dword [0x43abec]
mov word [0x43abe4], ax
push dword [0x43ac0c]
call fcn.004118af
add dword [0x43ac00], eax
movsx eax, byte [0x43abcf]
push eax
push 0xb8afffff
call fcn.00411775
add esp, 0x20
mov dword [0x43abf8], eax
lea eax, [ebp - 0x2c]
push dword [0x433fe4]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040fd65
lea eax, [ebp - 0x1c]
push eax
call fcn.0042edce
add esp, 0xc
cmp dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 3
je 0x40f998
mov eax, dword [0x43ac0c]
dec eax
mov word [0x43abd2], ax
movsx eax, byte [0x43abcf]
push eax
push 0x8e97ffff
call fcn.004116b5
pop ecx
mov dword [0x43ac00], eax
mov al, byte [ebp + 0xb]
pop ecx
push ebx
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 - 0x1c]
push dword [0x433fc4]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040fd65
call fcn.0042efb4
add esp, 0xc
cmp eax, ebx
je 0x40f977
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x1c]
push dword [0x433fc8]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040fd65
call fcn.0042efb4
add esp, 0xc
cmp eax, ebx
je 0x40f977
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push dword [0x433fc0]
add word [0x43abde], ax
lea eax, [ebp - 0x1c]
mov word [0x43abd6], 0xfffe
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040fd65
lea eax, [ebp - 0x18]
push eax
call fcn.0042eed9
add esp, 0xc
movsx eax, word [0x43abe2]
or eax, dword [0x43abec]
mov byte [ebp - 4], 6
add dword [0x43abfc], eax
mov al, byte [0x43abd1]
mov cl, al
dec cl
add byte [0x43abcf], cl
cmp dword [ebp - 0x18], ebx
je 0x40f966
movsx eax, al
push 0x5d49ffff
push eax
call fcn.004118af
pop ecx
mov dword [0x43abfc], eax
mov al, byte [ebp + 0xb]
pop ecx
push ebx
lea ecx, [ebp - 0x54]
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 [0x433fb8]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040fd65
call fcn.0042efb4
movsx eax, byte [0x43abca]
push eax
push 0x589ffff
call fcn.00411775
add byte [0x43abcf], al
add esp, 0x14
movsx eax, byte [0x43abcd]
push eax
call dword [sym.imp.USER32.dll_IsMenu]
mov byte [0x43abcf], al
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add dword [0x43ac00], eax
cmp dword [ebp - 0x18], ebx
jne 0x40f5e1
push 0x80004003
call fcn.0042f700
mov ecx, dword [ebp - 0x18]
call fcn.0040fcdf
mov dword [ebp - 0x14], eax
movsx eax, byte [0x43abcc]
push eax
push 0x611bffff
call fcn.004117ef
pop ecx
xor edi, edi
cmp dword [ebp - 0x14], ebx
pop ecx
mov word [0x43abdc], ax
jle 0x40f957
push 0x40fffff
push 0xdf41ffff
call fcn.004117b3
add byte [0x43abcf], al
push dword [0x43abec]
movsx eax, byte [0x43abc9]
push eax
call fcn.004118af
add esp, 0x10
cmp dword [ebp - 0x18], ebx
mov byte [0x43abcc], al
jne 0x40f650
push 0x80004003
call fcn.0042f700
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push edi
push eax
call fcn.0040fcaa
add dword [0x43ac0c], 0x1beffffe
push 0x38dffff
push 0xd751ffff
mov byte [ebp - 4], 8
call fcn.004118af
mov byte [0x43abcb], al
mov al, byte [0x43ac04]
sub byte [0x43abca], al
cmp dword [ebp - 0x20], ebx
pop ecx
pop ecx
je 0x40f93c
mov al, byte [ebp + 0xb]
inc dword [0x43abe8]
add dword [0x43abf4], 0x60b5fffe
push ebx
lea ecx, [ebp - 0x44]
mov byte [0x43abc8], 1
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 byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov byte [0x43abce], al
movsx eax, word [0x43abe2]
push eax
push 0xce6fffff
call fcn.00411864
add byte [0x43abcc], al
pop ecx
pop ecx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push dword [0x433fb4]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd65
call fcn.0042eb8c
add esp, 0xc
cmp eax, ebx
je 0x40f7ff
movsx eax, word [0x43abda]
add eax, dword [0x43abe8]
mov esi, dword [0x433fa8]
add byte [0x43abcf], 0xfe
dec word [0x43abda]
mov dword [0x43ac0c], eax
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
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 0x40f7e5
mov esi, dword [0x433fa4]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
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 0x40f7e5
mov esi, dword [0x433fac]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
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 0x40f7e9
mov byte [ebp - 0xd], 1
push 0xa575ffff
push 0x2a69ffff
call fcn.00411706
pop ecx
mov byte [0x43abcb], al
pop ecx
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 - 0x20]
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd65
call fcn.0042f0af
cmp byte [0x43abc8], bl
pop ecx
pop ecx
je 0x40f843
cmp word [0x43abde], bx
je 0x40f843
push 1
pop eax
jmp 0x40f845
xor eax, eax
add word [0x43abe0], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
add byte [0x43abcc], al
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x74]
inc byte [0x43abcb]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00429afe
add esp, 0x10
mov byte [ebp - 4], 0xb
call dword [sym.imp.USER32.dll_GetCapture]
add byte [0x43abca], al
push dword [0x43ac0c]
movsx eax, byte [0x43abcc]
push eax
call fcn.00411706
cmp byte [ebp - 0xd], bl
pop ecx
pop ecx
mov dword [0x43ac04], eax
je 0x40f8fa
mov al, byte [0x43abd6]
dec al
mov byte [0x43abce], al
movsx eax, word [0x43abe2]
push eax
push 0xd9adffff
call fcn.004117ef
add word [0x43abe2], ax
movsx eax, word [0x43abd4]
push eax
push 0x8d31ffff
call fcn.004118af
mov byte [0x43abc8], al
lea eax, [ebp - 0x84]
push eax
call fcn.0042a423
add esp, 0x14
test al, al
je 0x40f90c
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00409ae3
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 - 0x20]
mov byte [ebp - 4], 7
cmp eax, ebx
je 0x40f94d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc edi
cmp edi, dword [ebp - 0x14]
jl 0x40f611
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 0x40f977
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 ax, byte [0x43abcc]
mov cx, word [0x43abe2]
sub cx, ax
add word [0x43abd6], cx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov word [0x43abd4], ax
mov eax, dword [0x43abe8]
and eax, 0xcacfffff
push ebx
mov dword [0x43ac0c], eax
lea ecx, [ebp - 0xb4]
movsx eax, word [0x43abe2]
or eax, 0x2401ffff
add dword [0x43ac04], eax
mov eax, dword [0x43ac04]
add eax, 0x7b91ffff
mov dword [0x43ac08], eax
mov al, byte [ebp + 0xb]
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 [0x433fb0]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.0040fd65
call fcn.0042efb4
add esp, 0xc
cmp eax, ebx
je 0x40faec
push 0x804bffff
push dword [0x43abec]
call fcn.00411706
add word [0x43abd8], ax
movsx eax, word [0x43abd6]
push eax
push 0x247fffff
call fcn.00411738
add word [0x43abd8], ax
add esp, 0x10
cmp dword [0x43abfc], ebx
jne 0x40fa7d
cmp dword [0x43ac04], ebx
mov word [0x43abdc], bx
je 0x40fa86
mov word [0x43abdc], 1
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 esi, 0x43a9bc
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
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.00409ae3
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 [0x43abdc]
add byte [0x43abd1], 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 0x40fb0f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x40fb20
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 0x40f35b
mov esi, dword [ebp - 0x24]
cmp esi, ebx
mov byte [ebp - 4], bl
je 0x40fb3f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x40fb50
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