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

Disassembly:
mov eax, 0x432c9e
call fcn.00430710
sub esp, 0x80
push ebx
push esi
mov esi, dword [0x43b3b8]
push edi
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430730
mov eax, esp
push esi
push eax
call fcn.0042d836
pop ecx
mov esi, eax
mov al, byte [ebp - 0xd]
pop ecx
xor ebx, ebx
lea ecx, [ebp - 0x28]
push ebx
mov byte [ebp - 0x28], 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 esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
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_]
push dword [0x43aca0]
mov dword [ebp - 4], ebx
push 0x735bffff
call fcn.0040aeeb
mov word [0x43ac8c], ax
mov al, byte [0x43aca8]
add byte [0x43ac7a], al
push 0x44
call fcn.0040f588
add esp, 0xc
call eax
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov edi, eax
mov dword [0x43aca4], 1
call esi
cmp edi, ebx
mov byte [0x43ac7e], al
je 0x42fb13
movsx eax, word [0x43ac8a]
push eax
push 0x1fb3ffff
call fcn.0040b087
add dword [0x43ac9c], eax
pop ecx
pop ecx
call esi
add byte [0x43ac7e], al
push 0x2e01ffff
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040af32
add dword [0x43acac], eax
pop ecx
pop ecx
or byte [0x43ac7e], 0xff
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push eax
push ebx
push ebx
push 2
push edi
push 0x30
call fcn.0040f588
pop ecx
call eax
movsx eax, word [0x43ac94]
push eax
mov word [0x43ac88], bx
movsx eax, byte [0x43ac7a]
push eax
call fcn.0040af6d
push dword [ebp - 0x14]
add byte [0x43ac79], al
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
push 0x6327ffff
mov esi, eax
push dword [0x43aca0]
mov dword [0x43acbc], 0x1bffff
call fcn.0040b0ac
add dword [0x43acb4], eax
add esp, 0x14
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push esi
push 2
push edi
push 0x30
call fcn.0040f588
pop ecx
call eax
push 0x5ccfffff
push 0x12e3ffff
call fcn.0040af94
pop ecx
mov word [0x43ac84], ax
pop ecx
push edi
push 0x2d
call fcn.0040f588
pop ecx
call eax
or al, 0xff
sub al, byte [0x43ac7b]
mov byte [0x43ac78], al
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
add word [0x43ac82], ax
or al, 0xff
sub al, byte [0x43ac94]
push esi
add byte [0x43ac7d], al
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
push dword [ebp - 0x20]
lea ecx, [ebp - 0x28]
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 0x42fadd
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x43aca4], eax
movsx eax, byte [0x43ac7e]
push eax
push 0xc775ffff
call fcn.0040b0ac
add word [0x43ac86], ax
push esi
call fcn.00430672
movsx eax, word [0x43ac90]
or byte [0x43ac79], 0xff
push eax
push dword [0x43acb0]
call fcn.0040aeeb
add byte [0x43ac81], al
mov ax, word [0x43ac8e]
add word [0x43ac84], ax
or dword [ebp - 4], 0xffffffff
add esp, 0x14
lea ecx, [ebp - 0x28]
push 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_]
mov al, 1
jmp 0x42fee2
movsx eax, byte [0x43ac78]
push eax
push 0x88b7ffff
call fcn.0040af94
add dword [0x43ac9c], eax
push esi
call fcn.00430672
push 0xa93ffff
push 0x3233ffff
call fcn.0040afcb
add esp, 0x14
add dword [0x43aca0], eax
mov byte [0x43ac7d], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x43ac7c], al
call dword [sym.imp.USER32.dll_GetCursor]
add byte [0x43ac7c], al
push 0x44
pop edi
lea eax, [ebp - 0x8c]
push edi
push ebx
push eax
call sub.MSVCRT.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add esp, 0xc
call esi
mov word [0x43ac88], ax
movsx eax, word [0x43ac90]
push eax
movsx eax, word [0x43ac92]
push eax
call fcn.0040b087
add dword [0x43ac98], eax
pop ecx
pop ecx
mov dword [ebp - 0x8c], edi
call esi
mov byte [0x43ac7e], al
mov eax, dword [0x43acb0]
or eax, 0xcd67ffff
push 0x10
add dword [0x43aca8], eax
lea eax, [ebp - 0x48]
push ebx
push eax
call sub.MSVCRT.dll_memset
push dword [0x43aca4]
push 0x7a35ffff
call fcn.0040b0f0
add word [0x43ac92], ax
mov esi, dword [0x43b3b8]
movsx ax, byte [0x43ac79]
add esp, 0x14
dec eax
mov word [0x43ac8c], ax
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.00430730
mov eax, esp
push ebx
push 0x10000000
push ebx
push ebx
push ebx
push esi
push eax
call fcn.0042d836
pop ecx
pop ecx
push eax
call dword [sym.imp.USER32.dll_CreateDesktopA]
mov dword [ebp - 0x14], eax
movsx eax, byte [0x43ac7c]
push eax
push dword [0x43acbc]
call fcn.0040af94
add dword [0x43acac], eax
push 0x8c57ffff
movsx eax, byte [0x43ac79]
push eax
call fcn.0040b0f0
add dword [0x43acb4], eax
mov eax, dword [ebp - 0x24]
add esp, 0x10
cmp eax, ebx
jne 0x42fc37
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov dword [ebp - 0x84], eax
movsx eax, word [0x43ac82]
and eax, 0x6aedffff
add dword [0x43acb4], eax
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x43ac7f], al
mov edi, 0x3e8
movsx eax, word [0x43ac90]
imul eax, eax, 0xeb6fffff
push 0xd51ffff
push 0xa86dffff
mov dword [0x43aca0], eax
mov dword [ebp - 0x60], 7
mov word [0x43ac92], bx
mov dword [ebp - 0x7c], edi
call fcn.0040af94
add word [0x43ac94], ax
or eax, 0xffffffff
sub eax, dword [0x43aca4]
push 0x6735ffff
push 0xd4cdffff
mov dword [ebp - 0x78], edi
mov word [0x43ac82], ax
call fcn.0040b0f0
add esp, 0x10
cmp dword [0x43ac98], ebx
mov dword [0x43acb4], eax
je 0x42fcd7
cmp dword [0x43ac9c], ebx
je 0x42fcd7
push 1
pop eax
jmp 0x42fcd9
xor eax, eax
add dword [0x43aca8], eax
or ecx, 0xffffffff
movsx ax, byte [0x43ac7b]
sub ecx, eax
push 0x64
movsx eax, byte [0x43ac79]
pop esi
mov word [0x43ac82], cx
push eax
mov dword [ebp - 0x74], esi
movsx eax, byte [0x43ac80]
push eax
call fcn.0040b087
or byte [0x43ac7a], 0xff
pop ecx
pop ecx
mov dword [0x43acb8], eax
mov dword [ebp - 0x70], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [0x43aca8], eax
mov ax, word [0x43aca0]
add word [0x43ac84], ax
push 1
pop esi
lea eax, [ebp - 0x38]
push esi
push eax
mov word [ebp - 0x5c], bx
call fcn.00422e98
movsx eax, byte [0x43ac81]
push eax
mov byte [ebp - 4], 1
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040afcb
movsx cx, byte [0x43ac81]
mov dword [0x43ac98], eax
movsx ax, byte [0x43ac80]
add eax, ecx
mov word [0x43ac90], ax
movsx eax, byte [0x43ac79]
push eax
push 0xeb5ffff
call fcn.0040b037
add esp, 0x18
mov byte [0x43ac7b], al
call fcn.0041655f
movsx ax, byte [0x43ac7f]
dec eax
mov word [0x43ac86], ax
mov eax, dword [ebp - 0x34]
cmp eax, ebx
jne 0x42fdb8
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x8c]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push 0x3c
call fcn.0040f588
pop ecx
call eax
test eax, eax
je 0x42fe7d
movsx ax, byte [0x43ac78]
or ax, word [0x43ac84]
mov word [0x43ac8c], ax
movsx eax, word [0x43ac92]
imul eax, eax, 0xdd09ffff
mov dword [0x43acb0], eax
movsx eax, byte [0x43ac7e]
push eax
push dword [0x43aca8]
call fcn.0040b0ac
pop ecx
mov word [0x43ac84], ax
pop ecx
push edi
push 0x59
call fcn.0040f588
pop ecx
call eax
movsx eax, byte [0x43ac7f]
push eax
push 0x2447ffff
call fcn.0040b0f0
add dword [0x43acb4], eax
pop ecx
pop ecx
call fcn.004163d4
test al, al
jne 0x42fe63
call fcn.004163cf
lea eax, [ebp - 0x18]
push 0x438160
push eax
mov dword [ebp - 0x18], esi
call sub.MSVCRT.dll__CxxThrowException
push 0xc4a9ffff
push dword [0x43aca0]
call fcn.0040b0ac
add byte [0x43ac7f], al
pop ecx
pop ecx
jmp 0x42fe82
call fcn.004163d4
push dword [ebp - 0x14]
mov byte [ebp - 0xd], bl
call dword [sym.imp.USER32.dll_SetThreadDesktop]
test eax, eax
je 0x42fe96
mov byte [ebp - 0xd], 1
push dword [ebp - 0x14]
push 0x2d
call fcn.0040f588
pop ecx
call eax
mov al, byte [0x43ac8c]
dec word [0x43ac94]
add byte [0x43ac7d], al
mov ax, word [0x43ac88]
dec ax
push esi
add word [0x43ac86], ax
lea ecx, [ebp - 0x38]
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_]
or dword [ebp - 4], 0xffffffff
push esi
lea ecx, [ebp - 0x28]
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 - 0xd]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x98]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret