Function at 0x466950
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x564
push ebx
push ebp
mov ebp, dword [esp + 0x570]
push esi
push edi
mov esi, eax
test edx, edx
je 0x4669a9
mov eax, edx
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x466970
sub eax, edi
je 0x4669a9
xor eax, eax
cmp dword [0x912308], eax
lea ecx, [esp + 0x68]
setne al
push eax
push ecx
push esi
push edx
call fcn.004635c0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4669d9
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x564
ret
lea edx, [esp + 0x48]
push edx
push esi
call fcn.00484b22
add esp, 8
cmp eax, 0xffffffff
je 0x46699c
push eax
call fcn.00484414
add esp, 4
push 0x4c70fc
push esi
call fcn.0048466b
mov esi, eax
add esp, 8
test esi, esi
je 0x46699c
push 1
push 4
push esi
call fcn.004853aa
add esp, 0xc
push esi
push 1
lea eax, [esp + 0x20]
push 2
push eax
call fcn.00484992
add esp, 0x10
test eax, eax
jne 0x466a12
push esi
call fcn.004854f7
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x564
ret
movzx ecx, word [esp + 0x18]
mov edi, dword [esp + 0x580]
cmp ecx, edi
push esi
jl 0x4669fd
push 1
lea edx, [esp + 0x18]
push 2
push edx
call fcn.00484992
add esp, 0x10
test eax, eax
je 0x4669fc
cmp word [esp + 0x10], 8
jne 0x4669fc
movzx eax, word [esp + 0x18]
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
add eax, eax
push eax
call fcn.004836a3
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4669fc
xor edx, edx
xor ebx, ebx
cmp dx, word [esp + 0x18]
jae 0x466adf
lea edi, [ecx + 8]
nop
push esi
push 1
lea eax, [edi - 8]
push 4
push eax
call fcn.00484992
push esi
push 1
lea ecx, [edi - 4]
push 4
push ecx
call fcn.00484992
push esi
push 1
push 4
push edi
call fcn.00484992
push esi
push 1
lea edx, [edi + 4]
push 4
push edx
call fcn.00484992
add esp, 0x40
push esi
push 1
lea eax, [edi + 8]
push 4
push eax
call fcn.00484992
push esi
push 1
lea ecx, [edi + 0xc]
push 4
push ecx
call fcn.00484992
movzx edx, word [esp + 0x38]
inc ebx
add esp, 0x20
add edi, 0x18
cmp ebx, edx
jl 0x466a70
mov edi, dword [esp + 0x580]
mov ecx, dword [esp + 0x1c]
cmp edi, 1
lea eax, [edi + edi*2]
mov edx, dword [ecx + eax*8 - 0x18]
lea eax, [ecx + eax*8 - 0x18]
mov dword [ebp], edx
mov edx, dword [eax + 4]
mov dword [ebp + 4], edx
mov edx, dword [eax + 8]
mov dword [ebp + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ebp + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ebp + 0x10], edx
mov eax, dword [eax + 0x14]
mov dword [ebp + 0x14], eax
jle 0x466b4a
dec edi
test edi, edi
jle 0x466b4a
lea ebx, [ecx + 0x14]
mov ecx, dword [ebx]
push 1
push ecx
push esi
call fcn.004853aa
add esp, 0xc
cmp word [esp + 0x10], 8
jne 0x466b3e
push 1
push 0x400
push esi
call fcn.004853aa
add esp, 0xc
add ebx, 0x18
sub edi, 1
jne 0x466b18
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004835c6
mov eax, dword [ebp + 0x14]
add eax, 7
add esp, 4
push eax
call fcn.004836a3
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4669fc
test bl, 7
je 0x466b83
mov edx, ebx
shr edx, 3
lea eax, [edx*8 + 8]
mov dword [esp + 0x1c], eax
jmp 0x466b87
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x584]
add eax, 0xfffffff7
cmp eax, 4
mov dword [esp + 0x14], eax
jle 0x466ba2
mov dword [esp + 0x14], 4
fld qword [0x4d6b28]
push esi
fstp qword [esp + 0x24]
push 0x100
fld qword [0x4d6b20]
lea ecx, [esp + 0x178]
fstp qword [esp + 0x30]
push 4
fld qword [0x4d6b18]
push ecx
fstp qword [esp + 0x40]
fld qword [0x4d6b10]
fstp qword [esp + 0x48]
fld qword [0x4d6b08]
fstp qword [esp + 0x50]
call fcn.00484992
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x2c]
push esi
push edx
push 1
push eax
call fcn.00484992
mov edi, dword [esp + 0x59c]
mov ecx, dword [esp + 0x3c]
push edi
push ecx
call fcn.00467480
push esi
call fcn.004854f7
add esp, 0x2c
push ebx
call fcn.004835c6
mov eax, dword [esp + 0x588]
add esp, 4
cmp eax, 9
jl 0x466c8b
cmp eax, 0xd
jle 0x466c34
cmp eax, 0x11
jne 0x466c8b
mov edx, dword [ebp + 4]
imul edx, dword [ebp]
xor ecx, ecx
test edx, edx
jle 0x466c8b
mov eax, dword [esp + 0x14]
fld qword [esp + eax*8 + 0x20]
movzx edx, byte [ecx + edi]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
mov dword [esp + 0x14], edx
or eax, 0xc00
inc ecx
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fmul st(1)
fldcw word [esp + 0x14]
fistp dword [esp + 0x14]
mov al, byte [esp + 0x14]
mov byte [ecx + edi - 1], al
mov edx, dword [ebp + 4]
imul edx, dword [ebp]
fldcw word [esp + 0x10]
cmp ecx, edx
jl 0x466c49
fstp st(0)
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x564
ret