Function at 0x43c080
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x22c
mov eax, dword [0x4a2074]
xor eax, esp
mov dword [esp + 0x228], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
push ebx
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 8]
sub esi, dword [eax]
sub esi, 8
sar esi, 3
dec esi
mov dword [esp + 0x18], esi
call fcn.004652db
add esp, 4
mov ecx, edi
test esi, esi
jne 0x43c141
push 1
mov edx, ebx
call fcn.0043bf30
mov esi, dword [ebp + 8]
add esp, 4
mov ebx, eax
inc esi
push dword [esp + 0xc]
call fcn.0045e0ee
add esp, 4
test eax, eax
je 0x43c3b8
call fcn.0045292d
mov esi, dword [eax]
mov eax, dword [edi + 8]
push esi
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
call fcn.00463902
add esp, 4
mov edx, eax
mov ecx, edi
call fcn.00421830
mov eax, dword [edi + 8]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movsd qword [eax], xmm0
mov eax, 3
add dword [edi + 8], 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x228]
xor ecx, esp
call fcn.004473b9
mov esp, ebp
pop ebp
ret
lea edx, [esi + 0x28]
call fcn.00420c20
test eax, eax
je 0x43c3e8
mov esi, dword [ebp + 8]
mov ebx, 1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], esi
dec eax
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x43c0d9
mov edx, esi
mov ecx, edi
call fcn.00421000
mov edx, esi
mov ecx, edi
push 0
cmp eax, 3
jne 0x43c25c
call fcn.00421350
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x43c209
mov ebx, dword [esp + 0xc]
push ebx
call fcn.00463857
add esp, 4
mov dword [esp + 0x10], eax
push ebx
push eax
call fcn.00465dda
mov ecx, dword [edi + 0xc]
add esp, 8
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x43c1d7
cmp byte [ecx + 0x37], 0
je 0x43c1c8
mov ecx, edi
call fcn.0042c020
jmp 0x43c1d7
add eax, 0x640
mov dword [ecx + 0xc], 0xfffff9c0
add dword [ecx + 8], eax
push 0
xor edx, edx
mov ecx, edi
call fcn.0042d070
mov ecx, dword [edi + 8]
xor ebx, ebx
add esp, 4
mov dword [ecx], eax
movzx eax, byte [eax + 4]
or eax, 0x7ff7a540
mov dword [ecx + 4], eax
add dword [edi + 8], 8
cmp dword [esp + 0x10], 0xffffffff
setne bl
jmp 0x43c3a2
lea eax, [esp + 0x30]
mov dword [esp + 0x2c], edi
mov edx, ebx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0x200
call fcn.00423700
push dword [esp + 0xc]
push ebx
push 1
push eax
call fcn.0046075b
add esp, 0x10
lea ecx, [esp + 0x20]
mov esi, eax
add dword [esp + 0x28], esi
call fcn.004237b0
xor eax, eax
cmp eax, esi
sbb ebx, ebx
neg ebx
jmp 0x43c39e
call fcn.00421590
add esp, 4
test eax, eax
je 0x43c411
cmp byte [eax], 0x2a
jne 0x43c411
movsx eax, byte [eax + 1]
add eax, 0xffffffb4
cmp eax, 0x22
ja case.0x43c28c.77
movzx eax, byte [eax + 0x43c434]
jmp dword [eax*4 + 0x43c420]
lea eax, [esp + 0x18]
push eax
push 0x493c70
push dword [esp + 0x14]
call fcn.0043b0b0
add esp, 0xc
cmp eax, 1
mov eax, dword [edi + 8]
jne 0x43c2e1
movsd xmm0, qword [esp + 0x18]
movsd qword [eax], xmm0
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 4]
and eax, 0x7fffff00
cmp eax, 0x7ff7a500
je 0x43c3f8
lea eax, [ecx + 8]
mov ebx, 1
mov dword [edi + 8], eax
jmp 0x43c3a2
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
xor ebx, ebx
jmp 0x43c3a2
mov edx, dword [esp + 0xc]
mov ecx, edi
push 1
call fcn.0043bf30
add esp, 4
mov ebx, eax
jmp 0x43c3a2
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0
call fcn.0043bf30
add esp, 4
mov ebx, eax
jmp 0x43c3a2
mov esi, 0x200
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x30]
mov dword [esp + 0x28], 0
mov edx, esi
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], esi
call fcn.00423700
mov ebx, dword [esp + 0xc]
push ebx
push esi
push 1
push eax
call fcn.0046075b
add dword [esp + 0x38], eax
add esp, 0x10
cmp eax, esi
jb 0x43c390
cmp esi, 0x3fffffff
lea eax, [esi + esi]
lea ecx, [esp + 0x20]
cmova eax, esi
mov esi, eax
mov edx, esi
call fcn.00423700
push ebx
push esi
push 1
push eax
call fcn.0046075b
add dword [esp + 0x38], eax
add esp, 0x10
cmp eax, esi
jae 0x43c362
lea ecx, [esp + 0x20]
call fcn.004237b0
mov ebx, 1
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x10], esi
test eax, eax
jne 0x43c161
jmp 0x43c0d9
test ebx, ebx
jne 0x43c3ce
add dword [edi + 8], 0xfffffff8
mov eax, dword [edi + 8]
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
sub esi, dword [ebp + 8]
mov ecx, dword [esp + 0x234]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004473b9
mov esp, ebp
pop ebp
ret
push str.too_many_arguments
push str.stack_overflow___s_
push edi
call fcn.004231d0
push str.C_API___attempt_to_push_a_signaling_NaN
push edi
call fcn.00425a50
push str.invalid_format
mov edx, esi
mov ecx, edi
call fcn.00422fb0
push str.invalid_option
mov edx, esi
mov ecx, edi
call fcn.00422fb0
nop
or al, bl
inc ebx
add byte [ecx], ah
ret