Function at 0x420ad0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x22
push 0
push 0
dec ecx
jne 0x420ad8
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0xb0]
mov edx, dword [0x420880]
call fcn.00404dc8
xor eax, eax
push ebp
push 0x421397
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004217c4
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 0
mov eax, dword [ebp - 4]
call fcn.004218b8
push dword [ebp - 0x30]
push 0x4213b0
push 0x4213c0
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.0040475c
lea eax, [ebp - 0x48]
call fcn.004043cc
mov eax, dword [ebp - 0x40]
call fcn.0040b33c
test al, al
jne 0x420b6d
mov dl, 1
mov eax, dword [ebp - 0x40]
call fcn.00414818
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 0x40]
call fcn.00404464
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004214bc
xor eax, eax
push ebp
push 0x42130d
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4212fc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x420ba8
mov eax, dword [ebp - 4]
add eax, 4
call fcn.0040bbbc
mov dl, 1
mov eax, dword [0x406e88]
call fcn.00403644
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
call fcn.0040b214
test al, al
jne 0x420bf3
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0xcc]
mov edx, 0x4213cc
call fcn.004046e8
mov ecx, dword [ebp - 0xcc]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
push 0x22
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov dl, 1
mov eax, dword [0x406cd8]
call fcn.004084d8
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx]
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4211e9
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x42102e
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov ecx, 0x1e
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0x4034b50
je 0x420c9d
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
lea edx, [ebp - 0xd4]
call fcn.0040a680
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0xd0]
mov edx, 0x4213e8
call fcn.004046e8
mov ecx, dword [ebp - 0xd0]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x1a], 0
jbe 0x420cd7
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x1a], 0xfe
ja 0x420cd7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 8]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
sub ebx, eax
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0x1a]
cmp ebx, eax
jge 0x420d21
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
lea edx, [ebp - 0xdc]
call fcn.0040a680
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x4213e8
call fcn.004046e8
mov ecx, dword [ebp - 0xd8]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov eax, dword [ebp - 0x14]
movzx edx, word [eax + 0x1a]
lea eax, [ebp - 0x3c]
call fcn.0040497c
mov eax, dword [ebp - 0x3c]
call fcn.0040489c
mov edx, eax
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 0x1a]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov ebx, dword [eax]
call dword [ebx + 0x10]
lea eax, [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
call fcn.004046e8
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x38]
call fcn.0040b758
xor edx, edx
mov eax, dword [ebp - 0x34]
call fcn.00414818
test al, al
jne 0x420dbd
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
lea edx, [ebp - 0xe4]
call fcn.0040a680
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0xe0]
mov edx, 0x4213e8
call fcn.004046e8
mov ecx, dword [ebp - 0xe0]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
pop edx
xchg edx, eax
sub eax, edx
cdq
push edx
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x12]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x420df2
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x420e40
jmp 0x420df6
pop edx
pop eax
jle 0x420e40
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
lea edx, [ebp - 0xec]
call fcn.0040a680
mov ecx, dword [ebp - 0xec]
lea eax, [ebp - 0xe8]
mov edx, 0x4213e8
call fcn.004046e8
mov ecx, dword [ebp - 0xe8]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov edx, dword [0x42084c]
mov eax, 0xc
call fcn.00405204
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x38]
call fcn.00404420
lea edx, [ebp - 0xf0]
xor eax, eax
call fcn.004149dc
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x44]
add eax, 4
mov edx, dword [ebp - 0x40]
call fcn.004046e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x44]
call fcn.00407b88
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x12]
mov edx, dword [ebp - 0x14]
cmp eax, dword [edx + 0x16]
jne 0x420eb1
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x16], 0
jne 0x420eb1
mov eax, dword [ebp - 0x18]
call fcn.00408284
jmp 0x420f88
mov eax, dword [ebp - 0x18]
call fcn.00408284
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x12]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
call fcn.004082a4
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 8]
cdq
push edx
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x12]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x420ee9
cmp eax, dword [esp]
pop edx
pop eax
je 0x420f1e
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
lea eax, [ebp - 0xf4]
mov ecx, dword [ebp - 0x3c]
mov edx, 0x421404
call fcn.004046e8
mov ecx, dword [ebp - 0xf4]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
xor eax, eax
push ebp
push 0x420f3e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
call fcn.0042090c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x420f88
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
call fcn.00408458
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xe], 0
je 0x420ff2
lea eax, [ebp - 0x2a]
push eax
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
call fcn.004206bc
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xe]
cmp eax, dword [ebp - 0x1c]
je 0x42102e
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
lea eax, [ebp - 0xfc]
mov ecx, dword [ebp - 0x3c]
mov edx, 0x421438
call fcn.004046e8
mov ecx, dword [ebp - 0xfc]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
jmp 0x42102e
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
call fcn.0040b214
test al, al
jne 0x42102e
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x100]
mov edx, 0x421454
call fcn.004046e8
mov ecx, dword [ebp - 0x100]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 4]
mov ebx, eax
add ebx, 0x1e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 8]
cmp ebx, eax
jle 0x420c35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x42113c
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x10]
call fcn.00407b2c
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040b214
test al, al
je 0x421125
lea edx, [ebp - 0x104]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040b758
push dword [ebp - 0x104]
push 0x42146c
lea edx, [ebp - 0x108]
xor eax, eax
call fcn.004149dc
push dword [ebp - 0x108]
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.0040475c
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov edx, dword [ebp - 0x40]
call fcn.0040b2ec
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040b214
test al, al
jne 0x4210f7
mov eax, dword [ebp - 0x44]
add eax, 8
mov edx, dword [ebp - 0x40]
call fcn.00404420
jmp 0x421130
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
lea eax, [ebp - 0x10c]
mov edx, 0x42147c
call fcn.004046e8
mov ecx, dword [ebp - 0x10c]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
jmp 0x421130
mov eax, dword [ebp - 0x44]
add eax, 8
call fcn.004043cc
inc dword [ebp - 0x10]
dec dword [ebp - 0x50]
jne 0x42106e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4211c5
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x10]
call fcn.00407b2c
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040489c
push eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
call fcn.0040489c
push eax
call sub.kernel32.dll_MoveFileA
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040b214
test al, al
jne 0x4211bd
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x110]
mov edx, 0x421498
call fcn.004046e8
mov ecx, dword [ebp - 0x110]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
inc dword [ebp - 0x10]
dec dword [ebp - 0x50]
jne 0x421155
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004214bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x42129a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x421303
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x4212bb
mov eax, dword [ebp - 4]
add eax, 4
call fcn.0040bbbc
mov eax, dword [ebp - 0x18]
call fcn.00403674
mov eax, dword [ebp - 4]
call fcn.004218b8
xor eax, eax
push ebp
push 0x4212f1
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x48], 0
je 0x4212e7
mov eax, dword [ebp - 0x48]
call fcn.0040b1f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4212fb
ret