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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 0x14]
mov ecx, fcn.0045d240
push ebx
mov ebx, dword [ebp + 0x10]
test eax, eax
push esi
mov esi, fcn.0045d210
mov edx, fcn.0045d070
cmovne esi, ecx
mov ecx, fcn.0045d030
cmovne ecx, edx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x24], ecx
mov edx, fcn.0045c8a0
push edi
mov edi, dword [ebp + 8]
mov ecx, fcn.0045c870
cmovne ecx, edx
mov edx, 0x45c850
mov dword [ebp - 0x2c], ecx
mov ecx, 0x45c820
push 0
push ebx
push dword [edi]
cmovne ecx, edx
mov dword [ebp - 0x18], ecx
call fcn.00595cb4
push edi
call esi
movzx eax, ax
add esp, 0x10
mov dword [ebp + 8], eax
test ax, ax
jne 0x43f2ab
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret
movzx esi, ax
xorps xmm0, xmm0
push 0x18
movq qword [ebp - 0x48], xmm0
push esi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], esi
call fcn.00592c0b
mov dword [ebp - 0x40], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x28], 0
add esp, 8
mov dword [ebp - 0xc], ecx
cmp ax, word [ebp + 8]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x3c], 0x83bb
jae 0x43f3bd
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 8], edx
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov esi, dword [ebp - 0x30]
push edi
call esi
movzx eax, ax
push edi
mov dword [ebp + 0x14], eax
call esi
movzx esi, ax
push edi
mov dword [ebp - 0x38], esi
call ebx
add esp, 0xc
mov dword [ebp - 0x34], eax
cmp esi, 0xe
jae 0x43f3a9
test eax, eax
jle 0x43f3a9
movzx ecx, si
push edi
movsx esi, byte [ecx + str.11124811248488]
sub esi, 0x30
imul esi, eax
call ebx
push esi
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x48]
push dword [ebp - 0x38]
push dword [ebp + 0x14]
push eax
call fcn.0043e710
mov eax, dword [ebp + 0x14]
mov ecx, 0x83bb
add esp, 0x1c
cmp ax, cx
jne 0x43f384
push dword [edi]
call fcn.005960c7
add esp, 4
mov dword [ebp - 8], esi
sub eax, 0xc
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], eax
jmp 0x43f3af
mov ecx, 0x2bc
cmp ax, cx
jne 0x43f3af
push dword [edi]
call fcn.005960c7
add esp, 4
mov dword [ebp - 0x10], esi
sub eax, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
jmp 0x43f3af
push edi
call ebx
add esp, 4
dec dword [ebp - 0x20]
jne 0x43f308
mov ebx, dword [ebp + 0x10]
jmp 0x43f3cc
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
push edi
call dword [ebp - 0x24]
push 2
push 0
push dword [edi]
mov dword [ebp - 0x38], eax
call fcn.00595cb4
push dword [edi]
call fcn.005960c7
add esp, 0x14
mov esi, eax
cmp dword [ebp + 0x18], 0
mov dword [ebp + 0x14], esi
je 0x43f607
cmp dword [ebp + 0x20], 0
je 0x43f5b9
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0xc]
add edx, eax
mov dword [ebp - 0x24], edx
test ecx, ecx
je 0x43f45e
test eax, eax
jne 0x43f42e
push dword [edi]
call fcn.005960c7
add esp, 4
cmp dword [ebp + 0x14], eax
jmp 0x43f440
cmp dword [ebp + 0x14], eax
jne 0x43f48d
push dword [edi]
call fcn.005960c7
add esp, 4
cmp dword [ebp - 0x24], eax
jne 0x43f48d
mov ecx, dword [ebp + 8]
movzx eax, cx
lea eax, [eax + eax*2]
lea eax, [eax*4 + 6]
add eax, ebx
cmp eax, dword [ebp - 4]
jne 0x43f48d
mov dword [ebp + 0x14], ebx
jmp 0x43f4b1
test eax, eax
je 0x43f48d
push dword [edi]
call fcn.005960c7
add esp, 4
cmp dword [ebp - 0x24], eax
jne 0x43f48d
mov ecx, dword [ebp + 8]
movzx eax, cx
lea eax, [eax + eax*2]
lea eax, [eax*4 + 6]
add eax, ebx
cmp eax, dword [ebp - 0xc]
jne 0x43f48d
mov dword [ebp + 0x14], ebx
jmp 0x43f4b1
push dword [edi]
call fcn.005960c7
mov edx, dword [ebp + 8]
add esp, 4
movzx ecx, dx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*4 + 6]
add ecx, ebx
cmp ecx, eax
cmove esi, ebx
mov dword [ebp + 0x14], esi
cmp dword [ebp - 0x28], 0
jne 0x43f4d1
push 0
push 0
push dword [ebp + 0x1c]
lea eax, [ebp - 0x48]
push 4
push 0x83bb
push eax
call fcn.0043e710
add esp, 0x18
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x43f4f2
push 0
push 0
push dword [ebp + 0x24]
push 4
push 0x2bc
lea eax, [ebp - 0x48]
push eax
call fcn.0043e710
add esp, 0x18
mov esi, dword [ebp + 0x14]
push 0x5c3924
push dword [ebp + 0x28]
call fcn.005931b4
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43f84d
push 0x40000
call fcn.00593e38
push 0
push 0
push dword [edi]
mov dword [ebp + 8], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.00595cb4
add esp, 0x10
test esi, esi
jle 0x43f57f
mov ecx, 0x40000
push dword [edi]
cmp esi, 0x40000
mov eax, esi
cmovg eax, ecx
push eax
push 1
push dword [ebp + 8]
sub esi, eax
mov dword [ebp + 0x14], esi
call fcn.00595b79
push ebx
mov esi, eax
push esi
push 1
push dword [ebp + 8]
call fcn.0059628c
add esp, 0x20
cmp eax, esi
mov esi, dword [ebp + 0x14]
jne 0x43f57f
mov ecx, 0x40000
test esi, esi
jg 0x43f541
push dword [ebp + 8]
call fcn.00592c4b
add esp, 4
push ebx
test esi, esi
je 0x43f65f
call fcn.00593079
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.00592c4b
mov eax, dword [ebp + 0x28]
push eax
call fcn.0059630e
add esp, 0xc
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
test esi, esi
je 0x43f5f4
push dword [edi]
call fcn.005960c7
mov ecx, dword [ebp - 8]
add esp, 4
add ecx, esi
cmp ecx, eax
jne 0x43f634
cmp ebx, esi
jge 0x43f634
mov ecx, dword [ebp + 8]
movzx eax, cx
lea eax, [eax + eax*2]
lea eax, [eax*4 + 6]
add eax, ebx
cmp eax, esi
jne 0x43f634
mov esi, ebx
jmp 0x43f4f5
push 0
push 0
push dword [ebp + 0x1c]
push 4
push 0x83bb
jmp 0x43f4e6
cmp dword [ebp + 0x20], 0
je 0x43f4f2
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x43f4d8
push dword [edi]
call fcn.005960c7
mov ecx, dword [ebp - 0x10]
add esp, 4
add ecx, esi
cmp ecx, eax
jne 0x43f634
cmp ebx, dword [ebp - 4]
jmp 0x43f5d5
push dword [edi]
call fcn.005960c7
mov edx, dword [ebp + 8]
add esp, 4
movzx ecx, dx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*4 + 6]
add ecx, ebx
cmp ecx, eax
jne 0x43f4f2
mov esi, ebx
jmp 0x43f4f5
call fcn.005960c7
mov esi, dword [ebp - 0x48]
push ebx
push esi
mov dword [ebp + 8], eax
call dword [ebp - 0x2c]
add esp, 0xc
mov dword [ebp + 0x14], 0
mov edx, 4
test esi, esi
jle 0x43f7a1
xor edi, edi
jmp 0x43f695
mov edx, 4
cmp dword [ebp + 0x18], 0
mov ecx, dword [ebp - 0x40]
je 0x43f6ad
lea eax, [edi + edi*2]
lea esi, [ecx + eax*8]
movzx eax, word [esi]
cmp ax, word [ebp - 0x3c]
je 0x43f6ce
cmp dword [ebp + 0x20], 0
je 0x43f761
lea eax, [edi + edi*2]
lea esi, [ecx + eax*8]
mov ecx, 0x2bc
movzx eax, word [esi]
cmp ax, cx
jne 0x43f761
mov ecx, 0x83bb
cmp ax, cx
jne 0x43f6e0
mov ecx, dword [ebp + 0x1c]
add ecx, 0xfffffffe
jmp 0x43f6e3
mov ecx, dword [ebp + 0x24]
mov eax, 0x83bb
mov dword [esi + 4], ecx
cmp word [esi], ax
mov eax, ecx
jne 0x43f6fc
and eax, 3
sub edx, eax
mov dword [ebp - 0x28], edx
jmp 0x43f704
and eax, 3
sub edx, eax
mov dword [ebp - 0x24], edx
lea eax, [ecx + edx]
mov dword [esi + 4], eax
cmp word [esi + 2], 4
jbe 0x43f71a
mov eax, 4
mov word [esi + 2], ax
movzx eax, word [esi + 2]
xor edx, edx
movsx ecx, byte [eax + str.11124811248488]
mov eax, dword [esi + 4]
sub ecx, 0x30
div ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x48]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
mov eax, 0x2bc
add ecx, 6
mov dword [esi + 8], ecx
cmp word [esi], ax
jne 0x43f761
mov edx, dword [ebp + 0x1c]
lea eax, [edx - 2]
and eax, 3
sub ecx, eax
lea eax, [edx + 2]
add eax, ecx
mov dword [esi + 8], eax
mov ecx, dword [ebp - 0x40]
lea eax, [edi + edi*2]
mov edi, dword [ebp - 0x2c]
push ebx
lea esi, [ecx + eax*8]
movzx eax, word [esi]
push eax
call edi
movzx eax, word [esi + 2]
push ebx
push eax
call edi
mov edi, dword [ebp - 0x18]
push ebx
push dword [esi + 4]
call edi
push ebx
push dword [esi + 8]
call edi
mov eax, dword [ebp + 0x14]
add esp, 0x20
inc eax
movzx edi, ax
mov dword [ebp + 0x14], eax
cmp edi, dword [ebp - 0x48]
jl 0x43f690
push ebx
push dword [ebp - 0x38]
call dword [ebp - 0x18]
mov ecx, dword [ebp + 0x18]
add esp, 8
test ecx, ecx
je 0x43f7f6
mov esi, dword [ebp + 0x1c]
lea eax, [ecx + 2]
push ebx
add esi, 0xfffffffe
push esi
push 1
push eax
call fcn.0059628c
add esp, 0x10
cmp eax, esi
je 0x43f7da
push ebx
call fcn.00593079
push dword [ebp - 0x40]
jmp 0x43f59c
mov edi, dword [ebp - 0x28]
xor esi, esi
test edi, edi
jle 0x43f7f6
push ebx
push 0
call fcn.005958b3
inc esi
add esp, 8
movzx eax, si
cmp eax, edi
jl 0x43f7e3
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x43f833
mov esi, dword [ebp + 0x24]
push ebx
push esi
push 1
push eax
call fcn.0059628c
add esp, 0x10
cmp eax, esi
jne 0x43f7cc
mov edi, dword [ebp - 0x24]
xor esi, esi
test edi, edi
jle 0x43f833
lea ebx, [ebx]
push ebx
push 0
call fcn.005958b3
inc esi
add esp, 8
movzx eax, si
cmp eax, edi
jl 0x43f820
push 0
push 4
push ebx
call fcn.00595cb4
push ebx
push dword [ebp + 8]
call dword [ebp - 0x18]
push ebx
call fcn.00593079
add esp, 0x18
push dword [ebp - 0x40]
call fcn.00592c4b
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret