Function at 0x420620
Capabilities:
Copy file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x454c28
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x467334]
xor eax, esp
mov dword [esp + 0x150], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x467334]
xor eax, esp
push eax
lea eax, [esp + 0x168]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x178]
mov edx, dword [ebp + 0x2d0]
sub edx, dword [ebp + 0x2cc]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x14], ebp
add ebp, 0x2c0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
test edx, 0xffffffc0
jne 0x4207c8
lea eax, [esp + 0x12c]
push eax
sub esp, 0x1c
mov esi, esp
xor ebx, ebx
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x54], esp
cmp eax, 0x10
jb 0x4206c1
mov ecx, dword [edi]
jmp 0x4206c3
mov ecx, edi
cmp ecx, 0x45c568
ja 0x4206fe
cmp eax, 0x10
jb 0x4206d4
mov ecx, dword [edi]
jmp 0x4206d6
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c568
jbe 0x4206fe
cmp eax, 0x10
jb 0x4206ea
mov edi, dword [edi]
push 0x38
mov eax, 0x45c568
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x420741
cmp eax, 0x38
jae 0x420710
mov ecx, dword [esi + 0x14]
push ecx
push 0x38
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x42071c
mov eax, dword [edi]
jmp 0x42071e
mov eax, edi
push 0x38
push 0x45c568
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x38
jb 0x42073e
mov edi, dword [edi]
mov byte [edi + 0x38], bl
lea esi, [esp + 0x80]
call fcn.00401900
mov dword [esp + 0x174], ebx
call fcn.004019c0
mov esi, pe_nt_image_headers32
mov byte [esp + 0x170], 1
cmp dword [eax + 0x18], esi
jb 0x420770
mov eax, dword [eax + 4]
jmp 0x420773
add eax, 4
mov edx, dword [esp + 0x14]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0xc
cmp dword [esp + 0x144], esi
jb 0x42079c
mov eax, dword [esp + 0x130]
push eax
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x60]
mov dword [esp + 0x144], 0xf
mov dword [esp + 0x140], ebx
mov byte [esp + 0x130], bl
call fcn.00429050
mov eax, 0x8000000a
jmp 0x42126a
mov dword [esp + 0x128], 0xf
mov dword [esp + 0x124], 0
mov byte [esp + 0x114], 0
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x174], 2
call fcn.0042a300
mov byte [esp + 0x170], 3
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x2c]
xor edi, edi
sar edx, 6
mov dword [esp + 0x18], edi
test edx, edx
jbe 0x420885
lea ebx, [ebx]
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x42082c
xor ecx, ecx
jmp 0x420835
mov ecx, dword [esp + 0x30]
sub ecx, edx
sar ecx, 2
mov esi, eax
sub esi, edx
sar esi, 2
cmp esi, ecx
jae 0x42084b
mov dword [eax], edi
add eax, 4
mov dword [esp + 0x2c], eax
jmp 0x420873
mov esi, eax
cmp edx, eax
jbe 0x420856
call fcn.0043c74a
mov eax, dword [esp + 0x1c]
push esi
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x64]
push ecx
lea eax, [esp + 0x2c]
call fcn.0042b7b0
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
inc edi
sar edx, 6
mov dword [esp + 0x18], edi
cmp edi, edx
jb 0x420820
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
xor edi, edi
sar ecx, 6
test ecx, ecx
jbe 0x4208dc
sub eax, dword [esp + 0x28]
sar eax, 2
mov esi, eax
call fcn.0043c831
xor edx, edx
div esi
lea eax, [esp + 0x1c]
mov ebx, edx
call fcn.0042a680
mov esi, eax
mov ebx, edi
lea eax, [esp + 0x1c]
call fcn.0042a680
cmp eax, esi
je 0x4208ca
mov edx, dword [esi]
mov ecx, dword [eax]
mov dword [eax], edx
mov dword [esi], ecx
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
inc edi
sar eax, 6
cmp edi, eax
mov eax, dword [esp + 0x2c]
jb 0x420894
mov edx, dword [esp + 0x28]
mov ecx, eax
sub ecx, edx
sar ecx, 2
mov dword [esp + 0x18], 0
test ecx, ecx
jbe 0x420e95
jmp 0x420900
cmp ecx, dword [esp + 0x18]
jbe 0x420ef8
mov esi, edx
cmp edx, eax
jbe 0x420915
call fcn.0043c74a
mov eax, dword [esp + 0x1c]
mov edi, eax
mov ebx, edi
mov dword [esp + 0x5c], esi
test eax, eax
jne 0x420940
call fcn.0043c74a
xor eax, eax
mov ecx, dword [esp + 0x18]
lea esi, [esi + ecx*4]
cmp esi, dword [eax + 0x10]
ja 0x42094b
test edi, edi
je 0x420944
mov edi, dword [edi]
jmp 0x420946
mov eax, dword [eax]
jmp 0x42092c
xor edi, edi
cmp esi, dword [edi + 0xc]
jae 0x420950
call fcn.0043c74a
test ebx, ebx
jne 0x4209ca
call fcn.0043c74a
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x420965
call fcn.0043c74a
mov ebx, dword [esi]
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
cmp dword [eax + 0x3c], 0
je 0x420e75
mov esi, dword [esp + 0x34]
cmp dword [esi + 0x80], 0
je 0x4209ce
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
add eax, 0x1c
cmp dword [eax + 0x14], 0
je 0x420e75
cmp dword [esi + 0x80], 0
je 0x4209ce
mov eax, ebx
mov ecx, ebp
mov edi, 1
call fcn.004298c0
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
lea ecx, [esp + 0x11c]
call fcn.00402ea0
jmp 0x420a33
mov eax, dword [ebx]
jmp 0x42095b
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
add eax, 0x1c
cmp dword [eax + 0x14], 0
je 0x420a17
call fcn.0043c831
and eax, 0x80000001
jns 0x4209f1
dec eax
or eax, 0xfffffffe
inc eax
mov eax, ebx
mov ecx, ebp
jne 0x420a1b
call fcn.004298c0
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
lea ecx, [esp + 0x11c]
call fcn.00402ea0
mov edi, 1
jmp 0x420a33
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x11c]
call fcn.00402ea0
xor edi, edi
xor eax, eax
mov ecx, 0xf
mov dword [esp + 0x144], ecx
mov dword [esp + 0x140], eax
mov byte [esp + 0x130], al
mov dword [esp + 0x160], ecx
mov dword [esp + 0x15c], eax
mov byte [esp + 0x14c], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x170], 5
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x7e07e07f
imul ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x420efd
call fcn.0043c831
xor edx, edx
div esi
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov dword [eax], edx
push edx
mov eax, esi
call fcn.0040f610
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
lea ecx, [esp + 0x154]
call fcn.00402ea0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
push edx
mov eax, esi
call fcn.0040f610
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x138]
call fcn.00402ea0
mov eax, dword [esp + 0x124]
test eax, eax
je 0x420bb3
lea esi, [eax - 1]
cmp eax, esi
ja 0x420afd
call fcn.0043b6d1
mov eax, dword [esp + 0x124]
cmp dword [esp + 0x128], 0x10
mov ecx, dword [esp + 0x114]
jae 0x420b15
lea ecx, [esp + 0x114]
cmp byte [ecx + esi], 0x5c
je 0x420bb3
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, 1
ja 0x420b35
call fcn.0043b699
mov eax, dword [esp + 0x124]
lea esi, [eax + 1]
cmp esi, 0xfffffffe
jbe 0x420b49
call fcn.0043b699
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x128]
cmp ecx, esi
jae 0x420bfd
push eax
push esi
lea ecx, [esp + 0x118]
call fcn.00403800
mov eax, dword [esp + 0x124]
test esi, esi
jbe 0x420bb3
mov ecx, dword [esp + 0x114]
mov edx, pe_nt_image_headers32
cmp dword [esp + 0x128], edx
jae 0x420b8d
lea ecx, [esp + 0x114]
mov byte [ecx + eax], 0x5c
mov eax, dword [esp + 0x114]
mov dword [esp + 0x124], esi
cmp dword [esp + 0x128], edx
jae 0x420baf
lea eax, [esp + 0x114]
mov byte [eax + esi], 0
push 0
lea edx, [esp + 0x130]
push edx
or eax, 0xffffffff
lea esi, [esp + 0x118]
call fcn.004031f0
cmp dword [esp + 0x128], 0x10
mov ecx, dword [esp + 0x114]
jae 0x420be4
lea ecx, [esp + 0x114]
mov eax, dword [esp + 0x14]
mov esi, pe_nt_image_headers32
cmp dword [eax + 0x25c], esi
jb 0x420c24
mov eax, dword [eax + 0x248]
jmp 0x420c29
test esi, esi
jne 0x420b6f
mov eax, dword [esp + 0x114]
mov dword [esp + 0x124], esi
cmp ecx, 0x10
jae 0x420c1f
lea eax, [esp + 0x114]
mov byte [eax], 0
jmp 0x420bb3
add eax, 0x248
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x4210d8
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
inc dword [eax + 0x38]
add eax, 0x38
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
cmp dword [eax + 0x38], 3
jle 0x420e1d
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
cmp dword [eax + 0x18], esi
jb 0x420c70
mov eax, dword [eax + 4]
jmp 0x420c73
add eax, 4
push eax
lea eax, [esp + 0x40]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x7c], esp
cmp eax, 0x10
jb 0x420ca2
mov ecx, dword [edi]
jmp 0x420ca4
mov ecx, edi
cmp ecx, 0x45c5e0
ja 0x420cdf
cmp eax, 0x10
jb 0x420cb5
mov ecx, dword [edi]
jmp 0x420cb7
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c5e0
jbe 0x420cdf
cmp eax, 0x10
jb 0x420ccb
mov edi, dword [edi]
push 0x3f
mov eax, 0x45c5e0
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x420d23
cmp eax, 0x3f
jae 0x420cf1
mov ecx, dword [esi + 0x14]
push ecx
push 0x3f
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x420cfd
mov eax, dword [edi]
jmp 0x420cff
mov eax, edi
push 0x3f
push 0x45c5e0
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x3f
jb 0x420d1f
mov edi, dword [edi]
mov byte [edi + 0x3f], 0
lea esi, [esp + 0x84]
call fcn.00401900
mov ecx, eax
mov byte [esp + 0x178], 8
call fcn.00401b50
mov edi, pe_nt_image_headers32
mov byte [esp + 0x174], 9
cmp dword [eax + 0x18], edi
jb 0x420d55
mov eax, dword [eax + 4]
jmp 0x420d58
add eax, 4
mov edx, dword [esp + 0x18]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0x10
cmp dword [esp + 0x54], edi
jb 0x420d7b
mov eax, dword [esp + 0x40]
push eax
call fcn.0043c853
add esp, 4
xor esi, esi
mov byte [esp + 0x170], 5
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
cmp dword [esp + 0xb0], edi
jb 0x420daf
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], esi
mov byte [esp + 0x9c], 0
cmp dword [esp + 0x94], edi
jb 0x420de2
mov edx, dword [esp + 0x80]
push edx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], esi
mov byte [esp + 0x80], 0
cmp dword [esp + 0x78], edi
jb 0x420e0f
mov eax, dword [esp + 0x64]
push eax
call fcn.0043c853
add esp, 4
mov eax, ebx
mov ecx, ebp
call fcn.004298c0
mov dword [eax + 0x3c], esi
mov esi, edi
cmp dword [esp + 0x160], esi
jb 0x420e36
mov ecx, dword [esp + 0x14c]
push ecx
call fcn.0043c853
add esp, 4
mov byte [esp + 0x170], 3
mov dword [esp + 0x160], 0xf
mov dword [esp + 0x15c], 0
mov byte [esp + 0x14c], 0
cmp dword [esp + 0x144], esi
jb 0x420e75
mov edx, dword [esp + 0x130]
push edx
call fcn.0043c853
add esp, 4
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ecx, eax
sub ecx, edx
inc esi
sar ecx, 2
mov dword [esp + 0x18], esi
cmp esi, ecx
jb 0x420900
lea ecx, [esp + 0x3c]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x78], esp
push 0x2a
mov ebx, 0xf
xor edi, edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push 0x45c620
mov byte [ecx + 4], 0
call fcn.004033f0
lea esi, [esp + 0xd8]
call fcn.00401900
push eax
mov byte [esp + 0x178], 0xa
call fcn.00401c70
mov ebp, pe_nt_image_headers32
mov byte [esp + 0x170], 0xb
cmp dword [eax + 0x18], ebp
jb 0x4211e3
mov eax, dword [eax + 4]
jmp 0x4211e6
call fcn.0042b3e0
lea eax, [esp + 0x3c]
push eax
sub esp, 0x1c
mov esi, esp
xor ebp, ebp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebp
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov ebx, pe_nt_image_headers32
mov dword [esp + 0x78], esp
cmp eax, ebx
jb 0x420f2d
mov ecx, dword [edi]
jmp 0x420f2f
mov ecx, edi
cmp ecx, 0x45c5a4
ja 0x420f68
cmp eax, ebx
jb 0x420f3f
mov ecx, dword [edi]
jmp 0x420f41
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c5a4
jbe 0x420f68
cmp eax, ebx
jb 0x420f54
mov edi, dword [edi]
push 0x3a
mov eax, 0x45c5a4
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x420faa
cmp eax, 0x3a
jae 0x420f7a
mov ecx, dword [esi + 0x14]
push ecx
push 0x3a
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x420f85
mov eax, dword [edi]
jmp 0x420f87
mov eax, edi
push 0x3a
push 0x45c5a4
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x3a
cmp dword [esi + 0x18], ebx
jb 0x420fa6
mov edi, dword [edi]
mov byte [edi + 0x3a], 0
lea esi, [esp + 0x80]
call fcn.00401900
push eax
mov byte [esp + 0x178], 6
call fcn.00401c70
mov byte [esp + 0x170], 7
cmp dword [eax + 0x18], ebx
jb 0x420fd6
mov eax, dword [eax + 4]
jmp 0x420fd9
add eax, 4
mov edx, dword [esp + 0x14]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0xc
cmp dword [esp + 0x54], ebx
jb 0x420ffc
mov eax, dword [esp + 0x40]
push eax
call fcn.0043c853
add esp, 4
mov esi, 0xf
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebp
mov byte [esp + 0x40], 0
cmp dword [esp + 0xb0], ebx
jb 0x421027
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ebp
mov byte [esp + 0x9c], 0
cmp dword [esp + 0x94], ebx
jb 0x421056
mov edx, dword [esp + 0x80]
push edx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebp
mov byte [esp + 0x80], 0
cmp dword [esp + 0x78], ebx
jb 0x42107f
mov eax, dword [esp + 0x64]
push eax
call fcn.0043c853
add esp, 4
cmp dword [esp + 0x160], ebx
jb 0x421098
mov ecx, dword [esp + 0x14c]
push ecx
call fcn.0043c853
add esp, 4
mov byte [esp + 0x170], 3
mov dword [esp + 0x160], esi
mov dword [esp + 0x15c], ebp
mov byte [esp + 0x14c], 0
cmp dword [esp + 0x144], ebx
jb 0x420e95
mov edx, dword [esp + 0x130]
push edx
call fcn.0043c853
add esp, 4
jmp 0x420e95
mov esi, dword [esp + 0x34]
mov dword [esi + 0x78], edi
push 0xffffffffffffffff
xor edi, edi
push edi
lea eax, [esp + 0x134]
push eax
lea ecx, [esi + 0x3c]
call fcn.00402ea0
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esi + 0x58]
call fcn.00402ea0
cmp dword [esi + 0x80], edi
jne 0x421122
push 0xffffffffffffffff
push edi
lea edx, [esp + 0x150]
push edx
lea ecx, [esi + 0x20]
call fcn.00402ea0
mov eax, ebx
mov ecx, ebp
mov dword [esi + 0x74], ebx
call fcn.004298c0
mov esi, pe_nt_image_headers32
mov dword [eax + 0x38], edi
cmp dword [esp + 0x160], esi
jb 0x42114f
mov eax, dword [esp + 0x14c]
push eax
call fcn.0043c853
add esp, 4
mov ebx, 0xf
mov dword [esp + 0x160], ebx
mov dword [esp + 0x15c], edi
mov byte [esp + 0x14c], 0
cmp dword [esp + 0x144], esi
jb 0x421183
mov ecx, dword [esp + 0x130]
push ecx
call fcn.0043c853
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x144], ebx
mov dword [esp + 0x140], edi
mov byte [esp + 0x130], 0
cmp eax, edi
je 0x4211aa
push eax
call fcn.0043c853
add esp, 4
mov edx, dword [esp + 0x1c]
push edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.0043c853
add esp, 4
cmp dword [esp + 0x128], esi
jb 0x4211dc
mov eax, dword [esp + 0x114]
push eax
call fcn.0043c853
add esp, 4
xor eax, eax
jmp 0x42126a
add eax, 4
mov edx, dword [esp + 0x14]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0xc
cmp dword [esp + 0x54], ebp
jb 0x421209
mov eax, dword [esp + 0x40]
push eax
call fcn.0043c853
add esp, 4
lea esi, [esp + 0xb8]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edi
mov byte [esp + 0x40], 0
call fcn.00429050
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x421233
push eax
call fcn.0043c853
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.0043c853
add esp, 4
cmp dword [esp + 0x128], ebp
jb 0x421265
mov edx, dword [esp + 0x114]
push edx
call fcn.0043c853
add esp, 4
mov eax, 0x80004005
mov ecx, dword [esp + 0x168]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.0043c2d9
add esp, 0x160
ret 8