Function at 0x583350
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x5c
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 8
lea eax, [esp + 0x58]
call fcn.0057e5c0
movzx eax, word [esp + 0x58]
movzx ecx, word [esp + 0x5c]
cdq
idiv ecx
mov dword [esp + 0x24], eax
imul eax, dword [esp + 0x74]
lea edi, [eax*4]
push edi
call fcn.0045d550
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x38], ebp
je 0x583825
push edi
push 0
push ebp
call fcn.0060c930
movzx eax, word [esp + 0x66]
movzx edi, word [esp + 0x6a]
cdq
idiv edi
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x3c], ecx
test eax, eax
jbe 0x583807
mov bx, word [esp + 0x5c]
nop
mov edi, dword [esp + 0x24]
test edi, edi
jbe 0x583540
lea edx, [ebp + edi*4]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x74]
test eax, eax
jbe 0x583523
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
lea ebx, [eax - 1]
shr ebx, 1
add ebx, 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x70], 0
je 0x58342d
call fcn.0057e000
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
jmp 0x5834d4
mov edi, dword [esi]
mov byte [esp + 0x10], 0xff
mov byte [esp + 0x11], 0xff
mov edx, dword [edi + 0x14]
test edx, edx
je 0x583475
mov eax, dword [edi + 0x1c]
mov ebp, 2
cmp eax, ebp
jb 0x583456
mov ecx, dword [edi + 0x18]
lea ebx, [ecx + 2]
cmp ebx, eax
jbe 0x58345f
mov ecx, dword [edi + 0x18]
sub eax, ecx
mov ebp, eax
je 0x58348e
add ecx, edx
push ebp
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0060d1b0
add esp, 0xc
add dword [edi + 0x18], ebp
jmp 0x58348e
mov edi, dword [edi + 4]
test edi, edi
je 0x58348e
push edi
push 2
lea eax, [esp + 0x18]
push 1
push eax
call fcn.0060860a
add esp, 0x10
cmp word [esi + 4], 0x4949
jne 0x5834a5
xor ecx, ecx
mov ch, byte [esp + 0x11]
mov cl, byte [esp + 0x10]
movzx eax, cx
jmp 0x5834b7
movzx ax, byte [esp + 0x11]
xor edx, edx
mov dh, byte [esp + 0x10]
or dx, ax
movzx eax, dx
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
movzx ecx, ax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fmul qword [0x6c1070]
mov ecx, dword [esp + 0x3c]
fstp dword [esp + 0x28]
test ecx, ecx
jne 0x5834e9
fld dword [esp + 0x28]
fstp dword [ebp]
jmp 0x583505
movzx edx, word [esp + 0x5e]
fld dword [esp + 0x28]
fsub dword [ebp]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x30]
fild dword [esp + 0x20]
fdivp st(1)
fstp dword [eax]
lea eax, [edi*8]
add dword [esp + 0x30], eax
add ebp, eax
sub ebx, 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebx
jne 0x583414
mov eax, 4
add dword [esp + 0x2c], eax
add dword [esp + 0x14], eax
sub dword [esp + 0x18], 1
jne 0x5833ec
mov bx, word [esp + 0x5c]
test ecx, ecx
je 0x5837e7
movzx eax, word [esp + 0x5e]
movzx edi, word [esi + 0x464]
mov edx, eax
imul edx, ecx
sub edx, edi
movzx edi, word [esp + 0x56]
add edx, edi
mov ebp, edx
sub ebp, eax
movzx eax, word [esi + 0x460]
cmp ebp, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebp
jae 0x5837e7
cmp ebp, edx
jae 0x5837e3
mov eax, 1
cmp dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
jbe 0x583769
mov ecx, dword [esp + 0x38]
add ecx, 4
mov dword [esp + 0x2c], ecx
xor eax, eax
cmp dword [esp + 0x74], eax
jbe 0x5835e8
mov ecx, dword [esp + 0x2c]
movzx edx, bx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
add edx, edx
fild dword [esp + 0x18]
add edx, edx
add edx, edx
fld dword [ecx - 4]
add eax, 2
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + eax*4 + 0x3c]
fsubr dword [ecx]
add ecx, edx
cmp eax, dword [esp + 0x74]
fdiv st(1)
fstp dword [esp + eax*4 + 0x40]
jb 0x5835c4
fstp st(0)
movzx ecx, word [esi + 0x466]
movzx eax, bx
mov edx, eax
imul edx, dword [esp + 0x14]
sub edx, ecx
movzx ecx, word [esp + 0x54]
add edx, ecx
mov edi, edx
sub edi, eax
movzx eax, word [esi + 0x462]
cmp edi, eax
mov dword [esp + 0x40], edx
jae 0x58374b
lea esp, [esp]
cmp edi, edx
jae 0x583746
mov ebx, dword [esp + 0x74]
cmp ebx, 2
jle 0x58364d
mov ecx, ebp
and ecx, 7
mov eax, edi
and eax, 1
lea ecx, [eax + ecx*2]
mov eax, dword [esi + 0x338]
add ecx, ecx
shr eax, cl
and eax, 3
jmp 0x58364f
xor eax, eax
test al, 1
jne 0x58371b
movzx ebx, word [esi + 0x468]
fnstcw word [esp + 0x30]
mov ecx, ebp
and ecx, 7
mov edx, edi
and edx, 1
lea ecx, [edx + ecx*2]
mov edx, dword [esi + 0x338]
add ecx, ecx
shr edx, cl
mov ecx, ebx
shr ebp, cl
movzx ecx, word [esi + 0x46c]
imul ebp, ecx
mov ecx, edi
mov dword [esp + 0x18], ecx
mov ecx, ebx
mov ebx, edi
shr ebx, cl
and edx, 3
add ebp, ebx
mov ebx, dword [esi + 0x4d8]
lea ecx, [edx + ebp*4]
movzx ecx, word [ebx + ecx*2]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul dword [esp + eax*4 + 0x44]
movzx eax, word [esp + 0x30]
or eax, 0xc00
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xffff
mov dword [esp + 0x18], eax
fldcw word [esp + 0x30]
jb 0x5836e2
mov dword [esp + 0x18], 0xffff
movzx ecx, word [esi + 0x468]
mov ebp, dword [esp + 0x20]
movzx eax, word [esi + 0x46c]
mov ebx, ebp
shr ebx, cl
imul ebx, eax
mov eax, edi
shr eax, cl
add ebx, eax
mov eax, dword [esi + 0x4d8]
lea ecx, [edx + ebx*4]
mov dx, word [esp + 0x18]
mov ebx, dword [esp + 0x74]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x40]
xor eax, eax
test ebx, ebx
jbe 0x583734
fld dword [esp + eax*4 + 0x48]
add eax, 2
cmp eax, ebx
fadd dword [esp + eax*4 + 0x3c]
fstp dword [esp + eax*4 + 0x3c]
jb 0x583721
movzx ecx, word [esi + 0x462]
add edi, 1
cmp edi, ecx
jb 0x583620
mov bx, word [esp + 0x5c]
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
jb 0x5835a3
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x24], 0
jbe 0x5837cd
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov eax, ebx
lea eax, [eax + ecx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x74]
test eax, eax
jbe 0x5837b9
mov edx, dword [esp + 0x14]
add eax, 0xffffffff
shr eax, 1
lea edi, [ecx*8]
mov ecx, ebx
add eax, 1
fld dword [edx]
add edx, edi
fadd dword [ecx]
fstp dword [ecx]
add ecx, edi
sub eax, 1
jne 0x5837a2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
add dword [esp + 0x14], 4
add ebx, 4
sub dword [esp + 0x18], 1
jne 0x583785
mov bx, word [esp + 0x5c]
movzx ecx, word [esi + 0x460]
add ebp, 1
cmp ebp, ecx
mov dword [esp + 0x20], ebp
jb 0x58357d
mov ecx, dword [esp + 0x3c]
movzx eax, word [esp + 0x5a]
movzx edi, word [esp + 0x5e]
cdq
idiv edi
mov ebp, dword [esp + 0x38]
add ecx, 1
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jb 0x5833d0
push ebp
call fcn.0045da90
mov ecx, dword [esp + 0x68]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00607d6d
add esp, 0x5c
ret 8
push 1
add esi, 0x968ec
push esi
call fcn.0061b7d8
int3