Function at 0x40cdf9
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x4201da
call fcn.0041f700
sub esp, 0x45c
push ebx
push esi
xor ebx, ebx
push edi
mov esi, ecx
mov dword [ebp - 0x18], ebx
call fcn.00402cf9
mov ecx, esi
call fcn.0040d6c9
push 1
mov dword [esi + 8], eax
pop edi
cmp eax, edi
jne 0x40ceea
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
push 0x428020
mov dword [ebp - 4], ebx
call fcn.0040dd93
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40ce5c
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
mov ecx, esi
call fcn.0040d680
test eax, eax
je 0x40d109
mov ecx, esi
call fcn.0040d770
mov dword [esi + 0xc], eax
call fcn.00402c32
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x40ce92
cmp dword [ebp - 0x14], ebx
je 0x40d11f
cmp eax, ebx
je 0x40ce9a
call fcn.00410999
mov dword [eax + 0x2c], ebx
call fcn.00410999
mov ecx, eax
call fcn.004109ce
mov edi, eax
call fcn.00410999
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x40ceb9
cmp eax, 4
jne 0x40cec0
mov dword [esi + 0x10], 1
cmp edi, ebx
je 0x40d22b
cmp dword [esi + 0xc], ebx
je 0x40ceda
cmp dword [ebp - 0x14], ebx
jne 0x40ceda
call fcn.00410999
mov dword [eax + 0x28], ebx
or dword [ebp - 4], 0xffffffff
push 1
pop eax
mov dword [ebp - 0x18], eax
push eax
jmp 0x40d255
cmp eax, 3
jne 0x40d082
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
push 0x427fc8
mov dword [ebp - 4], 2
call fcn.0040dd93
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40cf26
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
mov ecx, esi
call fcn.0040d680
test eax, eax
je 0x40d25d
lea eax, [ebp - 0x14]
mov dword [esi + 0xc], edi
push eax
push 0x427fb4
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00402b7f
add esp, 0xc
test eax, eax
je 0x40cf60
cmp dword [ebp - 0x14], ebx
je 0x40cf60
mov dword [esi + 0x14], edi
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x25e]
mov word [ebp - 0x260], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x260]
push 0x103
push eax
mov ecx, esi
call fcn.0040dd05
test eax, eax
je 0x40d270
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.00410999
mov dword [eax + 0x28], ebx
call fcn.00410999
mov dword [eax + 0x24], ebx
call fcn.00410999
mov ecx, eax
call fcn.004109ce
test eax, eax
je 0x40d27e
lea eax, [ebp - 0x260]
push eax
call fcn.00410999
mov ecx, eax
call fcn.004123ed
call fcn.00410999
cmp dword [eax + 0x28], ebx
je 0x40cff2
call fcn.00402c32
test eax, eax
jne 0x40cff2
call fcn.00410999
mov dword [eax + 0x28], ebx
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.00410999
mov dword [eax + 0x2c], edi
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.00410999
mov dword [eax + 0x30], edi
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea eax, [ebp - 0x38]
mov ecx, esi
push eax
mov byte [ebp - 4], 3
call fcn.0040de25
test eax, eax
je 0x40d064
mov esi, dword [ebp - 0x34]
cmp esi, ebx
jne 0x40d046
mov esi, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
call fcn.00410999
cmp esi, ebx
mov edi, eax
je 0x40d064
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
push eax
push esi
lea ecx, [edi + 0x58]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
push 1
lea ecx, [ebp - 0x38]
pop esi
mov byte [ebp - 4], 2
push esi
mov dword [ebp - 0x18], esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
push esi
jmp 0x40d297
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x48], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
push 0x427f5c
mov dword [ebp - 4], 4
call fcn.0040dd93
mov eax, dword [ebp - 0x44]
cmp eax, ebx
jne 0x40d0b5
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
mov ecx, esi
call fcn.0040d680
test eax, eax
je 0x40d29f
call fcn.00402c32
test eax, eax
mov ecx, esi
je 0x40d2b0
call fcn.0040d939
test eax, eax
je 0x40d3c4
call fcn.0040e21d
mov ecx, eax
call fcn.0040eda9
call fcn.0041485f
mov ecx, eax
call fcn.00414894
test eax, eax
je 0x40d401
mov dword [ebp - 0x18], edi
jmp 0x40d420
call fcn.0040e21d
mov dword [eax + 0xc], 0x6a
or dword [ebp - 4], 0xffffffff
push edi
jmp 0x40d255
mov ecx, esi
call fcn.0040de81
test eax, eax
jne 0x40d14b
push 0x10
push 0x427b84
push 0x427f40
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e21d
mov dword [eax + 0xc], 0x66
jmp 0x40d115
mov ecx, esi
call fcn.0040d6b2
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x25e]
mov word [ebp - 0x260], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x260]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00402a74
pop ecx
mov esi, eax
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
cmp esi, ebx
mov byte [ebp - 4], 1
je 0x40d1be
cmp word [esi], bx
je 0x40d1be
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
mov esi, 0x427f3c
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_short_int_const___unsigned_int_]
mov esi, 0x427f28
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_short_int_const___unsigned_int_]
mov eax, dword [ebp - 0x34]
cmp eax, ebx
jne 0x40d1f2
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00402c74
pop ecx
test eax, eax
pop ecx
je 0x40d20f
call fcn.0040e21d
mov dword [eax + 4], ebx
jmp 0x40d21b
call fcn.0040e21d
mov dword [eax + 0xc], 0x6b
push 1
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
jmp 0x40d24f
cmp dword [esi + 0xc], ebx
jne 0x40d243
push 0x10
push 0x427b84
push 0x427f00
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e21d
mov dword [eax + 0xc], 0x64
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40d428
call fcn.0040e21d
or dword [ebp - 4], 0xffffffff
mov dword [eax + 0xc], 0xca
push edi
jmp 0x40d297
call fcn.0040e21d
mov dword [eax + 0xc], 0xc9
jmp 0x40d291
mov ecx, esi
call fcn.0040dc4f
call fcn.0040e21d
mov dword [eax + 0xc], 0xc8
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40d428
call fcn.0040e21d
mov dword [eax + 0xc], 0x130
jmp 0x40d420
call fcn.0040de81
test eax, eax
jne 0x40d2dd
push 0x10
push 0x427b68
push 0x427f40
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e21d
mov dword [eax + 0xc], 0x12d
jmp 0x40d420
mov ecx, esi
call fcn.0040d6b2
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x466]
mov word [ebp - 0x468], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x468]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00402a74
pop ecx
mov esi, eax
mov al, byte [ebp - 0xd]
push ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x58], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
cmp esi, ebx
mov byte [ebp - 4], 5
je 0x40d350
cmp word [esi], bx
je 0x40d350
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x58]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
mov esi, 0x427f3c
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x58]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_short_int_const___unsigned_int_]
mov esi, 0x427f28
push esi
call edi
pop ecx
push eax
push esi
lea ecx, [ebp - 0x58]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::append_unsigned_short_int_const___unsigned_int_]
mov eax, dword [ebp - 0x54]
cmp eax, ebx
jne 0x40d384
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.00402c74
pop ecx
test eax, eax
pop ecx
je 0x40d3a1
call fcn.0040e21d
mov dword [eax + 4], ebx
jmp 0x40d3ad
call fcn.0040e21d
mov dword [eax + 0xc], 0x131
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
push 1
jmp 0x40d425
mov ecx, esi
call fcn.0040d6b2
mov ecx, esi
call fcn.0040d9f7
test eax, eax
jne 0x40d3f7
push 0x10
push 0x427b68
push 0x427ee8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e21d
mov dword [eax + 0xc], 0x12e
jmp 0x40d420
call fcn.0040e21d
mov dword [eax + 4], ebx
jmp 0x40d420
push 0x10
push 0x427b68
push 0x427ee8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e21d
mov dword [eax + 0xc], 0x12c
or dword [ebp - 4], 0xffffffff
push edi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret