Function at 0x5c9d50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x50
mov ecx, dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x6c]
mov edx, 0x120
mov eax, dword [ecx + 0x50]
push ebp
inc eax
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 4]
sub eax, ebx
mov ebx, dword [ecx + 0x48]
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 8]
push esi
mov esi, dword [ecx + 0x44]
sub edx, eax
push edi
sar edx, 1
xor edi, edi
cmp eax, esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], edx
jg 0x5c9da0
mov esi, eax
xor edx, edx
mov dword [esp + 0x44], esi
xor eax, eax
jmp 0x5c9db8
cmp eax, ebx
mov dword [esp + 0x44], esi
jg 0x5c9db0
sub eax, esi
mov edx, eax
xor eax, eax
jmp 0x5c9db8
mov edx, ebx
sub eax, ebx
sub edx, esi
xor edi, edi
cmp esi, edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
jge 0x5c9dc8
mov dword [esp + 0x44], edi
cmp edx, edi
jge 0x5c9dd0
mov dword [esp + 0x48], edi
cmp eax, edi
jge 0x5c9dd8
mov dword [esp + 0x4c], edi
mov edx, dword [ecx + 0x10]
mov eax, 2
cmp edx, eax
jne 0x5ca524
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x18], edi
fld dword [0x5f2898]
cmp edx, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
je 0x5c9e31
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x5c], 0xffffffff
lea eax, [eax + eax*2]
shl eax, 2
mov ebx, dword [eax + 0x68b098]
mov eax, dword [eax + 0x696c50]
mov dword [esp + 0x40], eax
jmp 0x5c9e5e
or eax, 0xffffffff
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
lea eax, [eax + eax*2]
shl eax, 2
mov edx, dword [eax + 0x696c54]
mov ebx, dword [eax + 0x68b09c]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x64]
add ecx, 0x18
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov edx, dword [edx]
mov ecx, dword [esp + ecx*4 + 0x44]
test ecx, ecx
lea edx, [edx*8 + 0x65a140]
mov dword [esp + 0x34], edx
je 0x5ca262
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x5c9f1b
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
add ebx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
add ebx, 4
add ebx, 4
lea ebp, [ecx + edx*4]
mov edx, dword [ebx - 4]
mov ecx, dword [ebx]
add ebx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
cmp edx, 3
mov dword [esp + 0x10], ebp
fstp st(0)
mov dword [esp + 0x20], edx
jne 0x5c9ef9
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x18], 1
mov esi, dword [edx]
shl esi, cl
mov ecx, dword [esp + 0x70]
add edx, 4
mov dword [esp + 0x6c], edx
mov ecx, dword [ecx + 0x64]
fld dword [ecx + esi*4]
jmp 0x5c9f1b
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x18], 3
mov edi, dword [esi]
shl edi, cl
mov ecx, dword [esp + 0x70]
add esi, 4
mov dword [esp + 0x6c], esi
mov edx, dword [ecx + edx*4 + 0x58]
fld dword [edx + edi*4]
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + 4]
movsx ecx, word [edi]
test ecx, ecx
mov dword [esp + 0x64], ecx
jge 0x5c9f7c
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
add edi, 2
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebp, ecx
and ecx, 7
sar ebp, 3
add ebp, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], ebp
jns 0x5c9f64
mov ecx, dword [esp + 0x64]
neg ecx
lea edi, [edi + ecx*2]
movsx ecx, word [edi]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x64], ecx
dec esi
test ecx, ecx
mov dword [esp + 0x78], esi
jl 0x5c9f2d
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov ecx, edx
and edx, 0xf
sar ecx, 4
cmp ecx, 0xf
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], edx
jne 0x5ca067
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x50], edx
mov edx, dword [esp + 0x34]
or ecx, 0xffffffff
mov edi, dword [edx]
mov edx, dword [esp + 0x78]
sub ecx, edi
add edx, ecx
test edi, edi
mov dword [esp + 0x78], edx
jne 0x5c9fc4
mov dword [esp + 0x30], edi
jmp 0x5ca015
mov esi, dword [eax + 0x486c]
mov ebp, dword [eax + 0x4868]
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
mov dh, byte [esi]
shl edx, 8
or edx, ecx
mov ecx, ebp
shl edx, cl
lea ecx, [edi + ebp]
mov ebp, ecx
and ecx, 7
mov dword [eax + 0x4868], ecx
mov ecx, 0x18
sar ebp, 3
and edx, 0xffffff
sub ecx, edi
add ebp, esi
shr edx, cl
mov dword [eax + 0x486c], ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
fld st(0)
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
jns 0x5ca057
mov edx, dword [esp + 0x30]
fmul dword [edx*4 + 0x68ec44]
fchs
fstp dword [ebp]
jmp 0x5ca0da
mov ecx, dword [esp + 0x30]
fmul dword [ecx*4 + 0x68ec44]
fstp dword [ebp]
jmp 0x5ca0da
test ecx, ecx
je 0x5ca0d3
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov esi, dword [eax + 0x486c]
mov dword [esp + ecx*4 + 0x50], edx
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
fld st(0)
jns 0x5ca0bf
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
dec ecx
fmul dword [edx*4 + 0x68ec08]
mov dword [esp + 0x78], ecx
fchs
fstp dword [ebp]
jmp 0x5ca0da
mov ecx, dword [esp + 0x30]
fmul dword [ecx*4 + 0x68ec08]
dec dword [esp + 0x78]
fstp dword [ebp]
jmp 0x5ca0da
mov dword [ebp], 0
mov edx, dword [esp + 0x18]
lea ecx, [edx*4]
add ebp, ecx
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
mov dword [esp + 0x10], ebp
jne 0x5ca1c6
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x78]
mov dword [esp + edx*4 + 0x50], ecx
mov ecx, dword [esp + 0x34]
or edx, 0xffffffff
mov edi, dword [ecx]
sub edx, edi
add esi, edx
test edi, edi
mov dword [esp + 0x78], esi
jne 0x5ca123
mov dword [esp + 0x64], edi
jmp 0x5ca174
mov esi, dword [eax + 0x486c]
mov ebp, dword [eax + 0x4868]
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
mov dh, byte [esi]
shl edx, 8
or edx, ecx
mov ecx, ebp
shl edx, cl
lea ecx, [edi + ebp]
mov ebp, ecx
and ecx, 7
mov dword [eax + 0x4868], ecx
mov ecx, 0x18
sar ebp, 3
and edx, 0xffffff
sub ecx, edi
add ebp, esi
shr edx, cl
mov dword [eax + 0x486c], ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x64], edx
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
fld st(0)
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
jns 0x5ca1b6
mov edx, dword [esp + 0x64]
fmul dword [edx*4 + 0x68ec44]
fchs
fstp dword [ebp]
jmp 0x5ca239
mov ecx, dword [esp + 0x64]
fmul dword [ecx*4 + 0x68ec44]
fstp dword [ebp]
jmp 0x5ca239
test ecx, ecx
je 0x5ca232
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov esi, dword [eax + 0x486c]
mov dword [esp + ecx*4 + 0x50], edx
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
fld st(0)
jns 0x5ca21e
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x78]
dec ecx
fmul dword [edx*4 + 0x68ec08]
mov dword [esp + 0x78], ecx
fchs
fstp dword [ebp]
jmp 0x5ca239
mov ecx, dword [esp + 0x64]
fmul dword [ecx*4 + 0x68ec08]
dec dword [esp + 0x78]
fstp dword [ebp]
jmp 0x5ca239
mov dword [ebp], 0
mov edx, dword [esp + 0x18]
lea ecx, [edx*4]
mov edx, dword [esp + 0x14]
add ebp, ecx
mov ecx, dword [esp + 0x3c]
dec edx
dec ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], ecx
jne 0x5c9e96
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
inc ecx
add esi, 4
cmp ecx, 2
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], esi
jl 0x5c9e71
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x5ca44e
mov ecx, dword [esp + 0x78]
test ecx, ecx
jle 0x5ca44e
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0x54]
mov ecx, dword [edx*8 + 0x65a244]
mov si, word [ecx]
test si, si
mov dword [esp + 0x3c], esi
jge 0x5ca31b
add ecx, 2
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x78], ecx
js 0x5ca310
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
jns 0x5ca2fe
movsx ecx, word [esp + 0x3c]
mov edx, dword [esp + 0x64]
neg ecx
lea ecx, [edx + ecx*2]
jmp 0x5ca302
mov ecx, dword [esp + 0x64]
mov si, word [ecx]
test si, si
mov dword [esp + 0x3c], esi
jl 0x5ca2b1
jmp 0x5ca31b
mov ecx, dword [esp + 0x78]
inc ecx
xor esi, esi
mov dword [esp + 0x78], ecx
movsx ecx, si
xor edx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], edx
test dl, 1
jne 0x5ca3b7
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x5ca3b3
mov ecx, dword [ebx]
mov esi, dword [esp + 0x68]
add ebx, 4
mov dword [esp + 0x14], ecx
fstp st(0)
mov ecx, dword [ebx]
add ebx, 4
add ebx, 4
lea ebp, [esi + ecx*4]
mov esi, dword [ebx - 4]
mov ecx, dword [ebx]
add ebx, 4
cmp esi, 3
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
jne 0x5ca38f
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], 1
mov edi, dword [esi]
shl edi, cl
mov ecx, dword [esp + 0x70]
add esi, 4
mov dword [esp + 0x6c], esi
mov ecx, dword [ecx + 0x64]
fld dword [ecx + edi*4]
jmp 0x5ca3b3
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], 3
mov edi, dword [ecx]
mov ecx, dword [esp + 0x28]
shl edi, cl
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + esi*4 + 0x58]
fld dword [ecx + edi*4]
add dword [esp + 0x6c], 4
dec dword [esp + 0x14]
mov esi, 8
mov ecx, edx
sar esi, cl
mov ecx, dword [esp + 0x64]
test ecx, esi
je 0x5ca41c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x50], edx
mov ecx, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x78], ecx
js 0x5ca43b
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov edx, dword [esp + 0x24]
mov dword [eax + 0x486c], edi
jns 0x5ca417
fld st(0)
fchs
fstp dword [ebp]
jmp 0x5ca423
fst dword [ebp]
jmp 0x5ca423
mov dword [ebp], 0
mov ecx, dword [esp + 0x18]
inc edx
cmp edx, 4
mov dword [esp + 0x24], edx
lea ebp, [ebp + ecx*4]
jl 0x5ca328
jmp 0x5ca43f
inc dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
dec ecx
mov dword [esp + 0x2c], ecx
jne 0x5ca28b
mov edx, dword [esp + 0x40]
cmp ebx, edx
fstp st(0)
jae 0x5ca4ab
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test esi, esi
jne 0x5ca48d
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov edi, dword [esp + 0x68]
add ebx, 4
add ebx, 4
lea ebp, [edi + ecx*4]
mov edi, 1
mov ecx, dword [ebx]
add ebx, 4
cmp ecx, 3
je 0x5ca48a
mov edi, 3
add ebx, 4
lea ecx, [edi*4]
mov dword [ebp], 0
add ebp, ecx
dec esi
mov dword [ebp], 0
add ebp, ecx
cmp ebx, edx
jb 0x5ca460
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x70]
lea edx, [ecx + 1]
mov dword [ebx + 0x30], edx
mov edx, dword [esp + 0x54]
cmp ecx, edx
lea esi, [edx + 1]
mov dword [ebx + 0x34], esi
mov esi, dword [esp + 0x58]
lea edi, [esi + 1]
mov dword [ebx + 0x38], edi
mov edi, dword [esp + 0x5c]
lea ebp, [edi + 1]
mov dword [ebx + 0x3c], ebp
jg 0x5ca4dd
mov ecx, edx
cmp ecx, esi
jg 0x5ca4e3
mov ecx, esi
inc ecx
test ecx, ecx
je 0x5ca507
mov edx, dword [esp + 0x74]
lea esi, [edx*8]
sub esi, edx
lea ecx, [ecx + esi*2]
mov ecx, dword [ecx*4 + 0x6a8c80]
mov dword [ebx + 0x40], ecx
jmp 0x5caa9a
mov ecx, dword [esp + 0x74]
lea edx, [ecx + ecx*2]
shl edx, 3
sub edx, ecx
add edx, edi
mov ecx, dword [edx*4 + 0x6a8944]
mov dword [ebx + 0x40], ecx
jmp 0x5caa9a
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x30], 0x65a2e8
cmp eax, edi
jne 0x5ca53b
mov dword [esp + 0x30], 0x6974f0
mov eax, dword [esp + 0x74]
add ecx, 0x18
fld dword [0x5f2898]
lea eax, [eax + eax*2]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edi
mov edx, dword [eax*4 + 0x68b0a0]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov edx, dword [edx]
mov ecx, dword [esp + ecx*4 + 0x44]
test ecx, ecx
lea edx, [edx*8 + 0x65a140]
mov dword [esp + 0x38], edx
je 0x5ca89b
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5ca5e8
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x30]
mov ecx, dword [edx]
mov ebx, dword [edi]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi]
add ebx, ecx
mov ecx, dword [esp + 0x28]
shl ebx, cl
mov ecx, dword [esp + 0x70]
add edx, 4
fstp st(0)
mov ecx, dword [ecx + 0x64]
add esi, 4
add edi, 4
add edx, 4
fld dword [ecx + ebx*4]
mov ecx, dword [edx - 4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
mov edi, dword [edx + 4]
movsx ebx, word [edi]
test ebx, ebx
mov dword [esp + 0x64], ebx
jge 0x5ca645
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
add edi, 2
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebx, ecx
and ecx, 7
sar ebx, 3
add ebx, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], ebx
jns 0x5ca631
mov ecx, dword [esp + 0x64]
neg ecx
lea edi, [edi + ecx*2]
movsx ebx, word [edi]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x64], ebx
dec edx
test ebx, ebx
mov dword [esp + 0x78], edx
jl 0x5ca5fa
mov edi, ebx
and ebx, 0xf
sar edi, 4
cmp edi, 0xf
mov dword [esp + 0x64], ebx
jne 0x5ca709
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
or ecx, 0xffffffff
mov edi, dword [edx]
mov edx, dword [esp + 0x78]
sub ecx, edi
add edx, ecx
test edi, edi
mov dword [esp + 0x78], edx
je 0x5ca6ca
mov esi, dword [eax + 0x486c]
mov ebp, dword [eax + 0x4868]
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
mov dh, byte [esi]
shl edx, 8
or edx, ecx
mov ecx, ebp
shl edx, cl
lea ecx, [edi + ebp]
mov ebp, dword [esp + 0x10]
mov ebx, ecx
and ecx, 7
mov dword [eax + 0x4868], ecx
mov ecx, 0x18
sar ebx, 3
and edx, 0xffffff
sub ecx, edi
add ebx, esi
shr edx, cl
mov dword [eax + 0x486c], ebx
mov edi, edx
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
fld st(0)
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebx, ecx
and ecx, 7
sar ebx, 3
add ebx, esi
mov dword [eax + 0x4868], ecx
mov dword [eax + 0x486c], ebx
mov ebx, dword [esp + 0x64]
fmul dword [edi*4 + 0x68ec44]
test dl, dl
jns 0x5ca704
fchs
fstp dword [ebp]
jmp 0x5ca767
test edi, edi
je 0x5ca760
mov edx, dword [esp + 0x24]
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dword [esp + 0x14], edx
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebx, ecx
and ecx, 7
sar ebx, 3
add ebx, esi
mov dword [eax + 0x4868], ecx
fld st(0)
mov dword [eax + 0x486c], ebx
fmul dword [edi*4 + 0x68ec08]
test dl, dl
jns 0x5ca74b
fchs
fstp dword [ebp]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
add ebp, 4
dec ecx
mov dword [esp + 0x78], ecx
jmp 0x5ca76a
mov dword [ebp], 0
add ebp, 4
cmp ebx, 0xf
mov dword [esp + 0x10], ebp
jne 0x5ca822
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
or ecx, 0xffffffff
mov edi, dword [edx]
mov edx, dword [esp + 0x78]
sub ecx, edi
add edx, ecx
test edi, edi
mov dword [esp + 0x78], edx
je 0x5ca7e7
mov esi, dword [eax + 0x486c]
mov ebp, dword [eax + 0x4868]
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
mov dh, byte [esi]
shl edx, 8
or edx, ecx
mov ecx, ebp
shl edx, cl
lea ecx, [edi + ebp]
mov ebp, dword [esp + 0x10]
mov ebx, ecx
and ecx, 7
mov dword [eax + 0x4868], ecx
mov ecx, 0x18
sar ebx, 3
and edx, 0xffffff
sub ecx, edi
add ebx, esi
shr edx, cl
mov dword [eax + 0x486c], ebx
mov edi, edx
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
fld st(0)
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebx, ecx
and ecx, 7
sar ebx, 3
add ebx, esi
mov dword [eax + 0x4868], ecx
mov dword [eax + 0x486c], ebx
fmul dword [edi*4 + 0x68ec44]
test dl, dl
jns 0x5ca81d
fchs
fstp dword [ebp]
jmp 0x5ca87c
test ebx, ebx
je 0x5ca875
mov edx, dword [esp + 0x24]
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dword [esp + 0x14], edx
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
fld st(0)
mov dword [eax + 0x486c], edi
fmul dword [ebx*4 + 0x68ec08]
test dl, dl
jns 0x5ca864
fchs
fstp dword [ebp]
mov ecx, dword [esp + 0x78]
add ebp, 4
dec ecx
mov dword [esp + 0x78], ecx
jmp 0x5ca87f
mov dword [ebp], 0
add ebp, 4
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
dec edx
dec ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], ecx
jne 0x5ca597
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
inc ecx
add esi, 4
cmp ecx, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], esi
jl 0x5ca572
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x5caa4a
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
test ecx, ecx
jle 0x5caa4a
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0x54]
mov ecx, dword [edx*8 + 0x65a244]
mov di, word [ecx]
test di, di
jge 0x5ca952
add ecx, 2
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x78], ecx
js 0x5ca947
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov ebx, ecx
and ecx, 7
sar ebx, 3
add ebx, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], ebx
jns 0x5ca935
mov edx, dword [esp + 0x64]
movsx ecx, di
neg ecx
lea ecx, [edx + ecx*2]
jmp 0x5ca939
mov ecx, dword [esp + 0x64]
mov di, word [ecx]
mov ebx, dword [esp + 0x1c]
test di, di
jl 0x5ca8ea
jmp 0x5ca952
mov ecx, dword [esp + 0x78]
inc ecx
xor edi, edi
mov dword [esp + 0x78], ecx
movsx edx, di
xor ecx, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x20], ecx
test cl, 1
jne 0x5ca9ba
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5ca9ad
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x30]
add ebx, 4
mov dword [esp + 0x18], ecx
mov ecx, dword [esi]
mov dword [esp + 0x24], edx
mov edx, dword [edi]
add ebx, 4
add edx, ecx
mov ecx, dword [esp + 0x28]
shl edx, cl
mov ecx, dword [esp + 0x70]
add esi, 4
fstp st(0)
mov ecx, dword [ecx + 0x64]
add edi, 4
mov dword [esp + 0x30], esi
mov dword [esp + 0x6c], edi
fld dword [ecx + edx*4]
mov ecx, dword [esp + 0x18]
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov edx, 8
sar edx, cl
mov ecx, dword [esp + 0x64]
test ecx, edx
je 0x5caa15
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x78], ecx
js 0x5caa33
mov esi, dword [eax + 0x486c]
mov ecx, dword [eax + 0x4868]
mov dl, byte [esi]
shl dl, cl
inc ecx
mov edi, ecx
and ecx, 7
sar edi, 3
add edi, esi
mov dword [eax + 0x4868], ecx
test dl, dl
mov dword [eax + 0x486c], edi
jns 0x5caa10
fld st(0)
fchs
fstp dword [ebp]
jmp 0x5caa1c
fst dword [ebp]
jmp 0x5caa1c
mov dword [ebp], 0
mov ecx, dword [esp + 0x20]
add ebp, 4
inc ecx
cmp ecx, 4
mov dword [esp + 0x20], ecx
jl 0x5ca95f
jmp 0x5caa37
inc dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
dec ecx
mov dword [esp + 0x2c], ecx
jne 0x5ca8c8
mov ecx, dword [esp + 0x68]
sub ecx, ebp
add ecx, 0x900
sar ecx, 3
fstp st(0)
je 0x5caa74
mov dword [ebp], 0
add ebp, 4
mov dword [ebp], 0
add ebp, 4
dec ecx
jne 0x5caa5d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x70]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x74]
mov dword [edx + 0x3c], esi
lea edi, [ecx + ecx*2]
shl edi, 3
sub edi, ecx
add edi, esi
mov ecx, dword [edi*4 + 0x6a8940]
mov dword [edx + 0x40], ecx
mov edi, dword [esp + 0x78]
cmp edi, 0x10
jle 0x5caadb
lea edx, [edi - 0x11]
mov esi, dword [eax + 0x486c]
shr edx, 4
mov ecx, dword [eax + 0x4868]
inc edx
mov ebx, edx
neg ebx
shl ebx, 4
add edi, ebx
add ecx, 0x10
mov ebx, ecx
and ecx, 7
sar ebx, 3
add esi, ebx
dec edx
jne 0x5caabf
mov dword [eax + 0x486c], esi
mov dword [eax + 0x4868], ecx
test edi, edi
jle 0x5cab0e
mov edx, dword [eax + 0x4868]
mov esi, dword [eax + 0x486c]
lea ecx, [edx + edi]
mov edx, ecx
sar edx, 3
add esi, edx
and ecx, 7
mov dword [eax + 0x486c], esi
mov dword [eax + 0x4868], ecx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
jge 0x5cab04
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret