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

Disassembly:
test dword [0x100d9170], 0xfffffe00
jne 0x10086fe4
test dword [0x100d9170], 0xffffffff
jne 0x10085cdc
call fcn.1007f654
jmp fcn.10085cb4
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x6c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov dword [esp + 0x40], edx
mov edi, edx
and edi, 0x7fffffff
mov dword [esp + 0x48], edi
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x64], eax
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x3c], esi
mov ecx, esi
and ecx, 0x7fffffff
mov dword [esp + 0x44], ecx
mov dword [esp + 0x60], eax
xor edx, esi
mov dword [esp + 0x5c], ebx
and edx, 0x80000000
mov dword [esp + 0x58], edx
movzx esi, di
shr edi, 0x10
mov dword [esp + 0x68], edi
movzx edx, cx
mov eax, ecx
shr eax, 0x10
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x100864d7
lea ebx, [eax - 1]
cmp ebx, 0x7ffd
ja 0x100864d7
mov ebx, dword [esp + 0x68]
or esi, 0x10000
or edx, 0x10000
lea ebx, [ebx + eax - 0x4000]
add esp, 0xffffffd0
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
mov dword [esp], edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x80]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x48]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x58]
call fcn.10086c84
add esp, 0x30
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov esi, eax
and esi, 2
or esi, ecx
je 0x10085e7e
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edi, edx
shr edi, 0x11
shl edx, 0xf
shl eax, 0xf
or edi, eax
mov dword [esp + 0x1c], edi
mov eax, ecx
shr eax, 0x11
or edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x2c]
mov edi, esi
shr edi, 0x11
shl esi, 0xf
shl ecx, 0xf
or edi, ecx
mov dword [esp + 0x24], edi
mov ecx, edx
shr ecx, 0x11
or esi, ecx
mov ecx, dword [esp + 0x30]
or ecx, dword [esp + 0x34]
mov dword [esp + 0x20], esi
je 0x10085e60
mov ecx, 1
jmp 0x10085e62
xor ecx, ecx
mov esi, eax
shr esi, 0x11
shl eax, 0xf
shl edx, 0xf
or esi, edx
or eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
add ebx, 1
jmp 0x10085ef0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edi, edx
shr edi, 0x10
shl edx, 0x10
shl eax, 0x10
or edi, eax
mov dword [esp + 0x1c], edi
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x2c]
mov edi, esi
shr edi, 0x10
shl esi, 0x10
shl ecx, 0x10
or edi, ecx
mov dword [esp + 0x24], edi
mov ecx, edx
shr ecx, 0x10
or esi, ecx
mov ecx, dword [esp + 0x30]
or ecx, dword [esp + 0x34]
mov dword [esp + 0x20], esi
je 0x10085ed7
mov ecx, 1
jmp 0x10085ed9
xor ecx, ecx
mov esi, eax
shr esi, 0x10
shl eax, 0x10
shl edx, 0x10
or esi, edx
or eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
cmp ebx, 0x7ffd
jae 0x10086040
or eax, esi
je 0x1008600f
fnstcw word [esp + 0x38]
mov edx, dword [esp + 0x38]
mov eax, dword [0x100ce730]
mov ecx, dword [0x100ce734]
fld qword [eax]
fadd qword [ecx]
fstp qword [esp + 0x10]
and edx, 0xc00
jne 0x10085f35
mov eax, dword [esp + 0x2c]
sub eax, 0
jl 0x10085f65
jmp 0x10085fcc
cmp edx, 0xc00
je 0x10085fcc
xor eax, eax
or eax, dword [esp + 0x58]
je 0x10085f56
xor eax, eax
cmp edx, 0x400
sete al
jmp 0x10085f61
xor eax, eax
cmp edx, 0x800
sete al
test eax, eax
je 0x10085fcc
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
add ecx, 1
adc esi, 0
mov eax, ecx
or eax, esi
je 0x10085f8b
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edi
jmp 0x10085fa1
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add eax, 1
adc edi, 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add edi, edi
adc eax, eax
or edi, eax
jne 0x10085fb8
mov edi, 1
jmp 0x10085fba
xor edi, edi
xor eax, eax
test edx, edx
sete al
and eax, edi
not eax
cdq
and ecx, eax
and esi, edx
jmp 0x10085fe4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x5c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], esi
shl ebx, 0x10
add edx, ebx
mov ebx, dword [esp + 0x58]
or ebx, edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
mov dword [edi], eax
mov dword [edi + 4], edx
shl ebx, 0x10
add ebx, dword [esp + 0x1c]
or esi, ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ecx, edx
and ecx, 0xc00
jne 0x10086061
mov eax, dword [esp + 0x2c]
sub eax, 0
jl 0x1008612d
jmp 0x1008608b
cmp ecx, 0xc00
je 0x1008608b
xor eax, eax
or eax, dword [esp + 0x58]
je 0x1008607f
cmp ecx, 0x400
je 0x1008611f
jmp 0x1008608b
cmp ecx, 0x800
je 0x100864bf
xor eax, eax
cmp ebx, 0x7ffd
jle 0x10086108
mov eax, dword [0x100ce738]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x10]
cmp ecx, 0xc00
je 0x10086173
mov edx, dword [esp + 0x58]
xor eax, eax
or edx, eax
je 0x100860c7
cmp ecx, 0x800
je 0x10086137
mov ecx, 1
jmp 0x100860d5
cmp ecx, 0x400
je 0x1008616f
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1748]
mov edx, dword [ecx + 0x100c174c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1750]
mov ecx, dword [ecx + 0x100c1754]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
je 0x1008647b
test ebx, ebx
jl 0x1008617f
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
jmp 0x10085efc
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x1008608b
mov eax, 1
jmp 0x1008608d
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x100c1798]
mov edx, dword [ebx + 0x100c179c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x100c17a0]
mov ebx, dword [ebx + 0x100c17a4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x1008613c
mov edx, dword [esp + 0x58]
xor eax, eax
or edx, eax
jne 0x10086137
jmp 0x1008616f
cmp ebx, 0xffffffff
jge 0x10086196
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], ecx
jmp 0x100861fa
test eax, eax
jne 0x100861ac
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], ecx
jmp 0x100861fa
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, edi
sub eax, 0xffffffff
mov ecx, esi
sbb ecx, 0x1ffff
jae 0x100861d5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], ecx
jmp 0x100861fa
add edi, 1
add esi, 0xfffe0001
or edi, esi
jne 0x10086205
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
sub eax, 0xffffffff
mov dword [esp + 0x40], ecx
sbb ecx, 0xffffffff
jae 0x10086215
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x1008621b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], ecx
xor eax, eax
mov dword [esp + 0x3c], eax
neg ebx
mov eax, ebx
and eax, 0x3f
mov dword [esp + 8], eax
mov ecx, ebx
neg ecx
and ecx, 0x3f
mov dword [esp + 0x64], ecx
cmp ebx, 0x40
jge 0x10086336
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x1008624b
mov ebx, 1
jmp 0x1008624d
xor ebx, ebx
mov eax, ecx
cmp eax, 0x1f
ja 0x10086263
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
shld esi, eax, cl
shl eax, cl
jmp 0x1008626b
mov esi, dword [esp + 0xc]
xor eax, eax
shl esi, cl
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x2c], esi
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x44], ebx
cmp edi, 0x1f
ja 0x100862a1
mov ecx, edi
mov edi, ebx
mov ebx, dword [esp + 4]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0x48], ebx
jmp 0x100862af
mov ecx, edi
mov edi, dword [esp + 4]
xor ebx, ebx
mov dword [esp + 0x48], ebx
shl edi, cl
mov ecx, dword [esp + 8]
cmp ecx, 0x1f
ja 0x100862d7
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0xc]
shrd edi, ebx, cl
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x68]
shr ebx, cl
mov dword [esp + 0x60], ebx
jmp 0x100862e7
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x40]
shr ebx, cl
mov dword [esp + 0xc], ebx
or edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 8]
or ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
cmp ebx, 0x1f
mov dword [esp + 0x24], edi
ja 0x10086319
mov ecx, ebx
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 4], edi
jmp 0x10086327
mov ecx, ebx
mov edi, dword [esp + 0x44]
xor ebx, ebx
shr edi, cl
mov dword [esp + 4], edi
mov ecx, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
jmp 0x100863e6
je 0x10086443
cmp ebx, 0x80
jge 0x100863c1
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x2c]
or ecx, eax
je 0x10086363
mov eax, 1
mov dword [esp + 0x40], eax
jmp 0x10086369
xor eax, eax
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x44], eax
cmp ecx, 0x1f
ja 0x10086389
mov esi, eax
shld esi, ebx, cl
mov eax, ebx
shl eax, cl
jmp 0x1008638f
xor eax, eax
mov esi, ebx
shl esi, cl
or eax, dword [esp + 0x40]
mov ecx, dword [esp + 8]
cmp ecx, 0x1f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
ja 0x100863af
mov edi, dword [esp + 0x44]
shrd ebx, edi, cl
shr edi, cl
jmp 0x100863b7
mov ebx, dword [esp + 0x44]
xor edi, edi
shr ebx, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edi
jmp 0x100863dc
mov dword [esp + 0x28], 1
mov eax, 1
xor esi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x1008643c
or eax, esi
je 0x1008640e
mov eax, dword [0x100ce734]
fld qword [eax]
fmul st(0)
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
fstp qword [esp + 0x10]
xor ebx, ebx
jmp 0x10085efc
test dl, 0x10
jne 0x10086435
mov eax, dword [0x100ce734]
fld qword [eax]
mov edx, dword [0x100ce73c]
fmul qword [edx]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
fstp qword [esp + 0x10]
xor ebx, ebx
jmp 0x10085efc
xor ebx, ebx
jmp 0x1008600f
xor ebx, ebx
jmp 0x10085efc
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x10086454
mov eax, 1
jmp 0x10086456
xor eax, eax
or eax, dword [esp + 0xc]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
jmp 0x100863dc
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add esi, 1
add edx, 0xfffe0001
or esi, edx
jne 0x10086112
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add esi, 1
add edx, 1
or esi, edx
jne 0x10086112
test eax, eax
jne 0x10086095
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
jmp 0x10085efc
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x1008608b
mov eax, 1
jmp 0x1008608d
mov ebx, dword [esp + 0x50]
or ebx, dword [esp + 0x4c]
je 0x100864ec
mov ebx, 1
mov dword [esp + 0xc], ebx
jmp 0x100864f2
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov edi, ebx
or edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xc], edi
or ebx, edi
jne 0x10086515
xor ebx, ebx
mov dword [esp + 8], ebx
mov edi, 1
mov dword [esp + 4], edi
jmp 0x1008657b
mov ebx, dword [esp + 0x48]
sub ebx, 0x10000
jae 0x10086530
mov ebx, 2
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
jmp 0x1008657b
mov ebx, dword [esp + 0x48]
sub ebx, 0x7fff0000
jae 0x1008654d
xor ebx, ebx
mov dword [esp + 8], ebx
mov edi, 4
mov dword [esp + 4], edi
jmp 0x1008657b
mov edi, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 8], ebx
sub edi, 0x7fff0000
jb 0x10086572
mov ebx, dword [esp + 0xc]
or ebx, edi
je 0x10086572
mov ebx, 0x10
mov dword [esp + 4], ebx
jmp 0x1008657b
mov ebx, 8
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x60]
or ebx, dword [esp + 0x5c]
je 0x10086590
mov ebx, 1
mov dword [esp + 0xc], ebx
jmp 0x10086596
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov edi, ebx
or edi, dword [esp + 0x64]
mov ebx, ecx
mov dword [esp + 0xc], edi
or ebx, edi
jne 0x100865b1
mov ebx, 1
mov dword [esp + 0xc], ebx
jmp 0x10086602
mov ebx, ecx
sub ebx, 0x10000
jae 0x100865cb
or dword [esp + 8], 2
mov ebx, 2
mov dword [esp + 0xc], ebx
jmp 0x10086602
mov ebx, ecx
sub ebx, 0x7fff0000
jae 0x100865e0
mov ebx, 4
mov dword [esp + 0xc], ebx
jmp 0x10086602
mov ebx, ecx
sub ebx, 0x7fff0000
jb 0x100865f9
or edi, ebx
je 0x100865f9
mov ebx, 0x10
mov dword [esp + 0xc], ebx
jmp 0x10086602
mov ebx, 8
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x68]
or ebx, dword [esp + 0xc]
cmp edi, 0x7fff
je 0x100869dc
cmp eax, 0x7fff
je 0x100869dc
test bl, 1
je 0x1008668b
mov eax, dword [esp + 8]
test eax, eax
je 0x10086645
mov eax, dword [0x100ce72c]
fld qword [eax]
mov edx, dword [0x100ce730]
fmul qword [edx]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x58]
xor eax, eax
or edx, eax
je 0x10086656
mov ecx, 1
jmp 0x10086658
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1778]
mov edx, dword [ecx + 0x100c177c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1780]
mov ecx, dword [ecx + 0x100c1784]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 4]
cmp ebx, edi
je 0x10086809
mov ebx, dword [0x100ce72c]
fld qword [ebx]
mov edi, dword [0x100ce730]
fmul qword [edi]
mov ebx, dword [esp + 4]
fstp qword [esp + 0x10]
cmp ebx, 2
je 0x1008686c
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
or eax, edx
je 0x100866d3
mov eax, 0xfffffff1
jmp 0x100866e8
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, 0x31
mov ebx, dword [esp + 0xc]
sub ebx, 1
jae 0x100866f6
add eax, 0x20
jmp 0x100866fe
mov ebx, dword [esp + 0xc]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 8]
bsr edi, ebx
sub eax, edi
add eax, 0x1f
cmp eax, 0x40
jge 0x100867bc
cmp eax, 0x1f
ja 0x1008672b
mov ebx, dword [esp + 0x64]
mov ecx, eax
shld edx, ebx, cl
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x3c], ebx
jmp 0x10086739
xor edx, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x64]
mov ecx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x10086764
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esp], esi
mov esi, edi
shrd ebx, esi, cl
mov esi, dword [esp]
mov dword [esp + 0x64], ebx
shr edi, cl
mov dword [esp + 0x40], edi
jmp 0x10086774
mov edi, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x40], ebx
shr edi, cl
mov dword [esp + 0x64], edi
or edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
or ebx, dword [esp + 0x3c]
mov dword [esp + 0x64], ebx
cmp eax, 0x1f
ja 0x100867a4
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov ecx, eax
shld edi, ebx, cl
mov dword [esp + 0x5c], edi
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x40], ebx
jmp 0x100867b6
mov edi, dword [esp + 0x60]
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov ecx, eax
shl edi, cl
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], ebx
jmp 0x100867ff
je 0x100867e9
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x100867db
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x64], ebx
jmp 0x100867f5
xor edx, edx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x60]
shl edx, cl
jmp 0x100867f5
mov edx, dword [esp + 0x60]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
neg eax
add eax, 1
jmp 0x10085d78
fnstcw word [esp + 0x38]
mov ebx, dword [esp + 0x38]
mov eax, dword [0x100ce734]
fld qword [eax]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x58]
mov edx, dword [0x100ce72c]
fmul qword [edx]
fstp qword [esp + 0x10]
je 0x1008683f
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x1008684a
xor eax, eax
cmp ebx, 0x800
sete al
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], 0
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], esi
or ebx, esi
je 0x10086887
mov ebx, 0xfffffff1
mov dword [esp + 0x68], ebx
jmp 0x100868a0
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], edi
mov ebx, 0x31
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x3c]
sub ebx, 1
jae 0x100868b0
add dword [esp + 0x68], 0x20
jmp 0x100868b8
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x44]
bsr edi, ebx
mov ebx, dword [esp + 0x68]
sub ebx, edi
add ebx, 0x1f
mov dword [esp + 0x68], ebx
cmp ebx, 0x40
jge 0x10086984
cmp ebx, 0x1f
ja 0x100868eb
mov ecx, ebx
mov ebx, dword [esp + 0x54]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x44], ebx
jmp 0x100868f9
mov ecx, ebx
mov esi, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x44], ebx
shl esi, cl
mov ebx, ecx
neg ebx
and ebx, 0x3f
cmp ebx, 0x1f
mov dword [esp + 0xc], ebx
ja 0x10086928
mov ecx, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp], esi
mov esi, dword [esp + 0x4c]
shrd ebx, esi, cl
mov dword [esp + 0x54], ebx
shr esi, cl
mov dword [esp + 0x40], esi
mov esi, dword [esp]
jmp 0x1008693a
mov ecx, ebx
mov edi, dword [esp + 0x4c]
xor ebx, ebx
mov dword [esp + 0x40], ebx
shr edi, cl
mov dword [esp + 0x54], edi
or esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
or ebx, dword [esp + 0x44]
mov dword [esp + 0x54], ebx
cmp edi, 0x1f
ja 0x1008696c
mov ecx, edi
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
shld edi, ebx, cl
mov dword [esp + 0x4c], edi
shl ebx, cl
mov dword [esp + 0x44], ebx
jmp 0x1008697e
mov ecx, edi
mov edi, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x44], ebx
shl edi, cl
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], ebx
jmp 0x100869ca
cmp ebx, 0x40
je 0x100869b4
mov ecx, ebx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x100869a6
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x54], ebx
jmp 0x100869c0
mov esi, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x54], ebx
shl esi, cl
jmp 0x100869c0
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x54], ebx
xor ebx, ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x68]
neg ebx
add ebx, 1
mov dword [esp + 0x68], ebx
jmp 0x10085d78
test bl, 0x10
je 0x10086bde
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
cmp eax, edx
je 0x10086a5f
mov eax, edx
cmp eax, 0x10
je 0x10086a13
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov ebx, dword [ebp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x10086a2c
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ebx, dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
xor edx, edx
mov ecx, ebx
and ecx, 0x8000
or ecx, edx
jne 0x10086bc5
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x100ce728]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x10]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x10086bc5
mov edx, dword [esp + 0x40]
and edx, 0x8000
xor eax, eax
or edx, eax
je 0x10086a76
mov eax, 1
jmp 0x10086a78
xor eax, eax
mov ecx, dword [esp + 0x3c]
and ecx, 0x8000
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0x40], edx
xor eax, eax
or ecx, eax
je 0x10086a9a
mov edx, 1
jmp 0x10086a9c
xor edx, edx
xor eax, eax
test edx, edx
sete al
mov edx, dword [esp + 0x40]
or edx, eax
je 0x10086ab9
mov edx, dword [0x100ce728]
fld qword [edx]
fdiv st(0)
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp eax, edx
je 0x10086ae6
mov eax, edx
test eax, eax
je 0x10086b81
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x10086bc5
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
sub eax, edx
sbb ecx, ebx
jb 0x10086b26
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
sub eax, dword [esp + 0x64]
sub edx, dword [esp + 0x44]
or eax, edx
jne 0x10086b41
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x5c]
sub eax, edx
sbb ecx, ebx
jae 0x10086b41
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x10086bc5
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
sub eax, edx
sbb ecx, ebx
jb 0x10086b81
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
or edx, eax
jne 0x10086b99
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x5c]
sub edx, eax
sbb ebx, ecx
jae 0x10086b99
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x10086bc5
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x10086acb
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
or ebx, 0x8000
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test bl, 1
je 0x10086c20
mov eax, dword [0x100ce728]
fld qword [eax]
fdiv st(0)
mov edi, dword [ebp + 8]
fstp qword [esp + 0x10]
mov edx, dword [0x100c1768]
mov ecx, dword [0x100c176c]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x100c1770]
mov esi, dword [0x100c1774]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
test eax, eax
je 0x10086c3b
mov eax, dword [0x100ce72c]
fld qword [eax]
mov edx, dword [0x100ce730]
fmul qword [edx]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x58]
xor eax, eax
or edx, eax
je 0x10086c4c
mov ecx, 1
jmp 0x10086c4e
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1748]
mov edx, dword [ecx + 0x100c174c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1750]
mov ecx, dword [ecx + 0x100c1754]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x94
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov esi, dword [edi + 8]
mov dword [esp + 0x74], ecx
mov ebx, ecx
and ebx, 0x7fffffff
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [edx]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, edx
mov dword [esp + 0x70], edx
and eax, 0x7fffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], esi
mov esi, dword [edi + 4]
mov dword [esp + 0x58], esi
mov esi, dword [edi]
xor ecx, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x8c]
and ecx, 0x80000000
mov dword [esp + 0x60], ecx
movzx edx, bx
mov dword [esp + 0x88], edx
shr ebx, 0x10
mov dword [esp + 0x68], ebx
movzx edx, ax
mov dword [esp + 0x84], edx
shr eax, 0x10
lea edx, [ebx - 1]
cmp edx, 0x7ffd
ja 0x10087923
lea edx, [eax - 1]
cmp edx, 0x7ffd
ja 0x10087923
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
lea eax, [edx + eax - 0x4000]
mov dword [esp + 0x78], eax
mov eax, ecx
mul edi
or dword [esp + 0x88], 0x10000
or ebx, 0x10000
mov dword [esp + 0x7c], eax
mov eax, ecx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x58]
mul edx
mov dword [esp + 0x68], eax
mov eax, ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x5c]
mul edx
mov dword [esp + 0x10], eax
mov eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mul ebx
mov dword [esp + 0x6c], eax
mov eax, edi
mov dword [esp + 0x18], edx
mul esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, ecx
mul esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
mul esi
mov dword [esp + 0x2c], eax
mov eax, ebx
mov dword [esp + 0x30], edx
mul esi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x34], edx
mov eax, edi
mul esi
mov dword [esp + 0x38], eax
mov eax, ecx
mov dword [esp + 0x3c], edx
mul esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], edx
mul esi
mov dword [esp + 0x48], eax
mov eax, ebx
mov dword [esp + 0x4c], edx
mul esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x70], edx
mov eax, edi
mov edi, dword [esp + 0x88]
mul edi
mov dword [esp + 0x64], edx
mov esi, eax
mov eax, ecx
mul edi
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
mul edi
mov dword [esp + 0x5c], eax
mov eax, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x54], edx
mul edi
xor edi, edi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x68]
add ecx, edx
adc edi, 0
mov edx, dword [esp + 0x1c]
add ecx, edx
mov edx, dword [esp + 0x10]
adc edi, 0
mov dword [esp + 0x74], ecx
xor ecx, ecx
add ebx, edx
mov edx, dword [esp + 0x20]
adc ecx, 0
add edx, eax
mov eax, 0
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x38]
add edx, edi
mov edi, 0
adc edi, 0
mov eax, dword [esp + 0x2c]
add ebx, edx
mov edx, dword [esp + 0x14]
adc ecx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x6c]
add edx, ebx
mov ebx, 0
adc ebx, 0
add edi, eax
mov eax, 0
adc eax, 0
add edx, edi
adc ebx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
add eax, edi
mov edi, 0
adc edi, 0
add esi, ecx
mov ecx, 0
adc ecx, 0
add eax, esi
adc edi, ecx
mov esi, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x8c]
adc ebx, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x44]
add esi, eax
mov eax, 0
adc eax, 0
add ecx, edx
mov edx, 0
adc edx, 0
add esi, ecx
adc eax, edx
mov edx, dword [esp + 0x64]
xor ecx, ecx
add edi, edx
adc ecx, 0
mov edx, dword [esp + 0x58]
add edx, ebx
mov ebx, 0
adc ebx, 0
add edi, edx
adc ecx, ebx
mov ebx, dword [esp + 0x34]
add esi, edi
adc eax, ecx
mov edx, dword [esp + 0x4c]
add ebx, edx
mov edx, 0
adc edx, 0
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x50]
add ecx, edi
mov edi, 0
adc edi, 0
add ebx, ecx
adc edx, edi
mov ecx, dword [esp + 0x5c]
add ecx, eax
mov eax, 0
adc eax, 0
mov edi, dword [esp + 0x70]
add ebx, ecx
adc edx, eax
mov eax, dword [esp + 0x54]
add edi, eax
mov eax, 0
adc eax, 0
mov ecx, dword [esp + 0x88]
add ecx, edx
mov edx, dword [esp + 0x84]
adc edx, 0
add edi, ecx
adc eax, edx
mov edx, dword [esp + 0xc]
or edx, dword [esp + 0x74]
xor ecx, ecx
or edx, dword [esp + 0x7c]
mov dword [esp + 0x70], edi
mov edx, 1
cmovne ecx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
test al, 2
je 0x10087373
mov ecx, edi
add dword [esp + 0x78], 1
shl eax, 0xf
mov edi, ecx
shr edi, 0x11
or eax, edi
shl ecx, 0xf
mov edi, ebx
shr edi, 0x11
or ecx, edi
mov dword [esp + 0x70], ecx
shl ebx, 0xf
mov ecx, esi
shr ecx, 0x11
or ebx, ecx
shl esi, 0xf
mov ecx, edx
shr ecx, 0x11
or esi, ecx
shl edx, 0xf
or edx, dword [esp + 0x74]
jmp 0x100873a8
mov ecx, edi
shl eax, 0x10
mov edi, ecx
shr edi, 0x10
or eax, edi
shl ecx, 0x10
mov edi, ebx
shr edi, 0x10
or ecx, edi
mov dword [esp + 0x70], ecx
shl ebx, 0x10
mov ecx, esi
shr ecx, 0x10
or ebx, ecx
shl esi, 0x10
mov ecx, edx
shr ecx, 0x10
or esi, ecx
shl edx, 0x10
or edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
cmp ecx, 0x7ffd
jae 0x100874cc
test edx, edx
je 0x100877da
fnstcw word [esp + 8]
mov ecx, dword [esp + 8]
mov edi, dword [0x100ce730]
movsd xmm0, qword [edi]
and ecx, 0xc00
mov dword [esp + 0x80], ecx
mov ecx, dword [0x100ce734]
addsd xmm0, qword [ecx]
movsd qword [esp], xmm0
jne 0x100873fb
mov ecx, edx
shr ecx, 0x1f
mov dword [esp + 0x7c], ecx
jmp 0x10087454
mov ecx, dword [esp + 0x80]
cmp ecx, 0xc00
je 0x1008749e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x10087436
mov edi, dword [esp + 0x80]
mov ecx, 1
cmp edi, 0x400
mov edi, 0
cmove edi, ecx
mov dword [esp + 0x7c], edi
jmp 0x10087454
mov edi, dword [esp + 0x80]
mov ecx, 1
cmp edi, 0x800
mov edi, 0
cmove edi, ecx
mov dword [esp + 0x7c], edi
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x1008749e
add esi, 1
jne 0x10087477
add ebx, 1
jne 0x10087477
mov ecx, dword [esp + 0x70]
lea edi, [eax + 1]
add ecx, 1
cmove eax, edi
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x80]
mov edi, 1
cmp ecx, 0
mov ecx, 0
cmove ecx, edi
add edx, edx
mov edx, 0
cmove edx, edi
and ecx, edx
not ecx
and esi, ecx
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x70]
mov dword [edx], esi
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x78]
mov dword [edx + 8], ecx
shl ebx, 0x10
add ebx, eax
mov eax, dword [esp + 0x60]
or eax, ebx
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
and ecx, 0xc00
jne 0x100874ee
mov edi, edx
shr edi, 0x1f
mov dword [esp + 0x88], edi
jmp 0x10087521
cmp ecx, 0xc00
je 0x10087518
mov edi, dword [esp + 0x60]
test edi, edi
je 0x1008750c
cmp ecx, 0x400
je 0x100878b3
jmp 0x10087518
cmp ecx, 0x800
je 0x1008790a
xor edi, edi
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x78]
cmp edi, 0x7ffd
jle 0x100875b4
mov eax, dword [0x100ce738]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp], xmm0
cmp ecx, 0xc00
je 0x1008786c
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10087565
cmp ecx, 0x800
je 0x1008786c
jmp 0x10087571
cmp ecx, 0x400
je 0x1008786c
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1748]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c174c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1750]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1754]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edi, 0x7ffd
je 0x100878cc
mov ecx, edi
test ecx, ecx
jge 0x100873b8
cmp ecx, 0xffffffff
jl 0x100875fd
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x100875fd
cmp eax, 0x1ffff
jb 0x100875fd
jne 0x10087608
mov ecx, dword [esp + 0x70]
cmp ecx, 0xffffffff
jb 0x100875fd
cmp ecx, 0xffffffff
jne 0x10087608
cmp ebx, 0xffffffff
jb 0x100875fd
jne 0x10087608
cmp esi, 0xffffffff
jae 0x10087608
mov ecx, 1
mov dword [esp + 0x58], ecx
jmp 0x1008760e
xor ecx, ecx
mov dword [esp + 0x58], ecx
neg edi
mov dword [esp + 0x78], edi
mov ecx, edi
neg ecx
cmp edi, 0x20
mov dword [esp + 0x5c], ecx
jge 0x1008768c
mov dword [esp + 0x54], eax
mov eax, ecx
mov ecx, eax
mov edi, esi
shl edi, cl
mov ecx, 1
cmp edx, 0
mov edx, 0
cmovne edx, ecx
mov ecx, eax
or edx, edi
mov edi, ebx
shl edi, cl
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
mov ecx, edx
shr esi, cl
mov ecx, eax
or esi, edi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x70]
mov edi, esi
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x54]
or ebx, edi
mov edi, eax
shl edi, cl
mov ecx, edx
shr esi, cl
mov ecx, edx
shr eax, cl
mov edx, dword [esp + 0x14]
or esi, edi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x18]
jmp 0x1008777c
mov ecx, edi
cmp ecx, 0x20
je 0x1008784b
cmp ecx, 0x40
jge 0x100876f0
mov ecx, dword [esp + 0x5c]
mov edi, ebx
shl edi, cl
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x70]
or esi, edx
mov esi, 1
mov edx, 0
cmovne edx, esi
mov esi, edi
or edx, dword [esp + 0x50]
shl esi, cl
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
mov ecx, edx
shr ebx, cl
or esi, ebx
mov ecx, dword [esp + 0x5c]
mov ebx, eax
shl ebx, cl
mov ecx, edx
shr edi, cl
mov ecx, edx
mov edx, dword [esp + 0x14]
or ebx, edi
shr eax, cl
mov dword [esp + 0x70], eax
jmp 0x1008777a
cmp ecx, 0x40
je 0x1008782f
cmp ecx, 0x60
jge 0x10087731
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
shl edi, cl
or esi, ebx
mov ebx, dword [esp + 0x70]
or esi, edx
mov edx, 0
mov esi, 1
cmovne edx, esi
mov esi, eax
shl esi, cl
mov ecx, dword [esp + 0x78]
or edx, edi
shr ebx, cl
or esi, ebx
mov ebx, eax
shr ebx, cl
jmp 0x10087774
cmp ecx, 0x60
je 0x10087813
cmp ecx, 0x80
jge 0x1008776b
or ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x5c]
mov edi, eax
shl edi, cl
mov ecx, dword [esp + 0x78]
or ebx, esi
or ebx, edx
mov ebx, 1
mov edx, 0
cmovne edx, ebx
mov esi, eax
shr esi, cl
or edx, edi
jmp 0x10087772
mov edx, 1
xor esi, esi
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x70], eax
xor eax, eax
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x10087808
test edx, edx
je 0x100877aa
mov ecx, dword [0x100ce734]
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp], xmm0
xor edi, edi
mov dword [esp + 0x78], edi
jmp 0x100873c0
mov edx, dword [esp + 0xc]
test dl, 0x10
jne 0x100877d4
mov edx, dword [0x100ce734]
mov ecx, dword [0x100ce73c]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx]
movsd qword [esp], xmm0
xor edi, edi
mov dword [esp + 0x78], edi
jmp 0x100877da
xor edx, edx
mov dword [esp + 0x78], edx
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x70]
mov dword [edx], esi
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x78]
mov dword [edx + 8], ecx
shl ebx, 0x10
add ebx, eax
mov eax, dword [esp + 0x60]
or eax, ebx
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov dword [esp + 0x78], ecx
jmp 0x100873b8
or esi, ebx
or esi, edx
mov ecx, 1
mov edx, 0
cmovne edx, ecx
or edx, dword [esp + 0x70]
mov esi, eax
jmp 0x10087772
or esi, edx
mov ecx, 1
mov edx, 0
cmovne edx, ecx
or edx, ebx
mov ebx, eax
mov esi, dword [esp + 0x70]
jmp 0x10087774
mov ecx, 1
cmp edx, 0
mov edx, 0
cmovne edx, ecx
or edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x70], eax
jmp 0x1008777a
mov eax, dword [esp + 0x60]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1798]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c179c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c17a0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c17a4]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x10087518
mov edi, 1
mov dword [esp + 0x88], edi
jmp 0x10087521
cmp eax, 0x1ffff
jne 0x100873b8
mov edi, dword [esp + 0x70]
cmp edi, 0xffffffff
jne 0x100873b8
cmp ebx, 0xffffffff
jne 0x100873b8
cmp esi, 0xffffffff
jne 0x100873b8
mov edi, dword [esp + 0x88]
test edi, edi
jne 0x10087531
jmp 0x100873b8
test edx, edx
je 0x10087518
mov edi, 1
mov dword [esp + 0x88], edi
jmp 0x10087521
mov edx, dword [esp + 0x80]
or edx, esi
mov ebx, 1
or edx, dword [esp + 0x6c]
mov edx, 0
cmovne edx, ebx
or edx, dword [esp + 0x7c]
jne 0x10087950
xor ebx, ebx
mov edx, 1
mov dword [esp + 0xc], edx
jmp 0x1008798b
cmp edx, 0x10000
jae 0x10087963
mov ebx, 2
mov dword [esp + 0xc], ebx
jmp 0x1008798b
cmp edx, 0x7fff0000
jae 0x10087978
xor ebx, ebx
mov edx, 4
mov dword [esp + 0xc], edx
jmp 0x1008798b
mov edi, 0x10
mov edx, 8
cmova edx, edi
xor ebx, ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x5c]
or edx, dword [esp + 0x58]
mov edi, 1
or edx, dword [esp + 0x64]
mov edx, 0
cmovne edx, edi
or edx, dword [esp + 0x78]
jne 0x100879b1
mov edx, 1
jmp 0x100879df
cmp edx, 0x10000
jae 0x100879c3
or ebx, 2
mov edx, 2
jmp 0x100879df
cmp edx, 0x7fff0000
jae 0x100879d2
mov edx, 4
jmp 0x100879df
mov edi, 0x10
mov edx, 8
cmova edx, edi
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x68]
or edi, edx
cmp ecx, 0x7fff
je 0x10087e4f
cmp eax, 0x7fff
je 0x10087e4f
test edi, 1
je 0x10087a6b
test ebx, ebx
je 0x10087a24
mov eax, dword [0x100ce72c]
mov edx, dword [0x100ce730]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x60]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1778]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c177c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1780]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1784]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
cmp edx, ebx
je 0x10087bfe
mov edx, dword [0x100ce72c]
mov ebx, dword [0x100ce730]
mov edi, dword [esp + 0xc]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ebx]
movsd qword [esp], xmm0
cmp edi, 2
je 0x10087ca7
mov eax, dword [esp + 0x84]
test eax, eax
je 0x10087ab1
mov edx, eax
shl edx, 0xf
xor eax, eax
jmp 0x10087add
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10087ac2
mov edx, eax
mov eax, 0x11
jmp 0x10087add
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
cmp eax, 0
cmovne edx, eax
mov ebx, 0x31
mov eax, 0x51
cmovne eax, ebx
bsr edx, edx
sub eax, edx
add eax, 0x1f
mov ebx, eax
neg ebx
mov dword [esp + 0x7c], ebx
cmp eax, 0x20
jge 0x10087b4b
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x5c]
mov ecx, eax
shl ebx, cl
mov edx, edi
mov ecx, dword [esp + 0x7c]
shr edx, cl
mov ecx, eax
shl edi, cl
mov ecx, dword [esp + 0x7c]
or ebx, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x84], ebx
mov ebx, edx
shr ebx, cl
mov ecx, eax
shl edx, cl
mov ecx, dword [esp + 0x7c]
or edi, ebx
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x64]
mov ebx, edi
shr ebx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x64], edi
or edx, ebx
mov dword [esp + 0x58], edx
jmp 0x10087bf4
je 0x10087c87
cmp eax, 0x40
jge 0x10087b99
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ecx, eax
shl ebx, cl
mov edi, edx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x7c]
mov ecx, ebx
shr edi, cl
mov ecx, eax
shl edx, cl
or edi, dword [esp + 0x5c]
mov ecx, ebx
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x64]
mov ebx, edi
shr ebx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x58], edi
or ebx, edx
mov dword [esp + 0x5c], ebx
jmp 0x10087bee
je 0x10087c6f
cmp eax, 0x60
jge 0x10087bcb
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov ecx, eax
shl edx, cl
mov ebx, edi
mov ecx, dword [esp + 0x7c]
shr ebx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x5c], edi
or ebx, edx
mov dword [esp + 0x84], ebx
jmp 0x10087be8
mov edx, dword [esp + 0x64]
mov ecx, eax
mov ebx, edx
shl ebx, cl
cmp eax, 0x60
cmove ebx, edx
mov dword [esp + 0x84], ebx
xor edi, edi
mov dword [esp + 0x5c], edi
xor edx, edx
mov dword [esp + 0x58], edx
xor edx, edx
mov dword [esp + 0x64], edx
neg eax
add eax, 1
jmp 0x1008709b
fnstcw word [esp + 8]
mov ebx, dword [esp + 8]
mov eax, dword [0x100ce734]
mov edx, dword [0x100ce72c]
mov ecx, dword [esp + 0x60]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
and ebx, 0xc00
test ecx, ecx
je 0x10087c3e
mov eax, 1
xor edx, edx
cmp ebx, 0x400
cmove edx, eax
jmp 0x10087c4e
mov eax, 1
xor edx, edx
cmp ebx, 0x800
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x60]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x84], edx
mov dword [esp + 0x5c], ebx
jmp 0x10087be8
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x84], edx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
jmp 0x10087bee
mov edx, dword [esp + 0x88]
test edx, edx
je 0x10087cbd
shl edx, 0xf
xor ebx, ebx
mov dword [esp + 0x68], ebx
jmp 0x10087cee
mov edx, dword [esp + 0x80]
test edx, edx
je 0x10087cd3
mov ebx, 0x11
mov dword [esp + 0x68], ebx
jmp 0x10087cee
mov edx, dword [esp + 0x6c]
cmp esi, 0
cmovne edx, esi
mov ebx, 0x31
mov edi, 0x51
cmovne edi, ebx
mov dword [esp + 0x68], edi
bsr edx, edx
mov ebx, dword [esp + 0x68]
sub ebx, edx
add ebx, 0x1f
mov dword [esp + 0x68], ebx
mov edx, ebx
neg edx
cmp ebx, 0x20
jge 0x10087d65
mov edi, dword [esp + 0x88]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
mov ecx, ebx
shl edi, cl
mov dword [esp + 0x88], edi
mov ecx, edx
mov edi, eax
shr edi, cl
or dword [esp + 0x88], edi
mov ecx, ebx
shl eax, cl
mov ecx, edx
mov edi, esi
shr edi, cl
mov ecx, ebx
shl esi, cl
or eax, edi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x6c]
mov ecx, edx
mov edx, eax
shr edx, cl
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x6c], eax
or esi, edx
mov eax, dword [esp + 0x54]
jmp 0x10087e0e
cmp ebx, 0x20
je 0x10087e34
cmp ebx, 0x40
jge 0x10087db8
mov edi, dword [esp + 0x80]
mov ecx, ebx
shl edi, cl
mov ecx, edx
mov dword [esp + 0x80], edi
mov edi, esi
shr edi, cl
mov ecx, ebx
shl esi, cl
or edi, dword [esp + 0x80]
mov ecx, edx
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x6c]
mov edx, edi
shr edx, cl
mov ecx, ebx
or edx, esi
mov dword [esp + 0x80], edx
mov esi, edi
shl esi, cl
jmp 0x10087e08
cmp ebx, 0x40
je 0x10087e20
cmp ebx, 0x60
jge 0x10087de6
mov edi, dword [esp + 0x6c]
mov ecx, ebx
shl esi, cl
mov ecx, edx
mov edx, edi
shr edx, cl
mov ecx, ebx
shl edi, cl
mov dword [esp + 0x80], edi
or edx, esi
mov dword [esp + 0x88], edx
jmp 0x10087e06
mov ecx, ebx
mov edx, dword [esp + 0x6c]
mov ebx, edx
shl ebx, cl
cmp ecx, 0x60
cmove ebx, edx
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], ebx
xor esi, esi
xor edx, edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x68]
neg edx
add edx, 1
mov dword [esp + 0x68], edx
jmp 0x1008709b
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], edx
jmp 0x10087e06
mov edx, dword [esp + 0x80]
mov dword [esp + 0x88], edx
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x6c]
jmp 0x10087e08
test edi, 0x10
je 0x10088024
mov eax, dword [esp + 0xc]
cmp edx, eax
je 0x10087eb3
cmp eax, 0x10
je 0x100880d4
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x64]
mov esi, dword [ebp + 0x10]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
test ecx, 0x8000
jne 0x1008800b
mov edx, dword [ebp + 8]
mov eax, dword [0x100ce728]
mov dword [edx + 0xc], ecx
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x1008800b
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
and eax, 0x8000
mov ecx, 1
mov eax, 0
cmove eax, ecx
xor edi, edi
and edx, 0x8000
cmove edi, ecx
mov ebx, eax
or ebx, edi
je 0x10087ef1
mov edx, dword [0x100ce728]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp], xmm0
cmp edi, eax
je 0x10087f1b
test eax, eax
je 0x10087fc5
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x1008800b
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
cmp eax, edx
jb 0x10087f61
cmp eax, edx
jne 0x10087f3a
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x80]
cmp eax, edx
jb 0x10087f61
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x80]
cmp eax, edx
jne 0x10087f7f
mov eax, dword [esp + 0x58]
cmp esi, eax
jb 0x10087f61
cmp esi, eax
jne 0x10087f7f
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
cmp eax, edx
jae 0x10087f7f
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x1008800b
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
cmp eax, edx
jb 0x10087fc5
cmp eax, edx
jne 0x10087f9e
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x80]
cmp eax, edx
jb 0x10087fc5
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x80]
cmp eax, edx
jne 0x10087fe0
mov eax, dword [esp + 0x58]
cmp eax, esi
jb 0x10087fc5
cmp eax, esi
jne 0x10087fe0
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
cmp eax, edx
jae 0x10087fe0
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x1008800b
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x10087efd
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x10088071
mov eax, dword [0x100ce728]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp], xmm0
mov edx, dword [0x100c1768]
mov dword [edi], edx
mov ecx, dword [0x100c176c]
mov dword [edi + 4], ecx
mov ebx, dword [0x100c1770]
mov dword [edi + 8], ebx
mov esi, dword [0x100c1774]
mov dword [edi + 0xc], esi
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x1008808d
mov eax, dword [0x100ce72c]
mov edx, dword [0x100ce730]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x60]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1748]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c174c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1750]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1754]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x6c]
mov esi, dword [ebp + 0xc]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x10087e87