Function at 0x51a0d4
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffce0
push ebx
xor ecx, ecx
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x314], ecx
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x2dc], ecx
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 0x2d8], edx
mov dword [ebp - 0x2d4], eax
xor eax, eax
push ebp
push 0x51a5dc
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x2e2], 0
mov eax, dword [ebp - 0x2d4]
cmp dword [eax + 0x74], 0x64
jle 0x51a233
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 0x70]
call fcn.00516a08
push edx
push eax
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 0x74]
cdq
cmp edx, dword [esp + 4]
jne 0x51a168
cmp eax, dword [esp]
pop edx
pop eax
jae 0x51a233
jmp 0x51a170
pop edx
pop eax
jge 0x51a233
mov byte [ebp - 0x2e1], 0
mov eax, dword [ebp - 0x2d4]
cmp word [eax + 0x8a], 0
je 0x51a1af
lea eax, [ebp - 0x2e1]
push eax
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [eax + 0x70]
mov ebx, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x2d4]
mov eax, dword [ebx + 0x8c]
call dword [ebx + 0x88]
cmp byte [ebp - 0x2e1], 0
jne 0x51a5a3
mov eax, dword [ebp - 0x2d4]
mov al, byte [eax + 0x80]
dec al
je 0x51a1d2
dec al
je 0x51a1db
jmp 0x51a233
mov byte [ebp - 0x2e2], 1
jmp 0x51a233
push ebp
lea eax, [ebp - 0x310]
call fcn.00519fec
pop ecx
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x2e8], eax
mov eax, dword [ebp - 0x2e8]
call fcn.004077c0
push eax
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 0x70]
call fcn.004077c0
push eax
call sub.kernel32.dll_MoveFileW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x2e9], al
mov byte [ebp - 0x2e2], 1
mov eax, dword [0x567548]
mov eax, dword [eax]
call fcn.004f186c
mov eax, dword [ebp - 0x2d4]
mov edx, dword [eax + 0x70]
lea eax, [ebp - 0x2d0]
call fcn.00404a0c
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 0x70]
call fcn.00414e30
test al, al
je 0x51a27a
mov eax, dword [ebp - 0x2d4]
test byte [eax + 0x44], 4
je 0x51a271
mov eax, dword [ebp - 0x2d4]
cmp byte [eax + 0x78], 0
je 0x51a27a
cmp byte [ebp - 0x2e2], 0
je 0x51a287
lea eax, [ebp - 0x2d0]
call fcn.00404798
jmp 0x51a292
lea eax, [ebp - 0x2d0]
call fcn.004047a4
call fcn.0040439c
test eax, eax
jne 0x51a5a3
xor eax, eax
push ebp
push 0x51a587
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 0x2e2], 0
jne 0x51a2ce
mov eax, dword [ebp - 0x2d4]
cmp byte [eax + 0x78], 0
jne 0x51a2d5
mov eax, dword [ebp - 0x2d4]
test byte [eax + 0x44], 0x10
je 0x51a2d5
push ebp
call fcn.00519c80
pop ecx
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a5f4
call fcn.00407e0c
je 0x51a30f
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a610
call fcn.00407e0c
je 0x51a30f
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a628
call fcn.00407e0c
jne 0x51a394
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a628
call fcn.00407e0c
jne 0x51a331
lea eax, [ebp - 0x2d0]
call fcn.00404e68
call fcn.0040436c
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a5f4
call fcn.00407e0c
jne 0x51a34a
push ebp
call fcn.00519c80
pop ecx
mov eax, dword [ebp - 0x2d8]
mov edx, 0x51a610
call fcn.00407e0c
jne 0x51a569
lea ecx, [ebp - 0x314]
mov dx, 0x2a
mov eax, 0x50
call fcn.00522b40
mov edx, dword [ebp - 0x314]
lea eax, [ebp - 0x2d0]
call fcn.004080e4
call fcn.00404e68
call fcn.0040436c
jmp 0x51a569
lea eax, [ebp - 0x2e0]
xor edx, edx
call fcn.00407788
lea eax, [ebp - 0x2dc]
mov edx, dword [ebp - 0x2d4]
mov edx, dword [edx + 0x38]
call fcn.00407788
mov eax, dword [ebp - 0x2d4]
inc dword [eax + 0x7c]
jmp 0x51a541
mov eax, dword [ebp - 0x2dc]
mov ax, word [eax]
sub ax, 0x23
je 0x51a3f1
sub ax, 0x41
je 0x51a4cf
sub ax, 8
je 0x51a456
sub ax, 8
je 0x51a46c
jmp 0x51a52c
mov eax, dword [ebp - 0x2d4]
test byte [eax + 0x44], 0x20
je 0x51a52c
push dword [ebp - 0x2e0]
lea eax, [ebp - 0x318]
push eax
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x320], eax
mov byte [ebp - 0x31c], 0
lea edx, [ebp - 0x320]
xor ecx, ecx
mov eax, 0x51a63c
call fcn.004159f0
push dword [ebp - 0x318]
push 0x51a654
lea eax, [ebp - 0x2e0]
mov edx, 3
call fcn.00407cec
jmp 0x51a52c
lea eax, [ebp - 0x2e0]
mov edx, dword [ebp - 0x2d8]
call fcn.00407b48
jmp 0x51a52c
mov eax, dword [ebp - 0x2d4]
test byte [eax + 0x44], 0x40
je 0x51a52c
call fcn.00417198
fstp qword [ebp - 0x2f8]
wait
push dword [ebp - 0x2f4]
push dword [ebp - 0x2f8]
mov edx, dword [0x5674e0]
mov edx, dword [edx]
lea eax, [ebp - 0x2fc]
call fcn.00417e58
push dword [ebp - 0x2e0]
push 0x51a668
push dword [ebp - 0x2fc]
push 0x51a67c
lea eax, [ebp - 0x2e0]
mov edx, 4
call fcn.00407cec
jmp 0x51a52c
mov eax, dword [ebp - 0x2d4]
test byte [eax + 0x44], 0x80
je 0x51a52c
call fcn.00417198
fstp qword [ebp - 0x308]
wait
push dword [ebp - 0x304]
push dword [ebp - 0x308]
mov edx, dword [0x5672b0]
mov edx, dword [edx]
lea eax, [ebp - 0x30c]
call fcn.00417e58
push dword [ebp - 0x2e0]
push 0x51a668
push dword [ebp - 0x30c]
push 0x51a67c
lea eax, [ebp - 0x2e0]
mov edx, 4
call fcn.00407cec
lea eax, [ebp - 0x2dc]
mov ecx, 1
mov edx, 1
call fcn.00407f44
cmp dword [ebp - 0x2dc], 0
jne 0x51a3c3
mov edx, dword [ebp - 0x2e0]
lea eax, [ebp - 0x2d0]
call fcn.004080e4
call fcn.00404e68
call fcn.0040436c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51a58e
lea eax, [ebp - 0x2d0]
call fcn.00404ad0
call fcn.0040436c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51a5e3
lea eax, [ebp - 0x318]
mov edx, 4
call fcn.0040772c
lea eax, [ebp - 0x2fc]
call fcn.00407724
lea eax, [ebp - 0x2e0]
mov edx, 2
call fcn.0040772c
ret