Function at 0x403880
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov eax, dword [0x42f360]
mov dword [esp], 0x4037c0
mov edx, dword [0x42ddb0]
mov ebx, dword [0x42e270]
add edx, eax
inc edx
inc ebx
mov dword [esp + 4], edx
call fcn.0040e940
mov dword [esp], 0x4037f9
call fcn.0040ec90
mov edx, dword [0x42f360]
lea ecx, [edx + 2]
cmp ecx, dword [0x42ac20]
jge 0x403b40
mov ecx, dword [0x42abb0]
lea esi, [ecx + 1]
cmp esi, dword [0x42dcf0]
jge 0x403b18
mov esi, dword [0x429ca0]
lea ebp, [edx + 2]
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x18]
mov dword [edi + ecx*4 + 4], ebp
mov esi, dword [0x42f360]
mov ebp, 1
mov ecx, dword [0x42ac00]
mov dword [ecx + esi*4 + 4], ebx
mov eax, dword [0x42ddb0]
mov dword [esp + 0x10], ecx
mov ebx, dword [0x42f360]
mov dword [esp + 0x14], ecx
mov esi, dword [0x42eab0]
inc eax
mov dword [esi + ebx*4 + 4], eax
mov edi, esi
mov edx, dword [0x42f360]
xor eax, eax
xor ebx, ebx
mov dword [esi + edx*4 + 8], ebp
mov ebp, dword [0x42f360]
mov dword [ecx + ebp*4 + 8], eax
cmp ebx, dword [0x42abb0]
jg 0x40398c
mov ecx, dword [0x429c30]
lea esi, [esi]
lea edi, [edi]
mov ebp, dword [esp + 0x18]
mov edx, dword [ecx + ebx*4]
mov eax, dword [ebp + ebx*4]
mov ebp, 0xfffffffe
inc ebx
mov dword [edi + eax*4 - 4], ebp
mov ebp, dword [esp + 0x14]
mov dword [edi + eax*4], 0xffffffff
mov dword [ebp + eax*4 - 4], edx
cmp ebx, dword [0x42abb0]
jle 0x403960
mov edx, dword [0x42f360]
xor ebx, ebx
cmp ebx, edx
jg 0x4039fc
nop
lea esi, [esi]
mov ecx, dword [esi + ebx*4]
cmp ecx, 0xffffffff
je 0x403b04
cmp ecx, 0xfffffffe
je 0x403af2
cmp ecx, dword [0x42ddb0]
jg 0x4039c5
test ecx, ecx
jne 0x403ac8
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040ecf0
mov edx, dword [0x42f360]
inc ebx
cmp ebx, edx
jg 0x4039ec
mov esi, dword [0x42eab0]
jmp 0x4039a0
mov ebx, dword [0x42ac00]
mov esi, dword [0x42eab0]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + edx*4 + 4]
mov dword [esp + 4], edi
mov ecx, dword [esi + edx*4 + 4]
mov dword [esp], ecx
call fcn.0040ecf0
mov ebp, dword [0x42f360]
mov esi, dword [0x42ac00]
mov edi, dword [0x42eab0]
mov ebx, dword [esi + ebp*4 + 8]
mov dword [esp + 4], ebx
mov ecx, dword [edi + ebp*4 + 8]
xor ebx, ebx
mov dword [esp], ecx
call fcn.0040ecf0
mov dword [esp], 0x4037ff
call fcn.0040ec90
mov dword [esp], 0x403820
mov edx, dword [0x42dcd0]
lea esi, [edx + edx + 1]
mov dword [esp + 4], esi
call fcn.0040e940
mov dword [esp], 0x4037f9
call fcn.0040ec90
test byte [0x42dcd3], 0x40
je 0x403aa0
call fcn.0040e280
mov ebx, dword [0x42a190]
test ebx, ebx
jne 0x403a8e
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403b90
mov esi, dword [0x429ca0]
mov ebp, dword [esi + ebx*4]
inc ebx
mov dword [esp], 0x403860
mov dword [esp + 4], ebp
call fcn.0040e940
mov edx, dword [0x42dcd0]
add edx, edx
cmp ebx, edx
jle 0x403aa0
jmp 0x403a77
mov ebp, dword [0x42ac00]
mov edi, ebx
sub edi, ecx
mov ecx, dword [0x429ca0]
mov edx, dword [ebp + ebx*4]
mov ebp, edi
mov edi, dword [ecx + edx*4]
sub edi, ebp
mov dword [esp + 4], edi
mov ebp, dword [esi + ebx*4]
mov dword [esp], ebp
jmp 0x4039d4
mov edx, dword [0x42ac00]
mov eax, dword [edx + ebx*4]
mov dword [esp + 4], eax
jmp 0x4039cd
mov edi, dword [0x42abb0]
mov ecx, dword [0x429ca0]
mov eax, dword [ecx + edi*4 + 4]
sub eax, ebx
jmp 0x403afb
call fcn.00403390
mov ecx, dword [0x42abb0]
lea edi, [ecx + 1]
cmp edi, dword [0x42dcf0]
jge 0x403b18
mov edx, dword [0x42f360]
jmp 0x4038e2
call fcn.004257e0
mov edx, dword [0x42f360]
lea ecx, [edx + 2]
cmp ecx, dword [0x42ac20]
jge 0x403b40
jmp 0x4038cd