Function at 0x420c40
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x22
push 0
push 0
dec ecx
jne 0x420c48
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 [0x4209f0]
call fcn.00404dc8
xor eax, eax
push ebp
push 0x421507
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.00421934
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 0
mov eax, dword [ebp - 4]
call fcn.00421a28
push dword [ebp - 0x30]
push 0x421520
push 0x421530
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 0x420cdd
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.0042162c
xor eax, eax
push ebp
push 0x42147d
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x42146c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x420d18
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 0x420d63
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0xcc]
mov edx, 0x42153c
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 0x421359
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x42119e
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 0x420e0d
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, 0x421558
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 0x420e47
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x1a], 0xfe
ja 0x420e47
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 0x420e91
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, 0x421558
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 0x420f2d
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, 0x421558
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 0x420f62
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x420fb0
jmp 0x420f66
pop edx
pop eax
jle 0x420fb0
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, 0x421558
call fcn.004046e8
mov ecx, dword [ebp - 0xe8]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
mov edx, dword [0x4209bc]
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 0x421021
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x16], 0
jne 0x421021
mov eax, dword [ebp - 0x18]
call fcn.00408284
jmp 0x4210f8
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 0x421059
cmp eax, dword [esp]
pop edx
pop eax
je 0x42108e
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
lea eax, [ebp - 0xf4]
mov ecx, dword [ebp - 0x3c]
mov edx, 0x421574
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 0x4210ae
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
call fcn.00420a7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4210f8
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 0x421162
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.0042082c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xe]
cmp eax, dword [ebp - 0x1c]
je 0x42119e
mov eax, dword [ebp - 4]
mov byte [eax + 0x14], 1
lea eax, [ebp - 0xfc]
mov ecx, dword [ebp - 0x3c]
mov edx, 0x4215a8
call fcn.004046e8
mov ecx, dword [ebp - 0xfc]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
jmp 0x42119e
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
call fcn.0040b214
test al, al
jne 0x42119e
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x100]
mov edx, 0x4215c4
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 0x420da5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4212ac
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 0x421295
lea edx, [ebp - 0x104]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
call fcn.0040b758
push dword [ebp - 0x104]
push 0x4215dc
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 0x421267
mov eax, dword [ebp - 0x44]
add eax, 8
mov edx, dword [ebp - 0x40]
call fcn.00404420
jmp 0x4212a0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
lea eax, [ebp - 0x10c]
mov edx, 0x4215ec
call fcn.004046e8
mov ecx, dword [ebp - 0x10c]
mov dl, 1
mov eax, dword [0x409ef8]
call fcn.0040c05c
call fcn.00403dac
jmp 0x4212a0
mov eax, dword [ebp - 0x44]
add eax, 8
call fcn.004043cc
inc dword [ebp - 0x10]
dec dword [ebp - 0x50]
jne 0x4211de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x421335
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 0x42132d
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x110]
mov edx, 0x421608
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 0x4212c5
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.0042162c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x42140a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x421473
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x42142b
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.00421a28
xor eax, eax
push ebp
push 0x421461
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x48], 0
je 0x421457
mov eax, dword [ebp - 0x48]
call fcn.0040b1f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x42146b
ret