Function at 0x1003ba40
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10053c58
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push esi
push edi
mov esi, ecx
call fcn.10004630
mov edi, eax
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x1c]
push ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edi
call fcn.100045f0
add esp, 8
test al, al
je 0x1003ba9e
lea edx, [ebp + 8]
push edx
call fcn.10004610
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
push ebx
mov ecx, esi
call fcn.1003c8d0
test eax, eax
je 0x1003baeb
mov ecx, esi
call fcn.1003c910
mov ecx, esi
mov ebx, eax
call fcn.1003c8d0
cmp eax, ebx
jae 0x1003baeb
mov ecx, esi
call fcn.1003c980
mov esi, eax
lea eax, [ebp + 8]
push eax
call fcn.100045d0
add esp, 4
pop ebx
mov byte [esi], al
mov eax, dword [ebp + 8]
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x54], 0
je 0x1003bb25
mov ecx, esi
call fcn.1003cce0
cmp dword [esi + 0x44], 0
jne 0x1003bb3a
mov ecx, dword [esi + 0x54]
push ecx
lea edx, [ebp + 8]
push edx
call fcn.100045d0
movzx eax, al
add esp, 4
push eax
call fcn.100051a0
add esp, 8
test al, al
mov eax, dword [ebp + 8]
jne 0x1003bc95
pop ebx
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp + 8]
push ecx
call fcn.100045d0
add esp, 4
push 0
push 8
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x10], al
call fcn.1003c510
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0
lea ebx, [esi + 0x4c]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
lea ecx, [ebp - 0x48]
mov edi, eax
call fcn.1003c630
add edi, eax
push edi
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x48]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
push eax
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0xf]
push eax
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [esi + 0x44]
push ebx
call fcn.1003ceb0
test eax, eax
js 0x1003bc83
cmp eax, 1
jg 0x1003bca8
lea edx, [ebp - 0x28]
push edx
lea ecx, [ebp - 0x48]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
mov edi, dword [ebp - 0x18]
sub edi, eax
je 0x1003bc02
mov eax, dword [esi + 0x54]
push eax
push edi
push 1
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x48]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
push eax
call fcn.1003fd2e
add esp, 0x10
cmp edi, eax
jne 0x1003bc83
lea edx, [ebp - 0x10]
mov byte [esi + 0x49], 1
cmp dword [ebp - 0x1c], edx
jne 0x1003bceb
test edi, edi
jne 0x1003bc2e
lea ecx, [ebp - 0x48]
call fcn.1003c630
lea ecx, [ebp - 0x48]
cmp eax, 0x20
jae 0x1003bc86
push edi
push 8
call fcn.1003c550
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x48]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
lea ecx, [ebp - 0x48]
mov edi, eax
call fcn.1003c630
add edi, eax
push edi
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x48]
call fcn.1003c610
mov ecx, eax
call fcn.1003cf30
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0xf]
push ecx
mov ecx, dword [esi + 0x44]
lea edx, [ebp - 0x10]
push edx
push ebx
call fcn.1003ceb0
test eax, eax
jns 0x1003bbb4
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.1003b0c0
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x1003bc83
mov eax, dword [esi + 0x54]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.100051a0
mov esi, dword [ebp + 8]
add esp, 8
test al, al
jne 0x1003bcc7
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.1003b0c0
pop ebx
pop edi
mov eax, esi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.1003b0c0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop ebx
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4