Function at 0x401b89
Capabilities:
Copy file
Delete file
Get common file path
Get file size
Move file
Read file via mapping
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x69c
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [0x408400], 2
mov ebx, 0x4082f8
push edi
mov eax, dword [esi]
mov edi, dword [0x406084]
push ebx
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 4], ecx
mov dword [esi], eax
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0xc], ecx
mov dword [esi], eax
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0x1c], ecx
mov dword [esi], eax
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0x18], ecx
mov dword [esi], eax
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0x14], ecx
mov dword [esi], eax
mov ecx, dword [eax]
add eax, 4
mov dword [esi], eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x10], ecx
call edi
push dword [esi]
lea eax, [ebp - 0x120]
push eax
call dword [0x406090]
push dword [esi]
push dword [0x407d9c]
call dword [0x406168]
push ebx
push dword [esi]
call fcn.00401b51
pop ecx
lea eax, [ebp - 0x69c]
pop ecx
push dword [esi]
push eax
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x598]
push eax
call edi
lea eax, [ebp - 0x258]
push ebx
push eax
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x35c]
push eax
call edi
push dword [esi]
lea eax, [ebp - 0x35c]
push eax
call dword [0x406118]
lea eax, [ebp - 0x258]
xor ebx, ebx
push eax
push ebx
lea eax, [ebp - 0x258]
push 0x4070b4
push eax
call dword [0x406060]
lea eax, [ebp - 0x258]
push eax
call dword [0x406024]
push dword [esi]
call dword [0x406034]
mov ecx, dword [esi]
lea edi, [eax + ecx + 1]
cmp byte [edi], 3
jne 0x401e0d
inc edi
push ebx
mov dword [esi], edi
push 0x80
mov eax, dword [edi]
add edi, 4
mov dword [ebp + 8], eax
add eax, edi
mov dword [esi], edi
push 1
mov dword [esi], eax
push ebx
push ebx
lea eax, [ebp - 0x120]
push 0x40000000
push eax
call dword [0x406010]
cmp eax, 0xffffffff
mov dword [ebp + 0xc], eax
jne 0x401dd3
lea eax, [ebp - 0x494]
push 0x136
push eax
push 0xcc
push dword [0x40850c]
call fcn.00401784
add esp, 0x10
lea eax, [ebp - 0x494]
push 0x4070b0
push eax
call dword [0x406090]
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x494]
push eax
call dword [0x406090]
lea eax, [ebp - 0x154]
push 0x32
push eax
push 0xc8
push dword [0x40850c]
call fcn.00401784
add esp, 0x10
lea eax, [ebp - 0x154]
push 0x34
push eax
lea eax, [ebp - 0x494]
push eax
push dword [ebp + 0x10]
call dword [0x406158]
cmp eax, 6
jne 0x401dc7
lea eax, [ebp - 0x598]
push eax
lea eax, [ebp - 0x69c]
push eax
call fcn.00401b51
pop ecx
lea eax, [ebp - 0x35c]
pop ecx
push ebx
push eax
lea eax, [ebp - 0x120]
push eax
call dword [0x40603c]
push ebx
push 0x80
push 4
push ebx
push ebx
lea eax, [ebp - 0x120]
push 0x40000000
push eax
call dword [0x406010]
lea ecx, [ebp - 8]
push ebx
push ecx
mov dword [ebp + 0xc], eax
push dword [ebp + 8]
push edi
push eax
call dword [0x40605c]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push ebx
push eax
push dword [ebp + 0xc]
call dword [0x406058]
mov dword [0x408400], 0x8001
jmp 0x401dff
mov dword [0x408400], 0x8002
jmp 0x401dff
lea ecx, [ebp - 8]
push ebx
push ecx
push dword [ebp + 8]
push edi
push eax
call dword [0x40605c]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push ebx
push eax
push dword [ebp + 0xc]
call dword [0x406058]
mov dword [0x408400], 1
push dword [ebp + 0xc]
call dword [0x406044]
jmp 0x40201f
lea eax, [ebp - 0x120]
push 0x80
push eax
call dword [0x406028]
push ebx
push 0x80
push 3
push ebx
push ebx
lea eax, [ebp - 0x120]
push 0xc0000000
push eax
call dword [0x406010]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x401e6b
call dword [0x406054]
dec eax
dec eax
je 0x401e5c
mov dword [0x408400], 0x8100
jmp 0x402070
mov dword [0x408400], 0x8008
jmp 0x402070
push eax
call fcn.00401aa1
cmp eax, dword [ebp - 4]
pop ecx
mov dword [ebp + 0xc], eax
je 0x401ea1
push dword [ebp + 8]
call dword [0x406044]
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp ecx, dword [ebp - 0xc]
setne al
dec eax
and eax, 0x10
add eax, 0x8010
mov dword [0x408400], eax
jmp 0x402070
push ebx
push dword [ebp + 8]
call dword [0x406030]
push ebx
push ebx
push ebx
push 2
push ebx
mov dword [ebp + 0xc], eax
push dword [ebp + 8]
call dword [0x40604c]
push dword [ebp + 0xc]
mov dword [ebp - 4], eax
push ebx
push ebx
push 4
push eax
call dword [0x406048]
push ebx
push 0x80
push 4
mov dword [ebp + 0x10], eax
push ebx
push ebx
lea eax, [ebp - 0x258]
push 0x40000000
push eax
call dword [0x406010]
mov dword [ebp + 0xc], eax
jmp 0x401f31
inc edi
movsx eax, al
mov dword [esi], edi
mov edx, dword [edi]
lea ecx, [edi + 4]
dec eax
mov dword [esi], ecx
je 0x401f0e
dec eax
jne 0x401f39
mov edi, ecx
lea eax, [edx + edi]
mov dword [esi], eax
jmp 0x401f16
mov edi, dword [ecx]
add edi, dword [ebp + 0x10]
add dword [esi], 4
cmp dword [0x408400], 2
jne 0x401f43
lea eax, [ebp - 8]
push ebx
push eax
push edx
push edi
push dword [ebp + 0xc]
call dword [0x40605c]
mov edi, dword [esi]
mov al, byte [edi]
cmp al, bl
jne 0x401ef2
jmp 0x401f43
mov dword [0x408400], 0x8080
push dword [ebp + 0x10]
call dword [0x40608c]
push dword [ebp - 4]
call dword [0x406044]
push dword [ebp + 8]
call dword [0x406044]
lea eax, [ebp - 0x14]
inc edi
push eax
lea eax, [ebp - 0x1c]
push ebx
push eax
push dword [ebp + 0xc]
mov dword [esi], edi
call dword [0x406058]
push dword [ebp + 0xc]
call dword [0x406044]
cmp dword [0x408400], 2
jne 0x40201f
lea eax, [ebp - 0x258]
push eax
call fcn.00401b18
cmp eax, dword [ebp - 0xc]
pop ecx
je 0x401fb7
lea eax, [ebp - 0x258]
push eax
call dword [0x406024]
mov dword [0x408400], 0x8040
jmp 0x402085
lea eax, [ebp - 0x598]
push eax
lea eax, [ebp - 0x69c]
push eax
call fcn.00401b51
pop ecx
lea eax, [ebp - 0x35c]
pop ecx
push ebx
push eax
lea eax, [ebp - 0x120]
push eax
call dword [0x40603c]
lea eax, [ebp - 0x120]
push eax
call dword [0x406024]
test eax, eax
je 0x402008
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x258]
push eax
call dword [0x406050]
jmp 0x40201f
lea eax, [ebp - 0x258]
push eax
call dword [0x406024]
mov dword [0x408400], 0x8101
mov eax, dword [0x408400]
cmp eax, 0x8008
je 0x402070
cmp eax, 0x8100
je 0x402070
cmp eax, 0x8010
je 0x402070
cmp eax, 0x8020
jne 0x402085
jmp 0x402070
inc edi
movsx ecx, cl
mov dword [esi], edi
mov edx, dword [edi]
lea eax, [edi + 4]
dec ecx
mov dword [esi], eax
je 0x40205d
dec ecx
jne 0x402078
mov edi, eax
add edx, edi
mov dword [esi], edx
jmp 0x402062
add dword [esi], 4
mov edi, eax
cmp dword [0x408400], 0x8080
je 0x402082
mov edi, dword [esi]
mov cl, byte [edi]
cmp cl, bl
jne 0x402042
jmp 0x402082
mov dword [0x408400], 0x8080
inc edi
mov dword [esi], edi
mov eax, dword [0x408400]
pop edi
or dword [0x408e74], eax
pop esi
pop ebx
leave
ret