Function at 0x4278a0
Capabilities:
Move file

Disassembly:
push 0xffffffffffffffff
push 0x48bc10
mov eax, dword fs:[0]
push eax
push ebx
push ebp
push esi
mov eax, dword [0x4b47a8]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov eax, dword [esp + 0x20]
lea ebp, [edi + 4]
push eax
mov ecx, ebp
call fcn.00406820
mov edx, dword [esp + 0x24]
lea ecx, [edi + 8]
push edx
call fcn.00406820
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [esp + 0x2c]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], edx
call fcn.0044d630
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x427909
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], 0
mov eax, dword [ebp]
cmp dword [eax - 0xc], 0
jg 0x42796b
cmp dword [edi + 0x10], 0
je 0x42793e
push 0
push 0
push 0x499de0
call fcn.0044f968
lea eax, [ebx - 0x10]
mov dword [esp + 0x18], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427ba5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x427ba5
push 0
push eax
call fcn.0046b81d
add esp, 8
cmp eax, 0xffffffff
jne 0x427a02
call fcn.0044d630
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x427999
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x18], 1
mov ecx, dword [ebp]
push ecx
lea edx, [esp + 0x28]
push 0x499e28
push edx
call fcn.004067e0
mov esi, dword [esp + 0x30]
add esp, 0xc
cmp dword [edi + 0x10], 0
je 0x4279d8
push 0
push 0
push esi
call fcn.0044f968
lea eax, [esi - 0x10]
mov byte [esp + 0x18], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42793e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42793e
mov eax, dword [edi + 0xc]
lea esi, [esp + 0x28]
call fcn.00427280
push eax
lea ecx, [esp + 0x28]
push ebp
mov ebx, 2
push ecx
mov byte [esp + 0x24], bl
call fcn.00405fb0
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c], 3
call fcn.00406820
mov byte [esp + 0x18], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x427a59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x18], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427a7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
cmp ecx, 0x104
jl 0x427ab4
cmp dword [edi + 0x10], 0
je 0x427aa0
push 0
push 0
push 0x499e74
call fcn.0044f968
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
jmp 0x427949
mov esi, dword [esp + 0x20]
cmp dword [esi - 0xc], 0x104
jl 0x427add
cmp dword [edi + 0x10], 0
je 0x427ad5
push 0
push 0
push 0x499e74
call fcn.0044f968
lea eax, [esi - 0x10]
jmp 0x427941
push esi
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x427b4c
mov esi, ebp
call fcn.00427100
test eax, eax
mov ecx, edi
je 0x427afd
call fcn.00427670
jmp 0x427b15
call fcn.004275f0
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ebp
call fcn.00406a80
call fcn.0042ba60
cmp dword [edi + 0x10], 0
je 0x427b29
push 0
push 0
push 0x499e9c
call fcn.0044f968
lea ecx, [esp + 0x20]
call fcn.00401f20
mov eax, 1
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
cmp dword [edi + 0x10], 0
je 0x427b9c
push 0x494704
lea ecx, [esp + 0x2c]
call fcn.00406500
push 0x499eb0
lea ecx, [esp + 0x28]
mov byte [esp + 0x1c], 4
call fcn.00406500
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x20], 5
call fcn.00413940
add esp, 8
lea ecx, [esp + 0x24]
call fcn.00401f20
lea ecx, [esp + 0x28]
call fcn.00401f20
lea ecx, [esp + 0x20]
call fcn.00401f20
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10