Function at 0x49cdc0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x64c87b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
push edi
xor esi, esi
push 0x1048
mov word [eax], si
mov dword [esp + 0x18], esi
call fcn.00643b70
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, esi
mov dword [esp + 0x44], esi
je 0x49ce11
mov ecx, eax
call fcn.00410b70
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x49ce17
mov dword [esp + 0x18], esi
mov ebx, esi
push 0xc
push 0x69d6c0
mov ecx, ebx
mov dword [esp + 0x4c], 0xffffffff
call fcn.00410c20
push 0x69d6d0
lea ecx, [esp + 0x34]
mov ebp, 0xc8
push 0x73aaac
push ecx
mov dword [esp + 0x2c], ebp
call fcn.00643ea6
mov eax, dword [eax]
push 0x40
push 0x69a9d0
push eax
call dword [fcn.0065f1e8]
add esp, 0xc
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.00643d26
cmp edi, esi
je 0x49cf42
push edi
call fcn.00476080
mov ebp, dword [fcn.0065f1bc]
push edi
push 1
lea edx, [esp + 0x20]
push 4
push edx
mov esi, eax
call ebp
mov eax, dword [esp + 0x28]
add esi, 0xfffffffc
add esp, 0x14
lea ecx, [eax*8]
sub ecx, eax
lea edx, [eax + ecx*4]
cmp esi, edx
je 0x49ceaa
xor eax, eax
mov dword [esp + 0x14], eax
add eax, 0xc8
mov dword [esp + 0x20], eax
lea ecx, [eax*8]
sub ecx, eax
lea edx, [eax + ecx*4]
push edx
call fcn.00643b70
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x1c], esi
jne 0x49cef0
test ebx, ebx
je 0x49cedf
push ebx
call fcn.00643cfc
add esp, 4
push edi
call dword [fcn.0065f1c0]
add esp, 4
xor eax, eax
jmp 0x49d2b5
mov eax, dword [esp + 0x14]
push edi
push 1
lea ecx, [eax*8]
sub ecx, eax
lea edx, [eax + ecx*4]
push edx
push esi
call ebp
mov eax, dword [esp + 0x24]
add esp, 0x10
xor ebp, ebp
test eax, eax
jbe 0x49cf32
mov ebx, esi
mov ecx, dword [esp + 0x18]
push 0x18
push ebx
call fcn.00410d50
mov eax, dword [esp + 0x14]
inc ebp
add ebx, 0x1d
cmp ebp, eax
jb 0x49cf16
mov ebx, dword [esp + 0x18]
push edi
call dword [fcn.0065f1c0]
mov ebp, dword [esp + 0x24]
add esp, 4
jmp 0x49cf73
push 0x16a8
call fcn.00643b70
add esp, 4
cmp eax, esi
mov dword [esp + 0x1c], eax
jne 0x49cf6f
cmp ebx, esi
je 0x49d223
push ebx
call fcn.00643cfc
add esp, 4
xor eax, eax
jmp 0x49d2b5
mov esi, dword [esp + 0x1c]
xor ecx, ecx
mov eax, 0x6fb626
cmp word [0x6fb624], cx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], ecx
jle 0x49d1d3
lea ecx, [ebp*8]
sub ecx, ebp
lea edx, [ebp + ecx*4]
mov dword [esp + 0x2c], edx
jmp 0x49cfa6
mov eax, dword [esp + 0x24]
mov cl, byte [eax]
lea edx, [eax + 1]
add eax, 7
mov byte [esp + 0x13], cl
mov edi, dword [edx]
add eax, 2
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], eax
mov dx, word [edx + 4]
mov byte [esp + 0x3a], 0
mov word [esp + 0x38], dx
mov bp, word [eax - 2]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
push esi
movsx ax, cl
push edx
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.0049cd40
mov ebx, dword [esp + 0x28]
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x49d007
lea edx, [ebx*8]
lea eax, [esi + ebx]
sub edx, ebx
lea edi, [eax + edx*4]
mov ecx, edi
mov eax, 0x8d3dcb09
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [ebx*8]
mov esi, edx
sub ecx, ebx
lea edx, [esi*8]
sub edx, esi
lea eax, [esi + edx*4]
lea edx, [ebx + ecx*4]
sub edx, eax
movsx eax, word [esp + 0x28]
push edx
lea ecx, [eax*8]
lea edx, [edi + eax]
sub ecx, eax
lea eax, [edx + ecx*4]
push eax
push edi
call dword [fcn.0065f1b0]
movsx ebp, bp
lea edx, [esi*8]
lea ecx, [ebp*8]
sub edx, esi
sub ecx, ebp
lea eax, [esi + edx*4]
lea ebx, [ebp + ecx*4]
mov ecx, eax
mov eax, dword [esp + 0x20]
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
sub eax, ecx
lea ecx, [ebx + edi]
push eax
push edi
push ecx
call dword [fcn.0065f1b0]
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov edx, ecx
mov esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add eax, ebx
and ecx, 3
mov dword [esp + 0x3c], eax
rep movsb byte es:[edi], byte [esi]
movsx eax, word [esp + 0x40]
mov ecx, dword [esp + 0x38]
sub ebp, eax
mov eax, dword [esp + 0x2c]
add ecx, 0xffffff38
add eax, ebp
add esp, 0x18
cmp eax, ecx
mov dword [esp + 0x14], eax
jbe 0x49d127
mov ebp, dword [esp + 0x2c]
lea edx, [ebp + 0x16a8]
push edx
call fcn.00643b70
mov ecx, ebp
mov ebx, eax
mov eax, dword [esp + 0x20]
mov edx, ecx
mov esi, eax
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
add ebp, 0x16a8
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
add esi, 0xc8
test eax, eax
mov dword [esp + 0x20], esi
je 0x49d123
push eax
call fcn.00643cfc
add esp, 4
mov dword [esp + 0x1c], ebx
mov al, byte [esp + 0x13]
test al, al
jne 0x49d162
movsx ebx, word [esp + 0x50]
xor esi, esi
test ebx, ebx
jle 0x49d1b3
mov ebp, dword [esp + 0x58]
mov edi, ebp
lea eax, [esp + 0x34]
push 6
push eax
push edi
call dword [0x65f18c]
add esp, 0xc
test eax, eax
je 0x49d195
inc esi
add edi, 0xfa
cmp esi, ebx
jl 0x49d140
jmp 0x49d1b3
movsx ebx, word [esp + 0x54]
xor esi, esi
test ebx, ebx
jle 0x49d1b3
mov ebp, dword [esp + 0x5c]
mov edi, ebp
lea eax, [esp + 0x34]
push 6
push eax
push edi
call dword [0x65f18c]
add esp, 0xc
test eax, eax
je 0x49d195
inc esi
add edi, 0xfa
cmp esi, ebx
jl 0x49d173
jmp 0x49d1b3
lea eax, [esi + esi*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov dx, word [ebp + ecx*2 + 0xe6]
lea eax, [ebp + ecx*2 + 0xe6]
neg dx
mov word [eax], dx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
movsx ecx, word [0x6fb624]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x49cfa2
mov ebx, dword [esp + 0x18]
push 0x69d6d0
lea edx, [esp + 0x54]
push 0x73aaac
push edx
call fcn.00643ea6
mov eax, dword [eax]
push 0x40
push 0x69a9ec
push eax
call dword [fcn.0065f1e8]
add esp, 0xc
lea ecx, [esp + 0x50]
mov ebp, eax
call fcn.00643d26
test ebp, ebp
jne 0x49d22a
test ebx, ebx
je 0x49d216
push ebx
call fcn.00643cfc
add esp, 4
test esi, esi
je 0x49d223
push esi
call fcn.00643cfc
add esp, 4
xor eax, eax
jmp 0x49d2b5
push ebp
push 1
lea eax, [esp + 0x1c]
push 4
push eax
call dword [fcn.0065f1b4]
mov eax, dword [esp + 0x24]
add esp, 0x10
xor edi, edi
test eax, eax
jbe 0x49d265
mov ebx, esi
mov ecx, dword [esp + 0x18]
push 0x18
push ebx
call fcn.00410d00
mov eax, dword [esp + 0x14]
inc edi
add ebx, 0x1d
cmp edi, eax
jb 0x49d249
mov ebx, dword [esp + 0x18]
lea ecx, [eax*8]
push ebp
sub ecx, eax
push 1
lea edx, [eax + ecx*4]
push edx
push esi
call dword [fcn.0065f1b4]
add esp, 0x10
test ebx, ebx
je 0x49d28c
push ebx
call fcn.00643cfc
add esp, 4
push ebp
call dword [fcn.0065f1c0]
add esp, 4
test esi, esi
je 0x49d2a3
push esi
call fcn.00643cfc
add esp, 4
mov ecx, dword [esp + 0x4c]
mov ax, word [0x6fb624]
mov word [ecx], ax
mov eax, 1
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x38
ret 0x14