Function at 0x40b620
Capabilities:
Move file
Set file attributes
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4531e0
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x468400]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x468400]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov esi, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x18]
xor bl, bl
test eax, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], ebp
mov byte [esp + 0x28], bl
mov eax, ecx
je 0x40b79d
push 0x45b8bc
call fcn.0040c7c0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov ebx, dword [ebp]
add esp, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp]
test ebx, ebx
je 0x40b6b3
cmp ebx, eax
je 0x40b6b8
call fcn.00436e91
cmp dword [esp + 0x24], edi
je 0x40b795
mov ebp, dword [esi + 0x14]
mov edx, dword [esp + 0x1c]
mov esi, dword [edx]
mov edi, dword [ebp]
test ebx, ebx
jne 0x40b6fa
call fcn.00436e91
xor eax, eax
mov ebx, dword [esp + 0x24]
cmp ebx, dword [eax + 0x14]
jne 0x40b6e7
call fcn.00436e91
add ebx, 8
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
test esi, esi
je 0x40b6fe
mov eax, dword [esi]
jmp 0x40b700
mov eax, dword [ebx]
jmp 0x40b6d9
xor eax, eax
mov ecx, dword [eax]
test esi, esi
je 0x40b70a
mov eax, dword [esi]
jmp 0x40b70c
xor eax, eax
mov eax, dword [eax]
push ebp
push ecx
push edi
push eax
lea eax, [esp + 0x54]
push ebx
push eax
call fcn.004115d0
mov ecx, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
cmp esi, ecx
je 0x40b72e
call fcn.00436e91
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x40b78b
call fcn.00436e91
xor eax, eax
mov esi, dword [esp + 0x24]
cmp esi, dword [eax + 0x14]
jne 0x40b74b
call fcn.00436e91
mov ecx, dword [esp + 0x34]
push edi
push ecx
lea edx, [esp + 0x44]
push edx
mov edx, ebx
mov ebx, dword [esp + 0x28]
call fcn.0040dbd0
test ebp, ebp
jne 0x40b790
call fcn.00436e91
cmp esi, dword [ebp + 0x14]
jne 0x40b774
call fcn.00436e91
mov eax, dword [esi]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x40b6a5
mov eax, dword [ebp]
jmp 0x40b73d
mov ebp, dword [ebp]
jmp 0x40b76a
mov bl, 1
mov byte [esp + 0x28], bl
jmp 0x40b7aa
push 0x45b8f8
call fcn.0040c7c0
add esp, 4
mov ecx, dword [esp + 0x2c]
push ecx
mov edi, str..tmp
lea esi, [esp + 0x50]
call fcn.00408580
add esp, 4
xor edi, edi
mov dword [esp + 0x90], edi
cmp dword [esp + 0x64], 0x10
mov eax, dword [esp + 0x50]
jae 0x40b7d8
lea eax, [esp + 0x50]
push 0x45b92c
push eax
call fcn.00436b9c
mov esi, eax
add esp, 8
cmp esi, edi
je 0x40b9fe
push 0x15
push str.startPos_offsetBytes_n
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], edi
mov byte [esp + 0x74], 0
call fcn.00404b10
mov byte [esp + 0x90], 1
cmp dword [esp + 0x80], 0x10
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
jae 0x40b835
lea eax, [esp + 0x6c]
push esi
push edi
push 1
push eax
call fcn.004387c6
add esp, 0x10
cmp eax, edi
je 0x40b8be
mov ecx, dword [esp + 0x50]
mov ebx, 0x10
cmp dword [esp + 0x64], ebx
jae 0x40b859
lea ecx, [esp + 0x50]
push edi
mov edi, dword [esp + 0x1c]
push eax
push ecx
push 0x45b948
mov eax, edi
call fcn.0040c7c0
push esi
call fcn.004375bd
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
add esp, 0x14
push 0
push 0x69
push edx
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
cmp dword [esp + 0x80], ebx
jb 0x40b89d
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00419a12
add esp, 4
cmp dword [esp + 0x64], ebx
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
jmp 0x40ba27
test bl, bl
je 0x40b8d9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
push eax
push ecx
push esi
push ebp
call fcn.0040ba60
jmp 0x40b8eb
mov edx, dword [esp + 0x18]
push 0
push ebp
push esi
push edx
call fcn.0040ba60
mov ebp, dword [esp + 0x18]
test al, al
jne 0x40b936
mov esi, 0x10
cmp dword [esp + 0x80], esi
jb 0x40b90a
mov eax, dword [esp + 0x6c]
push eax
call fcn.00419a12
add esp, 4
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
cmp dword [esp + 0x64], esi
jb 0x40ba36
mov ecx, dword [esp + 0x50]
push ecx
jmp 0x40ba2e
mov ebx, 0x10
cmp dword [esp + 0x80], ebx
jb 0x40b951
mov edx, dword [esp + 0x6c]
push edx
call fcn.00419a12
add esp, 4
push 0x45b9a4
mov eax, ebp
call fcn.0040c7c0
mov edi, dword [esp + 0x30]
add esp, 4
lea esi, [edi + 4]
cmp dword [edi + 0x18], ebx
jb 0x40b970
mov eax, dword [esi]
jmp 0x40b972
mov eax, esi
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp dword [edi + 0x18], ebx
jb 0x40b987
mov eax, dword [esi]
jmp 0x40b989
mov eax, esi
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x64], ebx
jae 0x40b997
lea ecx, [esp + 0x50]
push 1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x40b9d8
cmp dword [edi + 0x18], ebx
jb 0x40b9ac
mov esi, dword [esi]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x64], ebx
jae 0x40b9ba
lea eax, [esp + 0x50]
push esi
push eax
push 0x45b9c8
mov eax, ebp
call fcn.0040c7c0
add esp, 0xc
cmp dword [esp + 0x64], ebx
jb 0x40ba36
mov eax, dword [esp + 0x50]
push eax
jmp 0x40ba2e
push 0x45b9f0
mov eax, ebp
call fcn.0040c7c0
add esp, 4
cmp dword [esp + 0x64], ebx
jb 0x40b9fa
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00419a12
add esp, 4
mov al, 1
jmp 0x40ba38
mov eax, dword [esp + 0x50]
mov esi, 0x10
cmp dword [esp + 0x64], esi
jae 0x40ba11
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x1c]
push 0x45b980
call fcn.0040c7c0
add esp, 8
cmp dword [esp + 0x64], esi
jb 0x40ba36
mov edx, dword [esp + 0x50]
push edx
call fcn.00419a12
add esp, 4
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.00436724
add esp, 0x80
ret 8