Function at 0x10047240
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x7720]
mov edi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x5c]
lea eax, [eax + eax*2]
shl eax, 6
add eax, dword [edi + 0x10c]
mov esi, dword [eax + 8]
mov ebx, dword [eax]
test esi, esi
je 0x100473b4
mov eax, dword [edi + 0x190]
test eax, eax
mov dword [esp + 0x4c], eax
js 0x100473ee
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x194]
mov edi, dword [eax + 0x198]
test edi, edi
jne 0x100473a9
mov eax, dword [esp + 0xa4]
mov esi, dword [eax + 0x2134]
test ecx, ecx
jle 0x100472f3
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
movss xmm1, dword [0x10330d60]
mov ebx, dword [eax + ebx*4 + 0x188]
xor eax, eax
movzx edx, word [ebx + eax*2]
rol dx, 8
movsx edx, dx
cvtsi2ss xmm0, edx
mulss xmm0, xmm1
movss dword [esi + eax*4], xmm0
add eax, 1
cmp eax, ecx
jne 0x100472d4
test edi, edi
jne 0x100474c9
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x3b30]
test edi, edi
je 0x10047389
mov ebx, dword [eax + 0x4888]
test ebx, ebx
jle 0x10047389
mov eax, dword [esp + 0xa4]
movss xmm2, dword [0x10330c30]
movss xmm1, dword [0x10330c34]
mov edi, dword [eax + 0x2134]
mov esi, dword [eax + 0x2148]
xor eax, eax
nop
lea esi, [esi]
movss xmm0, dword [edi + eax*4]
xor edx, edx
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si ecx, xmm0
test ecx, ecx
js 0x1004737e
cmp ecx, 0x3ff
mov edx, 0xffffffff
jg 0x1004737e
mov edx, ecx
and edx, 0x3f
movzx edx, byte [edx + 0x10331ca0]
sar ecx, 6
add edx, 0x100
shl edx, cl
shr edx, 8
mov word [esi + eax*2], dx
add eax, 1
cmp eax, ebx
jne 0x10047340
mov eax, dword [esp + 0x4c]
xor esi, esi
mov edi, dword [esp + 0x40]
sub eax, 1
mov dword [edi + 0x190], eax
add esp, 0x8c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [eax + 0x19c]
jmp 0x100472b7
mov eax, dword [esp + 0xa8]
mov dword [esp], 0x10042c80
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.10029d00
add esp, 0x8c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea esi, [esp + 0x7f]
mov edx, eax
mov eax, dword [edi + 0x104]
add edx, 1
mov dword [edi + 0x190], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], esi
call fcn.102da552
test eax, eax
je 0x1004774d
mov eax, dword [edi + 0x104]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x194]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [edi + 0x190]
mov eax, dword [edi + eax*4 + 0x188]
mov dword [esp], eax
call fcn.102da552
mov ecx, dword [edi + 0x194]
cmp eax, ecx
jne 0x1004774d
movzx eax, byte [esp + 0x7f]
cmp al, bl
je 0x100474b2
mov edx, dword [edi + 0x190]
cmp edx, 1
jne 0x100473f4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa0]
movzx ebx, bl
mov dword [esp + 0x10], ebx
mov esi, 0xffffffff
mov dword [esp + 8], str.MB_tree_frametype__d_doesnt_match_actual_frametype__d._n
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.100083f0
jmp 0x1004739c
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x190]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
jmp 0x1004729c
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x2134]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x4880]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1a4]
mov esi, dword [eax + 0x19c]
mov edi, dword [eax + 0x1a0]
mov dword [esp + 0x34], ebx
mov ebx, eax
mov eax, dword [eax + 0x1bc]
mov ebx, dword [ebx + 0x1c0]
test ebx, ebx
mov dword [esp + 0x50], ebx
jle 0x10047612
mov ebx, dword [esp + 0x40]
xorps xmm2, xmm2
lea ebp, [eax - 1]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x5c], edi
mov ebx, dword [ebx + 0x1ac]
mov dword [esp + 0x44], ebx
lea ebx, [eax*4]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x28]
shl ebx, 2
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x34]
shl ebx, 2
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
jle 0x100475ef
mov eax, dword [esp + 0x40]
xor edi, edi
mov eax, dword [eax + 0x1b4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test ebx, ebx
mov eax, dword [eax + edi*4]
jle 0x10047745
mov ecx, dword [esp + 0x24]
lea edx, [eax*4]
add ebx, eax
movaps xmm1, xmm2
sub ecx, edx
lea esi, [esi]
xor edx, edx
test eax, eax
js 0x100475c0
cmp eax, ebp
mov edx, ebp
cmovle edx, eax
shl edx, 2
movss xmm0, dword [esi + edx]
mulss xmm0, dword [ecx + eax*4]
add eax, 1
cmp eax, ebx
addss xmm1, xmm0
jne 0x100475b0
mov eax, dword [esp + 0x2c]
movss dword [eax + edi*4], xmm1
mov eax, dword [esp + 0x38]
add edi, 1
add dword [esp + 0x24], eax
cmp edi, dword [esp + 0x28]
jne 0x10047588
mov eax, dword [esp + 0x58]
add dword [esp + 0x2c], eax
add dword [esp + 0x3c], 1
mov eax, dword [esp + 0x50]
add esi, dword [esp + 0x54]
cmp dword [esp + 0x3c], eax
jne 0x10047564
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x28]
mov eax, dword [eax + 0x1a8]
test esi, esi
mov dword [esp + 0x34], eax
jle 0x100472fb
mov esi, eax
mov eax, dword [esp + 0x40]
xorps xmm2, xmm2
shl esi, 2
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x44], 0
mov eax, dword [eax + 0x1b0]
sub ebp, 1
lea ebx, [esi*4]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x4884]
mov dword [esp + 0x5c], eax
shl eax, 2
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jle 0x10047724
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x54]
mov eax, dword [eax + 0x1b8]
add ebx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
test ecx, ecx
mov eax, dword [eax]
jle 0x10047740
lea ebx, [ecx + eax]
mov ecx, dword [esp + 0x2c]
lea edx, [eax*4]
movaps xmm1, xmm2
sub ecx, edx
xor edx, edx
test eax, eax
js 0x100476e8
cmp eax, ebp
mov edx, ebp
cmovle edx, eax
imul edx, esi
shl edx, 2
movss xmm0, dword [edi + edx]
mulss xmm0, dword [ecx + eax*4]
add eax, 1
cmp eax, ebx
addss xmm1, xmm0
jne 0x100476d5
mov eax, dword [esp + 0x28]
add dword [esp + 0x24], 4
movss dword [eax], xmm1
mov eax, dword [esp + 0x3c]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x24], eax
jne 0x100476b0
add dword [esp + 0x44], 1
add edi, 4
add dword [esp + 0x48], 4
cmp dword [esp + 0x44], esi
jne 0x1004767c
jmp 0x100472fb
movaps xmm1, xmm2
jmp 0x100476fd
movaps xmm1, xmm2
jmp 0x100475d5
mov eax, dword [esp + 0xa0]
mov esi, 0xffffffff
mov dword [esp + 8], str.Incomplete_MB_tree_stats_file._n
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.100083f0
add esp, 0x8c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret