Function at 0x521de4
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
xor eax, eax
push ebp
push 0x52222d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00477c60
test eax, eax
je 0x522212
xor eax, eax
push ebp
push 0x52220b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
mov eax, 0x522240
call fcn.00409318
test al, al
je 0x521e70
mov eax, 0x522250
call fcn.00409318
test al, al
je 0x521e70
mov eax, 0x522260
call fcn.00409318
test al, al
je 0x521e70
mov eax, 0x522270
call fcn.00409318
test al, al
je 0x521e70
xor ecx, ecx
mov dl, 1
mov eax, 0x522270
call fcn.004847d4
mov eax, 0x522270
call fcn.00409318
test al, al
je 0x521f0f
mov eax, 0x522240
call fcn.00409318
test al, al
jne 0x521eb1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x22c]
mov edx, 1
call fcn.004745b0
mov dword [ebp - 4], eax
jmp 0x521f2b
mov eax, 0x522250
call fcn.00409318
test al, al
jne 0x521ee0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x22c]
mov edx, 2
call fcn.004745b0
mov dword [ebp - 4], eax
jmp 0x521f2b
mov eax, 0x522260
call fcn.00409318
test al, al
jne 0x521f2b
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x22c]
mov edx, 3
call fcn.004745b0
mov dword [ebp - 4], eax
jmp 0x521f2b
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x22c]
xor edx, edx
call fcn.004745b0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x521f47
mov ecx, 0x522284
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00477c60
cmp eax, dword [ebp - 4]
je 0x5221fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x52229c
call fcn.00404b68
je 0x5220a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x5222b8
call fcn.00404b68
jne 0x521fe1
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 8]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x5222d4
call fcn.00409fbc
mov eax, dword [ebp - 8]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x5222f8
push 0x522300
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5220a5
mov ecx, 0x522314
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
jmp 0x5220a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x522334
call fcn.00404b68
jne 0x522044
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x522350
call fcn.00409fbc
mov eax, dword [ebp - 0xc]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x522364
push 0x522300
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5220a5
mov ecx, 0x522374
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
jmp 0x5220a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x522394
call fcn.00404b68
jne 0x5220a5
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x5223b0
call fcn.00409fbc
mov eax, dword [ebp - 0x10]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x5223c4
push 0x522300
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5220a5
mov ecx, 0x5223d4
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x2f4]
call fcn.00477c60
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x52229c
call fcn.00404b68
je 0x5221fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x5222b8
call fcn.00404b68
jne 0x522139
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x5223f4
call fcn.00409fbc
mov eax, dword [ebp - 0x14]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x522300
push 0x5222f8
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5221fd
mov ecx, 0x522410
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
jmp 0x5221fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x522334
call fcn.00404b68
jne 0x52219c
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x52242c
call fcn.00409fbc
mov eax, dword [ebp - 0x18]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x522300
push 0x522364
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5221fd
mov ecx, 0x522448
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
jmp 0x5221fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x522394
call fcn.00404b68
jne 0x5221fd
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 8]
or ecx, 0xffffffff
mov eax, 0x522464
call fcn.00409fbc
mov eax, dword [ebp - 0x1c]
mov edx, 0x5222f0
call fcn.005212ac
pop ecx
push 0x522300
push 0x5223c4
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x5221fd
mov ecx, 0x522480
mov dl, 1
mov eax, dword [0x407f84]
call fcn.0040c93c
call fcn.00404148
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x522212
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x522234
lea eax, [ebp - 0x1c]
mov edx, 6
call fcn.00404790
ret