Function at 0x412b00
Capabilities:
Move file

Disassembly:
push 0xffffffffffffffff
push 0x479260
mov eax, dword fs:[0]
push eax
push ebx
push esi
push edi
mov eax, dword [0x4a9128]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x20]
lea edi, [esi + 4]
push eax
mov ecx, edi
call fcn.00401b60
mov edx, dword [esp + 0x24]
lea ecx, [esi + 8]
push edx
call fcn.00401b60
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [esp + 0x2c]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], edx
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x412b6b
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x20], ebx
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
mov dword [esp + 0x18], 0
jg 0x412bcc
cmp dword [esi + 0x10], 0
je 0x412b9f
push 0
push 0
push 0x483ce0
call fcn.00435d18
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 0x412e01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x412e01
push eax
mov ecx, esi
call fcn.0040da40
test eax, eax
jne 0x412c5e
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x412bf6
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov ecx, dword [edi]
push ecx
lea edx, [esp + 0x28]
push 0x483c90
push edx
mov byte [esp + 0x24], 1
call fcn.00401c20
add esp, 0xc
cmp dword [esi + 0x10], 0
mov esi, dword [esp + 0x24]
je 0x412c34
push 0
push 0
push esi
call fcn.00435d18
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 0x412b9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x412b9f
mov ecx, dword [esi + 0xc]
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.004104a0
push eax
lea eax, [esp + 0x28]
push edi
mov bl, 2
push eax
mov byte [esp + 0x24], bl
call fcn.00401c40
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c], 3
call fcn.00401b60
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x18], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412cb6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x18], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412cdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi]
mov ecx, dword [eax - 0xc]
cmp ecx, 0x104
jl 0x412d08
cmp dword [esi + 0x10], 0
je 0x412cfc
push 0
push 0
push 0x483c64
call fcn.00435d18
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
jmp 0x412ba2
mov ecx, dword [esp + 0x20]
cmp dword [ecx - 0xc], 0x104
jl 0x412d32
cmp dword [esi + 0x10], 0
je 0x412df8
push 0
push 0
push 0x483c64
call fcn.00435d18
jmp 0x412df8
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x412da8
push edi
mov ecx, esi
call fcn.00416290
test eax, eax
je 0x412d54
push edi
mov ecx, esi
call fcn.00412700
jmp 0x412d71
mov edi, dword [edi]
cmp dword [edi - 0xc], 0
jge 0x412d66
push 0x80070057
call fcn.00401000
movzx ecx, byte [edi]
push ecx
mov ecx, esi
call fcn.004123f0
cmp dword [esi + 0x10], 0
je 0x412d85
push 0
push 0
push 0x483c4c
call fcn.00435d18
lea ecx, [esp + 0x20]
call fcn.00401470
mov eax, 1
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0xc
ret 0x10
cmp dword [esi + 0x10], 0
je 0x412df8
push 0x481930
lea ecx, [esp + 0x2c]
call fcn.00402cf0
push 0x483c18
lea ecx, [esp + 0x28]
mov byte [esp + 0x1c], 4
call fcn.00402cf0
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x20], 5
call fcn.0040af50
add esp, 8
lea ecx, [esp + 0x24]
call fcn.00401470
lea ecx, [esp + 0x28]
call fcn.00401470
lea ecx, [esp + 0x20]
call fcn.00401470
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0xc
ret 0x10