Function at 0x40d55f
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x4219dd
call fcn.00420e60
sub esp, 0x490
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.0040df5d
push 1
mov dword [esi + 8], eax
pop edi
cmp eax, edi
jne 0x40d650
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 str.JUZI_06DC3546_4050_4CE0_9091_9D4BCE75C85B
mov dword [ebp - 4], ebx
call fcn.0040e658
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40d5c2
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.0040df14
test eax, eax
je 0x40d86f
mov ecx, esi
call fcn.0040e004
mov dword [esi + 0xc], eax
call fcn.00402c32
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x40d5f8
cmp dword [ebp - 0x14], ebx
je 0x40d885
cmp eax, ebx
je 0x40d600
call fcn.004113d1
mov dword [eax + 0x2c], ebx
call fcn.004113d1
mov ecx, eax
call fcn.00411406
mov edi, eax
call fcn.004113d1
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x40d61f
cmp eax, 4
jne 0x40d626
mov dword [esi + 0x10], 1
cmp edi, ebx
je 0x40d993
cmp dword [esi + 0xc], ebx
je 0x40d640
cmp dword [ebp - 0x14], ebx
jne 0x40d640
call fcn.004113d1
mov dword [eax + 0x28], ebx
or dword [ebp - 4], 0xffffffff
push 1
pop eax
mov dword [ebp - 0x18], eax
push eax
jmp 0x40d9bd
cmp eax, 3
jne 0x40d7e8
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 str.JUZI_2B979D3E_B397_49FD_B292_DDB5FB99CB8C
mov dword [ebp - 4], 2
call fcn.0040e658
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40d68c
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.0040df14
test eax, eax
je 0x40d9c5
lea eax, [ebp - 0x14]
mov dword [esi + 0xc], edi
push eax
push str._upquit:
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00402b7f
add esp, 0xc
test eax, eax
je 0x40d6c6
cmp dword [ebp - 0x14], ebx
je 0x40d6c6
mov dword [esi + 0x14], edi
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x292]
mov word [ebp - 0x294], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x294]
push 0x103
push eax
mov ecx, esi
call fcn.0040e5ca
test eax, eax
je 0x40d9d8
lea eax, [ebp - 0x294]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.004113d1
mov dword [eax + 0x28], ebx
call fcn.004113d1
mov dword [eax + 0x24], ebx
call fcn.004113d1
mov ecx, eax
call fcn.00411406
test eax, eax
je 0x40d9e6
lea eax, [ebp - 0x294]
push eax
call fcn.004113d1
mov ecx, eax
call fcn.00412eb9
call fcn.004113d1
cmp dword [eax + 0x28], ebx
je 0x40d758
call fcn.00402c32
test eax, eax
jne 0x40d758
call fcn.004113d1
mov dword [eax + 0x28], ebx
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.004113d1
mov dword [eax + 0x2c], edi
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.004113d1
mov dword [eax + 0x30], edi
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
mov byte [ebp - 4], 3
call fcn.0040e6ea
test eax, eax
je 0x40d7ca
mov esi, dword [ebp - 0x44]
cmp esi, ebx
jne 0x40d7ac
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.004113d1
cmp esi, ebx
mov edi, eax
je 0x40d7ca
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 - 0x48]
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 0x40d9ff
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_]
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
push str.JUZI_AB269781_6ABF_4F78_9748_6DF48ECCF0CC
mov dword [ebp - 4], 4
call fcn.0040e658
mov eax, dword [ebp - 0x54]
cmp eax, ebx
jne 0x40d81b
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.0040df14
test eax, eax
je 0x40da07
call fcn.00402c32
test eax, eax
mov ecx, esi
je 0x40da18
call fcn.0040e1cd
test eax, eax
je 0x40dc1c
call fcn.0040eae2
mov ecx, eax
call fcn.0040f753
call fcn.00415ce2
mov ecx, eax
call fcn.00415d17
test eax, eax
je 0x40dc59
mov dword [ebp - 0x18], edi
jmp 0x40dc78
call fcn.0040eae2
mov dword [eax + 0xc], 0x6a
or dword [ebp - 4], 0xffffffff
push edi
jmp 0x40d9bd
mov ecx, esi
call fcn.0040e746
test eax, eax
jne 0x40d8b1
push 0x10
push 0x429b70
push 0x429f44
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040eae2
mov dword [eax + 0xc], 0x66
jmp 0x40d87b
mov ecx, esi
call fcn.0040df46
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x292]
mov word [ebp - 0x294], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x294]
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 edi, eax
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_]
mov esi, dword [sym.imp.MSVCRT.dll_wcslen]
cmp edi, ebx
mov byte [ebp - 4], 1
je 0x40d924
cmp word [edi], bx
je 0x40d924
push edi
call esi
pop ecx
push eax
push edi
lea ecx, [ebp - 0x48]
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 edi, 0x429f40
push edi
call esi
pop ecx
push eax
push edi
lea ecx, [ebp - 0x48]
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 ebx, str._nadmin:
push ebx
call esi
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x48]
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 - 0x44]
test eax, eax
jne 0x40d958
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 - 0x294]
push eax
call fcn.00402c74
pop ecx
test eax, eax
pop ecx
je 0x40d976
call fcn.0040eae2
and dword [eax + 4], 0
jmp 0x40d982
call fcn.0040eae2
mov dword [eax + 0xc], 0x6b
and byte [ebp - 4], 0
push 1
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_]
jmp 0x40d9b7
cmp dword [esi + 0xc], ebx
jne 0x40d9ab
push 0x10
push 0x429b70
push 0x429f04
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040eae2
mov dword [eax + 0xc], 0x64
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40dc80
call fcn.0040eae2
or dword [ebp - 4], 0xffffffff
mov dword [eax + 0xc], 0xca
push edi
jmp 0x40d9ff
call fcn.0040eae2
mov dword [eax + 0xc], 0xc9
jmp 0x40d9f9
mov ecx, esi
call fcn.0040e514
call fcn.0040eae2
mov dword [eax + 0xc], 0xc8
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40dc80
call fcn.0040eae2
mov dword [eax + 0xc], 0x130
jmp 0x40dc78
call fcn.0040e746
test eax, eax
jne 0x40da45
push 0x10
push 0x429b54
push 0x429f44
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040eae2
mov dword [eax + 0xc], 0x12d
jmp 0x40dc78
mov ecx, esi
call fcn.0040df46
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x49a]
mov word [ebp - 0x49c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x49c]
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 edi, 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 esi, dword [sym.imp.MSVCRT.dll_wcslen]
cmp edi, ebx
mov byte [ebp - 4], 5
je 0x40dab8
cmp word [edi], bx
je 0x40dab8
push edi
call esi
pop ecx
push eax
push edi
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 edi, 0x429f40
push edi
call esi
pop ecx
push eax
push edi
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 ebx, str._nadmin:
push ebx
call esi
pop ecx
push eax
push ebx
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 al, byte [ebp - 0xd]
push 0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x68], 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 ebx, 0x40dc98
lea eax, [ebp - 0x8c]
push ebx
push 0x40ea16
push 1
push 0x24
push eax
mov byte [ebp - 4], 6
call fcn.00420ff8
lea eax, [ebp - 0x8c]
push 1
push eax
mov byte [ebp - 4], 7
call fcn.004041ea
pop ecx
test eax, eax
pop ecx
je 0x40db46
mov eax, dword [ebp - 0x84]
test eax, eax
jne 0x40db37
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]
lea ecx, [ebp - 0x68]
push ecx
push 1
push eax
call fcn.00403879
add esp, 0xc
push edi
call esi
pop ecx
push eax
push edi
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 edi, 0x429ef4
push edi
call esi
pop ecx
push eax
push edi
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 edi, 0x429ef0
push edi
call esi
pop ecx
push eax
push edi
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 - 0x64]
test eax, eax
jne 0x40db89
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 dword [ebp - 0x14], eax
call esi
pop ecx
push eax
lea ecx, [ebp - 0x38]
push dword [ebp - 0x14]
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_]
push edi
call esi
pop ecx
push eax
push edi
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]
test eax, eax
jne 0x40dbb8
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 - 0x49c]
push eax
call fcn.00402c74
pop ecx
test eax, eax
pop ecx
je 0x40dbd6
call fcn.0040eae2
and dword [eax + 4], 0
jmp 0x40dbe2
call fcn.0040eae2
mov dword [eax + 0xc], 0x131
push ebx
push 1
pop esi
lea eax, [ebp - 0x8c]
push esi
push 0x24
push eax
mov byte [ebp - 4], 6
call fcn.00420f04
push esi
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 5
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_]
push esi
lea ecx, [ebp - 0x38]
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 esi
jmp 0x40dc7d
mov ecx, esi
call fcn.0040df46
mov ecx, esi
call fcn.0040e28b
test eax, eax
jne 0x40dc4f
push 0x10
push 0x429b54
push 0x429ed8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040eae2
mov dword [eax + 0xc], 0x12e
jmp 0x40dc78
call fcn.0040eae2
mov dword [eax + 4], ebx
jmp 0x40dc78
push 0x10
push 0x429b54
push 0x429ed8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040eae2
mov dword [eax + 0xc], 0x12c
or dword [ebp - 4], 0xffffffff
push edi
lea ecx, [ebp - 0x58]
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