Function at 0x40ab73
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x94]
sub esp, 0x114
mov eax, dword [0x4d7590]
xor eax, ebp
mov dword [ebp + 0x90], eax
mov eax, dword [ebp + 0x9c]
push ebx
mov ebx, dword [ebp + 0xa0]
push esi
push 0xff
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x6f]
push 0
push eax
mov esi, ecx
mov byte [ebp - 0x70], 0
call fcn.00436ec0
mov eax, dword [esi + 0xc]
add esp, 0xc
cmp eax, dword [esi + 0x10]
jb 0x40abc7
xor eax, eax
jmp 0x40adfa
mov eax, dword [esi + 0x2dc]
test eax, eax
je 0x40abc0
mov ecx, dword [esi + 0x2d4]
push edi
mov edi, ecx
mov dword [esi + 0x2d8], ecx
add edi, eax
jmp 0x40ac50
movzx eax, word [edi + 0x1c]
push eax
lea eax, [edi + 0x2e]
push eax
push ebx
call fcn.0043aca0
movzx eax, word [edi + 0x1c]
mov byte [eax + ebx], 0
movzx eax, word [edi + 0x1c]
add esp, 0xc
cmp byte [eax + ebx - 1], 0x2f
je 0x40ac14
movzx eax, word [edi + 0x1c]
cmp byte [eax + ebx - 1], 0x5c
jne 0x40ac5f
add dword [esi + 0x2d4], 0x2e
movzx ecx, word [edi + 0x1e]
mov eax, dword [esi + 0x2d4]
add eax, ecx
mov dword [esi + 0x2d4], eax
movzx ecx, word [edi + 0x1c]
add eax, ecx
mov dword [esi + 0x2d4], eax
movzx ecx, word [edi + 0x20]
add ecx, eax
inc dword [esi + 0xc]
mov dword [esi + 0x2d4], ecx
mov edi, dword [esi + 0x2dc]
add edi, ecx
cmp dword [edi], 0x2014b50
je 0x40abe4
xor eax, eax
jmp 0x40adf9
mov eax, dword [edi + 0x2a]
lea ecx, [eax + 0x1e]
cmp ecx, dword [esi + 8]
ja 0x40ac58
mov edx, dword [esi + 4]
push 0x1e
add edx, eax
lea ecx, [esi + 0x26c]
push edx
push ecx
call fcn.0043a790
add esp, 0xc
cmp dword [esi + 0x26c], 0x4034b50
jne 0x40ac58
movzx ecx, word [esi + 0x286]
movzx eax, word [esi + 0x288]
add eax, ecx
mov ecx, dword [edi + 0x2a]
lea eax, [eax + ecx + 0x1e]
push ebx
mov dword [ebp - 0x74], eax
lea eax, [esi + 0x140]
push 0x4ab284
push eax
call fcn.0043ac23
push 0x2f
push ebx
call fcn.0043a640
add esp, 0x14
test eax, eax
jne 0x40acca
mov eax, ebx
push 0x2e
push eax
call fcn.0043a640
pop ecx
pop ecx
test eax, eax
je 0x40aced
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x70]
push 0x4ab27c
push eax
call fcn.0043ac23
add esp, 0x10
cmp word [esi + 0x274], 0
lea eax, [ebp - 0x70]
jne 0x40adb1
push 0x4ab278
push eax
call fcn.0043abb9
pop ecx
pop ecx
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x40ac58
and dword [ebp - 0x78], 0
push 0xa000
call fcn.0041862b
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x74]
pop ecx
cmp eax, dword [esi + 8]
ja 0x40ac58
mov ebx, dword [esi + 4]
add ebx, eax
cmp dword [esi + 0x27e], 0
jbe 0x40ad9d
mov eax, dword [esi + 0x27e]
sub eax, dword [ebp - 0x78]
mov ecx, 0xa000
mov dword [ebp - 0x74], ecx
cmp eax, ecx
ja 0x40ad5a
mov dword [ebp - 0x74], eax
push dword [ebp - 0x74]
push ebx
push dword [ebp - 0x80]
call fcn.0043a790
mov eax, dword [ebp - 0x74]
add esp, 0xc
add ebx, eax
test eax, eax
je 0x40ad9d
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
cmp ecx, dword [esi + 8]
ja 0x40ac58
push dword [ebp - 0x7c]
push 1
push eax
push dword [ebp - 0x80]
call fcn.00437722
mov eax, dword [ebp - 0x78]
add esp, 0x10
cmp eax, dword [esi + 0x27e]
jb 0x40ad42
push dword [ebp - 0x7c]
call fcn.0043735e
push dword [ebp - 0x80]
call fcn.00418636
pop ecx
pop ecx
jmp 0x40adc2
push eax
push dword [esi + 0x27e]
mov ecx, esi
push dword [ebp - 0x74]
call fcn.0040a99f
add dword [esi + 0x2d4], 0x2e
movzx ecx, word [edi + 0x1e]
mov eax, dword [esi + 0x2d4]
add eax, ecx
mov dword [esi + 0x2d4], eax
movzx ecx, word [edi + 0x1c]
add eax, ecx
mov dword [esi + 0x2d4], eax
movzx ecx, word [edi + 0x20]
add ecx, eax
inc dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [esi + 0x2d4], ecx
pop edi
mov ecx, dword [ebp + 0x90]
pop esi
xor ecx, ebp
pop ebx
call fcn.00436eab
add ebp, 0x94
leave
ret 8