Function at 0x462200
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cf5d5
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x51501c]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov eax, dword [0x51501c]
xor eax, esp
push eax
lea eax, [esp + 0x170]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov esi, edx
mov dword [esp + 0x18], 0
lea edi, [esi + 0x14]
mov eax, 0x10
cmp dword [edi + 0x18], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], ecx
mov dword [0x53b820], 4
mov dword [0x53b824], 0x4f5530
jb 0x46227f
mov edx, dword [edi + 4]
jmp 0x462282
lea edx, [edi + 4]
cmp dword [ebx + 0x18], eax
jb 0x46228c
mov eax, dword [ebx + 4]
jmp 0x46228f
lea eax, [ebx + 4]
push edx
push ecx
push eax
push 0x4f555c
call fcn.0045eb40
add esp, 0x10
cmp byte [esi + 1], 0
mov dword [esp + 0x14], 0
jne 0x4622d3
push 0x4f5648
mov dword [0x53b820], 4
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x462a70
mov ecx, dword [esi + 0x74]
test ecx, ecx
jne 0x4622de
xor eax, eax
jmp 0x4622e6
mov eax, dword [esi + 0x78]
sub eax, ecx
sar eax, 2
neg eax
sbb eax, eax
and eax, 0x80004005
mov dword [esp + 0x14], eax
jge 0x46231b
push 0x4f5674
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x462a70
mov eax, esi
mov ecx, dword [eax + 8]
xor eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x178], eax
cmp dword [ebx + 0x14], eax
mov esi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
jne 0x462369
push 0x4d9440
lea ecx, [esp + 0xe0]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0x178], 1
mov ebx, 1
jmp 0x4623c6
push 0x4db3a8
lea ecx, [esp + 0xa8]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push eax
mov ecx, 2
lea edx, [esp + 0x70]
push ebx
mov dword [esp + 0x180], ecx
push edx
mov dword [esp + 0x24], ecx
call esi
add esp, 0xc
push edi
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x180], 3
push eax
mov dword [esp + 0x24], 6
call esi
add esp, 0xc
mov dword [esp + 0x178], 4
mov ebx, 0xe
push eax
lea ecx, [esp + 0x134]
mov dword [esp + 0x1c], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
test bl, 8
mov dword [esp + 0x178], 6
je 0x4623f9
and ebx, 0xfffffff7
lea ecx, [esp + 0x50]
mov dword [esp + 0x18], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, 4
mov byte [esp + 0x178], 7
je 0x462417
and ebx, 0xfffffffb
lea ecx, [esp + 0x6c]
mov dword [esp + 0x18], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, 2
mov byte [esp + 0x178], 8
je 0x462438
and ebx, 0xfffffffd
lea ecx, [esp + 0xa4]
mov dword [esp + 0x18], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, 1
mov byte [esp + 0x178], 9
je 0x462452
lea ecx, [esp + 0xdc]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4d9440
lea ecx, [esp + 0x134]
push ecx
lea edx, [esp + 0xc8]
push edx
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0xc
push 0x53c258
push eax
lea eax, [esp + 0x154]
push eax
mov byte [esp + 0x184], 0xa
call esi
add esp, 0xc
lea ecx, [esp + 0xc0]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4624c3
mov ecx, edi
mov esi, dword [ecx]
lea edi, [esp + 0x130]
call fcn.0049da50
mov ecx, eax
call fcn.00492540
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x462655
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
add esi, eax
add ebx, eax
cmp dword [esi], 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], 0
jbe 0x462655
lea eax, [esi + 0xc]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x14], 0
jl 0x462a17
test edi, edi
je 0x462551
mov eax, dword [edi]
mov eax, dword [eax + 0x134]
test eax, eax
je 0x462551
cmp dword [eax], 0
je 0x462551
push 0x4dbdb8
mov dword [esp + 0x18], 0x80004004
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x46263d
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x14], 0
je 0x462571
cmp ecx, dword [ebx + 4]
jae 0x462571
mov eax, dword [ebx + ecx*8 + 8]
add eax, ebx
push eax
lea ecx, [esp + 0x118]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov esi, dword [esp + 0x1c]
add esi, 0x60
mov byte [esp + 0x178], 0xd
mov ebx, dword [esi + 8]
cmp dword [esi + 4], ebx
jbe 0x46259c
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
jbe 0x4625aa
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
push ebx
push esi
push edi
push esi
push 0x461340
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0x110]
push eax
call fcn.00408c60
mov eax, dword [esp + 0x114]
add esp, 0x1c
test eax, eax
je 0x4625df
cmp eax, dword [esp + 0x100]
je 0x4625e5
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0xfc]
cmp ecx, dword [esp + 0x104]
jne 0x46261c
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax - 4]
push edx
push eax
lea ecx, [esp + 0x11c]
push ecx
lea ecx, [esp + 0x158]
lea edx, [esp + 0x44]
call fcn.00460750
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x114]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
add dword [esp + 0x18], 0x10
add eax, 1
cmp eax, dword [esi]
mov dword [esp + 0x28], eax
jb 0x462503
cmp dword [esp + 0x14], 0
jl 0x462a17
mov edi, dword [esp + 0x1c]
mov ebx, dword [edi + 0x58]
add edi, 0x50
cmp dword [edi + 4], ebx
mov dword [esp + 0x24], ebx
jbe 0x462679
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
jbe 0x462687
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov dword [esp + 0x2c], esi
jmp 0x462690
mov edi, dword [esp + 0x1c]
add edi, 0x50
cmp edi, edi
mov dword [esp + 0x30], edi
je 0x4626a5
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp esi, ebx
je 0x4627be
cmp dword [esp + 0x14], 0
jl 0x462a17
cmp esi, dword [edi + 8]
jb 0x4626c3
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46270a
mov eax, dword [eax]
mov eax, dword [eax + 0x134]
test eax, eax
je 0x46270a
cmp dword [eax], 0
je 0x46270a
push 0x4dbdb8
mov dword [esp + 0x18], 0x80004004
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x462796
mov esi, dword [esp + 0x1c]
mov ebx, dword [esi + 0x68]
add esi, 0x60
cmp dword [esi + 4], ebx
mov dword [esp + 0x14], 0
jbe 0x462727
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
jbe 0x462735
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x2c]
push ebx
push esi
push edi
push esi
push 0x461340
push edx
lea eax, [esp + 0x110]
push eax
call fcn.00408c60
mov eax, dword [esp + 0x114]
add esp, 0x1c
test eax, eax
je 0x462767
cmp eax, dword [esp + 0x100]
je 0x46276d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0xfc]
cmp ecx, dword [esp + 0x104]
jne 0x462796
mov eax, dword [esp + 0x2c]
push 0
push 0
lea ecx, [eax + 0x1c]
push eax
lea edx, [esp + 0x44]
call fcn.00460750
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
add eax, 0x50
cmp edx, dword [eax + 8]
jb 0x4627ac
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add dword [esp + 0x2c], 0x38
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
jmp 0x462690
cmp dword [esp + 0x14], 0
jl 0x462a17
lea edi, [esp + 0xf8]
call fcn.00461aa0
mov eax, dword [esp + 0x20]
push eax
mov edx, edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x17c], 0xe
call fcn.004609e0
test eax, eax
mov dword [esp + 0x14], eax
jge 0x46281b
push 0x4f569c
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x462a02
push 0x4d9440
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x90]
push edx
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0xc
push 0x53c258
push eax
lea eax, [esp + 0x11c]
push eax
mov byte [esp + 0x184], 0xf
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
add esp, 0xc
lea ecx, [esp + 0x88]
mov byte [esp + 0x178], 0x11
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [esp + 0x134]
mov ebx, 0x10
cmp dword [esp + 0x148], ebx
jae 0x462889
lea ecx, [esp + 0x134]
cmp dword [esp + 0x110], ebx
mov eax, dword [esp + 0xfc]
jae 0x4628a0
lea eax, [esp + 0xfc]
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 3
push ecx
push eax
call esi
cmp dword [esp + 0x164], ebx
mov ecx, dword [esp + 0x150]
mov edi, eax
jae 0x4628c5
lea ecx, [esp + 0x150]
cmp dword [esp + 0x12c], ebx
mov eax, dword [esp + 0x118]
jae 0x4628dc
lea eax, [esp + 0x118]
push 3
push ecx
push eax
call esi
test edi, edi
je 0x4628ea
test eax, eax
jne 0x462925
push 0x4f5530
mov dword [esp + 0x18], 0x80004005
call fcn.0045ecd0
add esp, 4
push 0x4f56bc
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x4629ed
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46296c
mov eax, dword [eax]
mov eax, dword [eax + 0x134]
test eax, eax
je 0x46296c
cmp dword [eax], 0
je 0x46296c
push 0x4dbdb8
mov dword [esp + 0x18], 0x80004004
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x4629ed
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov edi, dword [esp + 0x38]
lea esi, [edi + 0x60]
call fcn.00402080
sub esp, 0x38
mov ecx, esp
mov dword [esp + 0x5c], esp
push ecx
call fcn.0044f6f0
mov esi, dword [esp + 0x68]
call fcn.0044f8b0
mov edx, dword [esp + 0x34]
push 0
push edx
mov byte [edi + 2], 1
call fcn.00461fc0
neg al
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
mov dword [esp + 0x14], eax
jns 0x4629e6
push 0x4f56f4
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f5530
call fcn.0045eb40
add esp, 4
jmp 0x4629ed
mov byte [edi + 1], 0
mov byte [edi], 1
lea ecx, [esp + 0x114]
mov byte [esp + 0x178], 0xe
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xf8]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x14c]
mov byte [esp + 0x178], 9
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x130]
mov byte [esp + 0x178], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [esp + 0x178], 0xffffffff
mov eax, dword [esp + 0x44]
test eax, eax
je 0x462a70
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
push ecx
push eax
call fcn.00451390
mov edx, dword [esp + 0x4c]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 0xc
cmp dword [esp + 0x14], 0
setge al
mov ecx, dword [esp + 0x170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.00459ea4
mov esp, ebp
pop ebp
ret 4