Function at 0x4100c4
Capabilities:
Move file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1424
call fcn.0042fc60
mov eax, dword [0x44a2f0]
xor eax, esp
mov dword [esp + 0x1420], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
push ebx
mov dword [esp + 0xc], eax
mov bl, cl
mov eax, dword [ebp + 0x10]
push esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
push edi
lea edi, [ebp + 0x1c]
cmp eax, dword [ebp + 0x14]
je 0x410107
lea edi, [ebp + 0x18]
mov bl, 1
xor eax, eax
mov dword [esp + 0x38], 7
push ecx
mov dword [esp + 0x38], ecx
mov word [esp + 0x28], ax
mov byte [esp + 0x40], cl
call fcn.00420bb2
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
pop ecx
push eax
mov dword [esp + 0x20], edx
call fcn.0041f89a
pop ecx
push eax
push 0x444cbc
lea eax, [esp + 0x78]
push 0x400
push eax
call fcn.0042094e
lea eax, [esp + 0x80]
push eax
call fcn.004011cd
add esp, 0x14
lea ecx, [esp + 0x24]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00403916
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
lea ecx, [esp + 0x28]
call fcn.004017ac
push 0x444ce4
mov esi, eax
call fcn.004011cd
pop ecx
push eax
push 0x444ce4
mov ecx, esi
call fcn.00403916
mov eax, dword [ebp + 8]
dec eax
je 0x4101ad
dec eax
je 0x4101a6
mov esi, str.INFO:
jmp 0x4101b2
mov esi, str.WARNING:
jmp 0x4101b2
mov esi, str.ERROR:
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
mov esi, dword [esp + 0x14]
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
mov esi, 0x444d20
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
push dword [esp + 0x10]
lea ecx, [esp + 0x28]
call fcn.00401752
push 0x444d28
mov esi, eax
call fcn.004011cd
pop ecx
push eax
push 0x444d28
mov ecx, esi
call fcn.00403916
mov esi, 0x444cb8
test bl, bl
je 0x41027a
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x14], 8
jb 0x41022c
mov eax, dword [eax]
push edi
xor ebx, ebx
push ebx
push eax
lea eax, [esp + 0x87c]
push 0x5dc
push eax
call fcn.0041fc3a
add esp, 0x14
lea eax, [esp + 0x870]
push eax
call fcn.004011cd
pop ecx
push eax
lea eax, [esp + 0x874]
push eax
lea ecx, [esp + 0x2c]
call fcn.00403916
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
jmp 0x41028b
push 0xffffffffffffffff
xor ebx, ebx
lea ecx, [esp + 0x28]
push ebx
push dword [ebp + 0x14]
call fcn.00403870
xor eax, eax
cmp dword [ebp + 8], 1
mov word [esp + 0x70], ax
jne 0x4102db
mov esi, str._Last_error:
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [esp + 0x40]
call fcn.0040ff19
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
call fcn.00403870
push ebx
push 1
lea ecx, [esp + 0x48]
call fcn.00403af5
jmp 0x4102ed
push esi
call fcn.004011cd
pop ecx
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.00403916
mov edi, dword [0x44dae0]
test edi, edi
je 0x41045d
push 0x3e8
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x41045d
cmp eax, 0xffffffff
je 0x41045d
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x5c]
call fcn.00403303
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x44dadc], 8
mov eax, 0x44dac8
push 0
cmovae eax, dword [0x44dac8]
push 0x80
push 4
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x410445
push 2
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x41043e
test eax, eax
je 0x410408
cmp eax, 0x100000
jb 0x41041a
test esi, esi
je 0x410398
push esi
call ebx
xor esi, esi
push str..old
mov edx, 0x44dac8
lea ecx, [esp + 0x44]
call fcn.00404213
cmp dword [esp + 0x58], 8
lea eax, [esp + 0x44]
pop ecx
cmovae eax, dword [esp + 0x40]
push eax
call fcn.0041faea
cmp dword [esp + 0x58], 8
mov eax, 0x44dac8
pop ecx
lea ecx, [esp + 0x40]
cmovae ecx, dword [esp + 0x40]
cmp dword [0x44dadc], 8
push ecx
cmovae eax, dword [0x44dac8]
push eax
call fcn.00420b7f
pop ecx
pop ecx
push 0
push 1
lea ecx, [esp + 0x48]
call fcn.00403af5
test esi, esi
je 0x41032f
push esi
call ebx
jmp 0x41032f
push 0xfeff
push 1
push 0
lea ecx, [esp + 0x64]
call fcn.00405f42
cmp dword [esp + 0x6c], 8
lea eax, [esp + 0x10]
push 0
push eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x60]
cmovae ecx, dword [esp + 0x60]
add eax, eax
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test esi, esi
je 0x410445
push esi
call ebx
push 0
push 1
lea ecx, [esp + 0x60]
call fcn.00403af5
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0
jmp 0x41045e
push ebx
push 1
lea ecx, [esp + 0x2c]
call fcn.00403af5
mov ecx, dword [esp + 0x142c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041e398
mov esp, ebp
pop ebp
ret