Function at 0x40ce51
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x42059a
call fcn.0041fac0
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.0040d721
push 1
mov dword [esi + 8], eax
pop edi
cmp eax, edi
jne 0x40cf42
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.0040ddeb
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40ceb4
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.0040d6d8
test eax, eax
je 0x40d161
mov ecx, esi
call fcn.0040d7c8
mov dword [esi + 0xc], eax
call fcn.00402c32
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x40ceea
cmp dword [ebp - 0x14], ebx
je 0x40d177
cmp eax, ebx
je 0x40cef2
call fcn.00410b4b
mov dword [eax + 0x2c], ebx
call fcn.00410b4b
mov ecx, eax
call fcn.00410b80
mov edi, eax
call fcn.00410b4b
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x40cf11
cmp eax, 4
jne 0x40cf18
mov dword [esi + 0x10], 1
cmp edi, ebx
je 0x40d283
cmp dword [esi + 0xc], ebx
je 0x40cf32
cmp dword [ebp - 0x14], ebx
jne 0x40cf32
call fcn.00410b4b
mov dword [eax + 0x28], ebx
or dword [ebp - 4], 0xffffffff
push 1
pop eax
mov dword [ebp - 0x18], eax
push eax
jmp 0x40d2ad
cmp eax, 3
jne 0x40d0da
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.0040ddeb
mov eax, dword [ebp - 0x24]
cmp eax, ebx
jne 0x40cf7e
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.0040d6d8
test eax, eax
je 0x40d2b5
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 0x40cfb8
cmp dword [ebp - 0x14], ebx
je 0x40cfb8
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.0040dd5d
test eax, eax
je 0x40d2c8
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.00410b4b
mov dword [eax + 0x28], ebx
call fcn.00410b4b
mov dword [eax + 0x24], ebx
call fcn.00410b4b
mov ecx, eax
call fcn.00410b80
test eax, eax
je 0x40d2d6
lea eax, [ebp - 0x260]
push eax
call fcn.00410b4b
mov ecx, eax
call fcn.00412543
call fcn.00410b4b
cmp dword [eax + 0x28], ebx
je 0x40d04a
call fcn.00402c32
test eax, eax
jne 0x40d04a
call fcn.00410b4b
mov dword [eax + 0x28], ebx
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.00410b4b
mov dword [eax + 0x2c], edi
xor eax, eax
cmp dword [esi + 0x14], ebx
sete al
mov edi, eax
call fcn.00410b4b
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.0040de7d
test eax, eax
je 0x40d0bc
mov esi, dword [ebp - 0x34]
cmp esi, ebx
jne 0x40d09e
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.00410b4b
cmp esi, ebx
mov edi, eax
je 0x40d0bc
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 0x40d2ef
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 str.JUZI_AB269781_6ABF_4F78_9748_6DF48ECCF0CC
mov dword [ebp - 4], 4
call fcn.0040ddeb
mov eax, dword [ebp - 0x44]
cmp eax, ebx
jne 0x40d10d
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.0040d6d8
test eax, eax
je 0x40d2f7
call fcn.00402c32
test eax, eax
mov ecx, esi
je 0x40d308
call fcn.0040d991
test eax, eax
je 0x40d41c
call fcn.0040e275
mov ecx, eax
call fcn.0040eee6
call fcn.00414b13
mov ecx, eax
call fcn.00414b48
test eax, eax
je 0x40d459
mov dword [ebp - 0x18], edi
jmp 0x40d478
call fcn.0040e275
mov dword [eax + 0xc], 0x6a
or dword [ebp - 4], 0xffffffff
push edi
jmp 0x40d2ad
mov ecx, esi
call fcn.0040ded9
test eax, eax
jne 0x40d1a3
push 0x10
push 0x427b84
push 0x427f40
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e275
mov dword [eax + 0xc], 0x66
jmp 0x40d16d
mov ecx, esi
call fcn.0040d70a
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 0x40d216
cmp word [esi], bx
je 0x40d216
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, str._nadmin:
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 0x40d24a
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 0x40d267
call fcn.0040e275
mov dword [eax + 4], ebx
jmp 0x40d273
call fcn.0040e275
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 0x40d2a7
cmp dword [esi + 0xc], ebx
jne 0x40d29b
push 0x10
push 0x427b84
push 0x427f00
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e275
mov dword [eax + 0xc], 0x64
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40d480
call fcn.0040e275
or dword [ebp - 4], 0xffffffff
mov dword [eax + 0xc], 0xca
push edi
jmp 0x40d2ef
call fcn.0040e275
mov dword [eax + 0xc], 0xc9
jmp 0x40d2e9
mov ecx, esi
call fcn.0040dca7
call fcn.0040e275
mov dword [eax + 0xc], 0xc8
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
jmp 0x40d480
call fcn.0040e275
mov dword [eax + 0xc], 0x130
jmp 0x40d478
call fcn.0040ded9
test eax, eax
jne 0x40d335
push 0x10
push 0x427b68
push 0x427f40
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e275
mov dword [eax + 0xc], 0x12d
jmp 0x40d478
mov ecx, esi
call fcn.0040d70a
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 0x40d3a8
cmp word [esi], bx
je 0x40d3a8
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, str._nadmin:
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 0x40d3dc
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 0x40d3f9
call fcn.0040e275
mov dword [eax + 4], ebx
jmp 0x40d405
call fcn.0040e275
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 0x40d47d
mov ecx, esi
call fcn.0040d70a
mov ecx, esi
call fcn.0040da4f
test eax, eax
jne 0x40d44f
push 0x10
push 0x427b68
push 0x427ee8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e275
mov dword [eax + 0xc], 0x12e
jmp 0x40d478
call fcn.0040e275
mov dword [eax + 4], ebx
jmp 0x40d478
push 0x10
push 0x427b68
push 0x427ee8
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.0040e275
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