Function at 0x40db15
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x41058c
call fcn.0040f778
sub esp, 0x34
mov al, byte [0x415300]
and dword [ebp - 0x10], 0
sub byte [0x4152ff], al
mov al, byte [ebp + 0xf]
push ebx
push esi
push edi
push 0
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_]
mov al, byte [0x41530a]
mov dword [ebp - 4], 1
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
add byte [0x4152fd], al
mov ebx, dword [ebp + 0xc]
movsx eax, byte [0x415300]
mov edi, dword [ebx + 4]
push 0x1771ffff
push eax
call fcn.00402735
mov esi, dword [ebp + 0x10]
pop ecx
pop ecx
mov byte [0x4152f9], al
mov al, byte [esi]
push 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x20], 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 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 - 0x20]
push dword [eax]
push 0
push esi
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_]
mov esi, dword [0x412aec]
mov byte [ebp - 4], 2
mov al, byte [esi]
add al, 0x69
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0040f730
mov eax, esp
push esi
push eax
call fcn.0040ea15
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [ebp - 0x20]
push eax
push esi
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 0xe42bffff
push dword [0x41533c]
call fcn.004027fb
add byte [0x4152fd], al
cmp edi, dword [ebx + 8]
pop ecx
pop ecx
je 0x40dd1c
cmp dword [edi + 8], 0
jbe 0x40dd1c
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push dword [ebp - 0x18]
mov word [0x415302], ax
lea eax, [ebp - 0x40]
mov ecx, edi
push 0
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__::substr_unsigned_int__unsigned_int_]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__const]
mov ebx, eax
push 1
neg ebx
sbb bl, bl
lea ecx, [ebp - 0x40]
inc bl
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
test bl, bl
jne 0x40dc7d
push dword [0x415334]
push 0x2d3dffff
call fcn.004026ee
mov dword [0x415328], eax
mov eax, dword [ebp + 0xc]
add edi, 0x10
inc byte [0x4152fd]
cmp edi, dword [eax + 8]
pop ecx
pop ecx
jne 0x40dbfe
jmp 0x40dd1c
push 0x678fffff
push dword [0x415328]
call fcn.004027fb
mov esi, dword [0x412af0]
mov byte [0x4152fe], al
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x69
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0040f730
mov ebx, dword [ebp - 0x18]
mov eax, esp
push esi
push eax
call fcn.0040ea15
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
add esp, 0xc
mov ecx, edi
push eax
push ebx
push esi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_not_of_char_const___unsigned_int__unsigned_int_const]
mov esi, eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [0x415330], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, edi
push dword [eax]
lea eax, [ebp - 0x40]
push esi
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__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 4
push dword [ecx]
lea ecx, [ebp - 0x30]
push 0
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_]
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
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 [0x4152fd], 1
mov esi, dword [ebp + 8]
xor edi, edi
xor eax, eax
cmp dword [0x41533c], edi
push edi
mov ecx, esi
setne al
mov word [0x415312], ax
mov al, byte [ebp - 0x30]
mov byte [esi], 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 eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x30]
push edi
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_]
push 1
pop edi
mov dword [ebp - 0x10], edi
push edi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 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_]
and byte [ebp - 4], 0
push edi
lea ecx, [ebp - 0x30]
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 ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x4c]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret