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

Disassembly:
test dword [0x100d9170], 0xfffffe00
jne 0x1008c5b0
test dword [0x100d9170], 0xffffffff
jne 0x1008a7c8
call fcn.1007f654
jmp fcn.1008a7a0
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xcc
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov edx, dword [ecx + 8]
mov dword [esp + 0xa8], eax
mov eax, ebx
mov dword [esp + 0x8c], ebx
and eax, 0x7fffffff
mov dword [esp + 0x80], eax
mov dword [esp + 0xbc], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xa4], edx
mov esi, edx
xor ebx, edx
and esi, 0x7fffffff
mov dword [esp + 0x7c], esi
mov esi, dword [edi]
mov dword [esp + 0x98], esi
mov esi, dword [edi + 4]
and ebx, 0x80000000
mov dword [esp + 0x84], esi
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
movzx edx, ax
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x7c]
shr eax, 0x10
mov dword [esp + 0x78], ebx
mov dword [esp + 0x90], eax
movzx ebx, cx
shr ecx, 0x10
mov dword [esp + 0x94], ecx
lea eax, [eax - 1]
cmp eax, 0x7ffd
ja 0x1008bc77
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x1008bc77
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0x94]
mov dword [esp + 0x90], eax
or edx, 0x10000
mov edi, edx
or ebx, 0x10000
lea ecx, [eax + 0x3ffd]
mov eax, esi
sub eax, dword [esp + 0xbc]
sub edi, ebx
mov dword [esp + 0x74], ecx
or eax, edi
je 0x1008ba1c
mov eax, dword [esp + 0xbc]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x1008a917
mov eax, dword [esp + 0xbc]
sub eax, esi
mov ecx, ebx
sub ecx, edx
or eax, ecx
jne 0x1008a96e
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x88]
sub eax, ecx
mov eax, dword [esp + 0x84]
sbb edi, eax
jae 0x1008a96e
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x98]
mov eax, esi
shr eax, 0x12
shl esi, 0xe
shl edx, 0xe
or eax, edx
mov dword [esp + 0xac], eax
mov edx, edi
shr edx, 0x12
or esi, edx
mov eax, ecx
shr eax, 0x12
shl ecx, 0xe
mov dword [esp + 0x98], ecx
shl edi, 0xe
or eax, edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
lea eax, [eax + 0x3ffe]
mov dword [esp + 0x74], eax
jmp 0x1008a9b2
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x98]
mov eax, esi
shr eax, 0x11
shl esi, 0xf
shl edx, 0xf
or eax, edx
mov dword [esp + 0xac], eax
mov edx, edi
shr edx, 0x11
or esi, edx
mov eax, ecx
shr eax, 0x11
shl ecx, 0xf
mov dword [esp + 0x98], ecx
shl edi, 0xf
or eax, edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
mov edx, eax
shr edx, 0x11
shl eax, 0xf
shl ebx, 0xf
or edx, ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xb0], edx
mov ecx, ebx
shr ecx, 0x11
or eax, ecx
mov dword [esp + 0xbc], eax
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
mov dword [esp + 0xb8], edi
shl ebx, 0xf
or ecx, ebx
mov dword [esp + 0xb4], ecx
sub eax, esi
mov ecx, dword [esp + 0xac]
sbb edx, ecx
jb 0x1008aa15
or eax, edx
jne 0x1008aa3b
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov eax, 0xffffffff
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc0], eax
jmp 0x1008ab8a
mov eax, ecx
mov edx, dword [esp + 0xb0]
sub eax, edx
jb 0x1008aa56
mov eax, 0xffffffff
mov dword [esp + 0xc0], eax
jmp 0x1008aa7d
mov eax, ecx
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov edx, dword [esp]
mov eax, dword [esp + 4]
div dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], eax
mov edi, eax
mov ecx, dword [esp + 0xbc]
mov eax, edi
mul ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
mul edi
add ecx, eax
mov eax, dword [esp + 0x9c]
adc edx, 0
mov edi, eax
sub edi, ebx
mov dword [esp + 0xa4], edi
sub eax, ebx
jae 0x1008aac0
mov edi, 1
jmp 0x1008aac2
xor edi, edi
mov eax, dword [esp + 0xac]
mov ebx, esi
sub ebx, ecx
sbb eax, edx
sub ebx, edi
sbb eax, 0
mov edx, eax
sub edx, 0
jge 0x1008ab38
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xbc]
add edx, 0xffffffff
add ecx, esi
mov edi, ecx
sub edi, esi
jae 0x1008ab09
mov edi, 1
jmp 0x1008ab0b
xor edi, edi
mov esi, dword [esp + 0xb0]
add ebx, esi
adc eax, 0
add ebx, edi
adc eax, 0
mov edi, eax
sub edi, 0
jl 0x1008aaf0
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0xb0]
mov edx, ebx
sub edx, eax
jb 0x1008ab53
mov eax, 0xffffffff
mov dword [esp + 0xc8], eax
jmp 0x1008ab8a
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x18]
mov dword [esp + 0x1c], eax
xor eax, eax
or eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xa8], esi
mov eax, edi
mul ebx
mov dword [esp + 0x94], eax
mov eax, edi
mov edi, dword [esp + 0xb4]
mov esi, edx
mul ecx
mov dword [esp + 0x64], eax
mov eax, ebx
mov dword [esp + 0x58], edx
mul edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0x5c], edx
mov eax, ecx
mul edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x60], eax
mov eax, edi
mov dword [esp + 0x70], edx
mul ebx
mov dword [esp + 0x68], eax
mov eax, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x7c], edx
mul ecx
mov dword [esp + 0x84], eax
mov eax, edi
mov dword [esp + 0x90], edx
mul ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], edx
mov eax, edi
mul ecx
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x58]
add esi, eax
mov eax, 0
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x94]
adc eax, 0
mov dword [esp + 0x6c], esi
or ecx, esi
mov esi, dword [esp + 0xa8]
je 0x1008ac74
mov ecx, 1
mov dword [esp + 0x64], ecx
jmp 0x1008ac7a
xor ecx, ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
xor ebx, ebx
sub ebx, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc4], ebx
mov ebx, 0
sbb ebx, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x60]
add edx, ecx
mov ecx, 0
adc ecx, 0
add edx, ebx
adc ecx, 0
mov ebx, dword [esp + 0x68]
add ebx, eax
mov eax, 0
adc eax, 0
add edx, ebx
adc ecx, eax
mov eax, dword [esp + 0x7c]
xor ebx, ebx
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x84]
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x80]
add edi, eax
adc ebx, 0
add edx, dword [esp + 0x64]
mov eax, dword [esp + 0x98]
add edi, ecx
adc ebx, 0
mov dword [esp + 0x94], ebx
mov ebx, eax
sub ebx, edx
mov edx, dword [esp + 0x9c]
mov ecx, edx
sbb ecx, edi
mov edi, ebx
sub edi, eax
mov eax, ecx
sbb eax, edx
mov edx, dword [esp + 0x94]
jb 0x1008ad22
or edi, eax
jne 0x1008ad44
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1008ad4f
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
neg edi
add edi, ebx
neg eax
add eax, ecx
or edi, eax
jne 0x1008ad4f
mov eax, 1
mov dword [esp + 0x6c], eax
jmp 0x1008ad55
xor eax, eax
mov dword [esp + 0x6c], eax
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x90]
xor eax, eax
add ecx, edi
adc eax, 0
mov edi, dword [esp + 0xa4]
add ecx, edi
mov edi, dword [esp + 0x88]
adc eax, edi
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0x6c]
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0xac]
sub esi, ecx
sbb edx, eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xac], edx
sub edx, 0
jge 0x1008ae9f
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xb4]
add esi, 0xffffffff
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0xc0]
adc esi, 0xffffffff
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0xb8]
add eax, esi
adc edx, edi
mov dword [esp + 0xc4], eax
sub eax, esi
mov eax, edx
sbb eax, edi
mov eax, dword [esp + 0xc4]
jae 0x1008ae16
mov esi, 1
jmp 0x1008ae18
xor esi, esi
mov edi, dword [esp + 0xbc]
add ebx, edi
mov edi, dword [esp + 0xb0]
adc ecx, edi
add ebx, esi
adc ecx, 0
test esi, esi
je 0x1008ae49
mov edi, ebx
sub edi, dword [esp + 0xbc]
mov esi, ecx
sub esi, dword [esp + 0xb0]
or edi, esi
je 0x1008ae61
mov esi, dword [esp + 0xbc]
mov edi, ebx
sub edi, esi
mov esi, dword [esp + 0xb0]
mov edi, ecx
sbb edi, esi
jae 0x1008ae68
mov esi, 1
jmp 0x1008ae6a
xor esi, esi
mov edi, dword [esp + 0xa8]
add edi, esi
mov esi, dword [esp + 0xac]
adc esi, 0
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], esi
sub esi, 0
jl 0x1008adc5
mov dword [esp + 0x54], edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xb0]
sub eax, ebx
sbb edx, ecx
jb 0x1008aeb7
or eax, edx
jne 0x1008aecd
mov eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov esi, 0xffffffff
jmp 0x1008b010
mov eax, dword [esp + 0xb0]
mov edx, ecx
sub edx, eax
jb 0x1008aee1
mov esi, 0xffffffff
jmp 0x1008af01
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
div dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], ecx
mul esi
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xb0]
mul esi
add edi, eax
adc edx, 0
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x54]
mov eax, edx
sub eax, ecx
mov dword [esp + 0xa4], eax
sub edx, ecx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x70]
jae 0x1008af50
mov eax, 1
mov dword [esp + 0x68], eax
jmp 0x1008af56
xor eax, eax
mov dword [esp + 0x68], eax
mov eax, ebx
sub eax, edi
mov edi, ecx
sbb edi, edx
mov edx, dword [esp + 0x68]
sub eax, edx
sbb edi, 0
mov edx, edi
sub edx, 0
jge 0x1008afc5
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0xbc]
add esi, 0xffffffff
add edx, ecx
mov ebx, edx
sub ebx, ecx
jae 0x1008af99
mov ebx, 1
jmp 0x1008af9b
xor ebx, ebx
mov ecx, dword [esp + 0xb0]
add eax, ecx
adc edi, 0
add eax, ebx
adc edi, 0
mov ebx, edi
sub ebx, 0
jl 0x1008af80
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xb0]
mov edi, eax
sub edi, edx
jb 0x1008afe0
mov eax, 0xffffffff
mov dword [esp + 0x9c], eax
jmp 0x1008b010
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
div dword [esp + 0x38]
mov dword [esp + 0x3c], eax
xor eax, eax
or eax, dword [esp + 0x3c]
mov dword [esp + 0x9c], eax
and eax, 0x3fff
xor edx, edx
sub eax, 4
sbb edx, 0
jb 0x1008b027
or eax, edx
jne 0x1008b3bd
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x48], ebx
mov eax, edi
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x9c]
mul ecx
mov dword [esp + 0xac], eax
mov eax, edi
mov edi, dword [esp + 0xb4]
mov ebx, edx
mul esi
mov dword [esp + 0x70], eax
mov eax, edi
mov dword [esp + 0x4c], edx
mul ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0xa4], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x8c], eax
mov eax, edi
mov dword [esp + 0x90], edx
mul ecx
mov dword [esp + 0x88], eax
mov eax, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x80], edx
mul esi
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0x68], edx
mul ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x58], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x60], edx
xor ecx, ecx
add ebx, eax
adc ecx, 0
mov eax, dword [esp + 0x84]
add ebx, eax
mov eax, dword [esp + 0xac]
adc ecx, 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa0]
or eax, ebx
mov ebx, dword [esp + 0x48]
je 0x1008b112
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x1008b11b
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x64]
xor edx, edx
sub edx, eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x98], edx
mov edx, 0
sbb edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x88]
xor ecx, ecx
add edi, eax
mov eax, dword [esp + 0x8c]
adc ecx, 0
add edi, eax
adc ecx, 0
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, 0
adc eax, 0
add edi, edx
adc ecx, eax
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x90]
add edi, dword [esp + 0x84]
add eax, edx
mov edx, 0
adc edx, 0
add eax, ebx
adc edx, 0
mov ebx, dword [esp + 0x7c]
add eax, ebx
adc edx, 0
mov ebx, dword [esp + 0x54]
add eax, ecx
adc edx, 0
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xc4]
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x8c], ecx
mov edi, ebx
sbb edi, eax
mov dword [esp + 0xa4], edi
mov edi, ecx
sub edi, edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
sbb eax, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
jb 0x1008b203
or edi, dword [esp + 0x6c]
jne 0x1008b22f
mov edx, dword [esp + 0x84]
test edx, edx
je 0x1008b23a
mov edi, dword [esp + 0xc4]
mov edx, dword [esp + 0x54]
neg edi
neg edx
add edi, dword [esp + 0x8c]
add edx, dword [esp + 0xa4]
or edi, edx
jne 0x1008b23a
mov edx, 1
mov dword [esp + 0x6c], edx
jmp 0x1008b240
xor edx, edx
mov dword [esp + 0x6c], edx
mov edi, dword [esp + 0x58]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x68]
xor edx, edx
add esi, edi
adc edx, 0
mov edi, dword [esp + 0x5c]
add esi, edi
mov edi, dword [esp + 0x60]
adc edx, edi
add esi, eax
adc edx, 0
mov eax, dword [esp + 0x6c]
add esi, eax
adc edx, 0
sub ebx, esi
sbb ecx, edx
mov esi, dword [esp + 0xa8]
mov eax, ecx
sub eax, 0
jge 0x1008b38d
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xa8], esi
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xac]
add edi, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xb8]
add edi, edx
adc ecx, esi
mov dword [esp + 0x98], edi
mov dword [esp + 0xac], ecx
sub edi, edx
mov edx, dword [esp + 0xa4]
sbb ecx, esi
mov ecx, dword [esp + 0xa0]
jae 0x1008b314
mov esi, 1
jmp 0x1008b316
xor esi, esi
mov edi, dword [esp + 0xbc]
add eax, edi
mov edi, dword [esp + 0xb0]
adc edx, edi
add eax, esi
adc edx, 0
test esi, esi
je 0x1008b347
mov edi, eax
sub edi, dword [esp + 0xbc]
mov esi, edx
sub esi, dword [esp + 0xb0]
or edi, esi
je 0x1008b35f
mov esi, dword [esp + 0xbc]
mov edi, eax
sub edi, esi
mov esi, dword [esp + 0xb0]
mov edi, edx
sbb edi, esi
jae 0x1008b366
mov esi, 1
jmp 0x1008b368
xor esi, esi
add ebx, esi
adc ecx, 0
mov esi, ecx
sub esi, 0
jl 0x1008b29b
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x8c], eax
or ebx, dword [esp + 0x8c]
or ecx, dword [esp + 0xa4]
or ebx, dword [esp + 0x98]
or ecx, dword [esp + 0xac]
or ebx, ecx
je 0x1008b3b4
mov eax, 1
jmp 0x1008b3b6
xor eax, eax
or dword [esp + 0x9c], eax
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov ebx, edx
shl ebx, 0x11
xor edi, edi
mov dword [esp + 0x94], ebx
mov ebx, esi
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 0x11
shl ebx, 0x11
shr esi, 0xf
shr edx, 0xf
or ebx, edx
or edi, esi
mov esi, ecx
shl esi, 0x11
shr ecx, 0xf
mov dword [esp + 0xc0], ecx
shr eax, 0xf
or esi, eax
mov eax, dword [esp + 0x74]
cmp eax, 0x7ffd
jae 0x1008b537
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b8d0
fnstcw word [esp + 0x50]
mov eax, dword [esp + 0x50]
mov edx, dword [0x100ce748]
mov ecx, dword [0x100ce750]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x40]
and eax, 0xc00
mov dword [esp + 0x6c], eax
jne 0x1008b46a
mov eax, dword [esp + 0x94]
sub eax, 0
jl 0x1008b4a9
jmp 0x1008b508
cmp eax, 0xc00
je 0x1008b508
xor eax, eax
or eax, dword [esp + 0x78]
je 0x1008b492
mov edx, dword [esp + 0x6c]
xor eax, eax
cmp edx, 0x400
sete al
mov dword [esp + 0x68], eax
jmp 0x1008b4a5
mov edx, dword [esp + 0x6c]
xor eax, eax
cmp edx, 0x800
sete al
mov dword [esp + 0x68], eax
test eax, eax
je 0x1008b508
add ebx, 1
adc edi, 0
mov eax, ebx
or eax, edi
jne 0x1008b4c9
mov eax, dword [esp + 0xc0]
add esi, 1
adc eax, 0
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x94]
add edx, edx
adc eax, eax
or edx, eax
jne 0x1008b4e6
mov edx, 1
jmp 0x1008b4e8
xor edx, edx
mov eax, dword [esp + 0x6c]
xor ecx, ecx
mov dword [esp + 0x4c], ecx
test eax, eax
mov eax, ecx
sete al
and eax, edx
not eax
mov dword [esp + 0x4c], eax
cdq
and edi, edx
and ebx, dword [esp + 0x4c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
shl eax, 0x10
add eax, dword [esp + 0xc0]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x50]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
and eax, 0xc00
mov dword [esp + 0xc4], eax
jne 0x1008b563
mov eax, dword [esp + 0x94]
sub eax, 0
jl 0x1008b9ac
jmp 0x1008b598
cmp eax, 0xc00
je 0x1008b598
xor eax, eax
or eax, dword [esp + 0x78]
je 0x1008b586
mov eax, dword [esp + 0xc4]
cmp eax, 0x400
je 0x1008b998
jmp 0x1008b598
mov eax, dword [esp + 0xc4]
cmp eax, 0x800
je 0x1008b9f7
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x74]
cmp eax, 0x7ffd
jle 0x1008b63d
mov eax, dword [0x100ce74c]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 0xc4]
fstp qword [esp + 0x40]
cmp edx, 0xc00
je 0x1008b98c
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x1008b5f3
mov eax, dword [esp + 0xc4]
cmp eax, 0x800
je 0x1008b94d
mov ecx, 1
jmp 0x1008b607
mov eax, dword [esp + 0xc4]
cmp eax, 0x400
je 0x1008b988
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1ba8]
mov edx, dword [ecx + 0x100c1bac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1bb0]
mov ecx, dword [ecx + 0x100c1bb4]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0x7ffd
je 0x1008b9bd
test eax, eax
jge 0x1008b41e
cmp eax, 0xffffffff
jl 0x1008b694
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x1008b694
mov edx, dword [esp + 0xc0]
mov eax, esi
sub eax, 0xffffffff
sbb edx, 0x1ffff
jb 0x1008b694
mov eax, dword [esp + 0xc0]
lea ecx, [esi + 1]
lea edx, [eax - 0x1ffff]
or ecx, edx
jne 0x1008b6a2
mov eax, ebx
sub eax, 0xffffffff
mov edx, edi
sbb edx, 0xffffffff
jae 0x1008b6a2
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x1008b6ab
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x74]
neg eax
mov dword [esp + 0x74], eax
mov ecx, eax
and ecx, 0x3f
mov dword [esp + 0x6c], ecx
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp eax, 0x40
jge 0x1008b7c2
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b6ec
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x1008b6f5
xor eax, eax
mov dword [esp + 0xc4], eax
cmp ecx, 0x1f
ja 0x1008b713
mov eax, edi
shld eax, ebx, cl
mov dword [esp + 0x94], eax
mov edx, ebx
shl edx, cl
mov dword [esp + 0xa4], edx
jmp 0x1008b727
xor eax, eax
mov dword [esp + 0xa4], eax
mov edx, ebx
shl edx, cl
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0xc4]
mov dword [esp + 0xa4], eax
cmp ecx, 0x1f
ja 0x1008b75c
mov eax, dword [esp + 0xc0]
shld eax, esi, cl
mov edx, esi
shl edx, cl
mov dword [esp + 0x54], eax
mov dword [esp + 0xc4], edx
jmp 0x1008b76d
xor eax, eax
mov dword [esp + 0xc4], eax
mov edx, esi
shl edx, cl
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x6c]
cmp eax, 0x1f
ja 0x1008b781
mov ecx, eax
shrd ebx, edi, cl
mov eax, edi
shr eax, cl
jmp 0x1008b789
mov ecx, eax
xor eax, eax
mov ebx, edi
shr ebx, cl
or ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0x54]
or edi, eax
mov eax, ecx
cmp eax, 0x1f
ja 0x1008b7ab
mov eax, dword [esp + 0xc0]
shrd esi, eax, cl
shr eax, cl
jmp 0x1008b7b6
mov esi, dword [esp + 0xc0]
xor eax, eax
shr esi, cl
mov dword [esp + 0xc0], eax
jmp 0x1008b870
cmp eax, 0x40
je 0x1008b90a
cmp eax, 0x80
jge 0x1008b84e
or edi, dword [esp + 0x94]
or ebx, edi
je 0x1008b7e4
mov eax, 1
jmp 0x1008b7e6
xor eax, eax
cmp ecx, 0x1f
ja 0x1008b809
mov edx, dword [esp + 0xc0]
shld edx, esi, cl
mov ebx, esi
shl ebx, cl
mov dword [esp + 0x94], edx
mov dword [esp + 0xa4], ebx
jmp 0x1008b81d
xor edx, edx
mov dword [esp + 0xa4], edx
mov ebx, esi
shl ebx, cl
mov dword [esp + 0x94], ebx
or dword [esp + 0xa4], eax
mov eax, dword [esp + 0x6c]
cmp eax, 0x1f
ja 0x1008b83f
mov ecx, eax
mov edi, dword [esp + 0xc0]
mov ebx, esi
shrd ebx, edi, cl
shr edi, cl
jmp 0x1008b867
mov ecx, eax
mov ebx, dword [esp + 0xc0]
xor edi, edi
shr ebx, cl
jmp 0x1008b867
mov eax, 1
mov dword [esp + 0xa4], eax
xor edx, edx
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x94], edx
xor esi, esi
mov dword [esp + 0xc0], esi
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x1008b8ff
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b8a7
mov eax, dword [0x100ce750]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x74], edx
jmp 0x1008b432
mov eax, dword [esp + 0x48]
test al, 0x10
jne 0x1008b8ca
mov eax, dword [0x100ce750]
fld qword [eax]
mov edx, dword [0x100ce754]
fmul qword [edx]
fstp qword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x74], ecx
jmp 0x1008b8d0
xor eax, eax
mov dword [esp + 0x74], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
shl eax, 0x10
add eax, dword [esp + 0xc0]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x1008b41e
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b928
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x1008b931
xor eax, eax
mov dword [esp + 0xa4], eax
or dword [esp + 0xa4], ebx
mov ebx, esi
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0xc0]
jmp 0x1008b867
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x100c1be8]
mov edx, dword [ebx + 0x100c1bec]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x100c1bf0]
mov ebx, dword [ebx + 0x100c1bf4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x1008b952
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
jne 0x1008b94d
jmp 0x1008b988
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b598
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x1008b5a1
mov eax, dword [esp + 0xc0]
lea ecx, [esi + 1]
lea edx, [eax - 0x1ffff]
or ecx, edx
jne 0x1008b41e
lea edx, [ebx + 1]
lea eax, [edi + 1]
or edx, eax
jne 0x1008b41e
mov eax, dword [esp + 0xc8]
test eax, eax
jne 0x1008b5b0
jmp 0x1008b41e
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x1008b598
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x1008b5a1
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x84]
sub eax, dword [esp + 0xb8]
sub ecx, dword [esp + 0x88]
or eax, ecx
jne 0x1008a8d5
mov eax, dword [esp + 0x90]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x1008bae0
fnstcw word [esp + 0x50]
mov ecx, dword [esp + 0x50]
mov eax, dword [0x100ce74c]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x1008bc6b
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x1008ba9c
cmp ecx, 0x800
je 0x1008bc2c
mov ecx, 1
jmp 0x1008baaa
cmp ecx, 0x400
je 0x1008bc67
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1ba8]
mov edx, dword [ecx + 0x100c1bac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1bb0]
mov ecx, dword [ecx + 0x100c1bb4]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
jl 0x1008bb16
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x78]
xor edx, edx
mov dword [ebx], edx
mov dword [ebx + 4], edx
add eax, 0x3fff
shl eax, 0x10
or ecx, eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x1008bb73
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x90]
xor ebx, ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
add edx, 0x402e
mov dword [esp + 0x90], edx
cmp edx, 0x1f
ja 0x1008bb4c
mov ecx, edx
mov eax, 1
shld ebx, eax, cl
shl eax, cl
jmp 0x1008bb57
mov ecx, edx
xor eax, eax
mov ebx, 1
shl ebx, cl
mov edx, dword [esp + 0x78]
mov ecx, dword [ebp + 8]
or edx, ebx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x1008bbcc
mov eax, dword [esp + 0x90]
add eax, 0x406e
mov dword [esp + 0x90], eax
cmp eax, 0x1f
ja 0x1008bba0
mov ecx, eax
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x1008bbab
mov ecx, eax
xor eax, eax
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x50]
mov ecx, dword [esp + 0x50]
mov eax, dword [0x100ce750]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0x78]
je 0x1008bbfc
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x1008bc07
xor eax, eax
cmp ecx, 0x800
sete al
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
mov dword [ecx + 4], 0
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x100c1be8]
mov edx, dword [ebx + 0x100c1bec]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x100c1bf0]
mov ebx, dword [ebx + 0x100c1bf4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x1008bc31
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
jne 0x1008bc2c
jmp 0x1008bc67
mov eax, dword [esp + 0x98]
or eax, dword [esp + 0x84]
je 0x1008bc95
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x1008bc9e
xor eax, eax
mov dword [esp + 0xc8], eax
mov ecx, eax
mov eax, dword [esp + 0x80]
or ecx, esi
mov dword [esp + 0xc8], ecx
or eax, ecx
jne 0x1008bcc2
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x1008bd26
mov eax, dword [esp + 0x80]
sub eax, 0x10000
jae 0x1008bcde
mov eax, 2
mov dword [esp + 0xc4], eax
jmp 0x1008bd26
mov eax, dword [esp + 0x80]
sub eax, 0x7fff0000
jae 0x1008bcfa
mov eax, 4
mov dword [esp + 0xc4], eax
jmp 0x1008bd26
mov eax, dword [esp + 0x80]
sub eax, 0x7fff0000
jb 0x1008bd1a
or ecx, eax
je 0x1008bd1a
mov eax, 0x10
mov dword [esp + 0xc4], eax
jmp 0x1008bd26
mov eax, 8
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xb8]
or eax, dword [esp + 0x88]
je 0x1008bd44
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x1008bd4d
xor eax, eax
mov dword [esp + 0xc8], eax
mov ecx, eax
or ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc8], ecx
or eax, ecx
jne 0x1008bd70
mov eax, 1
mov dword [esp + 0x6c], eax
jmp 0x1008bdbf
mov eax, dword [esp + 0x7c]
sub eax, 0x10000
jae 0x1008bd86
mov eax, 2
mov dword [esp + 0x6c], eax
jmp 0x1008bdbf
mov eax, dword [esp + 0x7c]
sub eax, 0x7fff0000
jae 0x1008bd9c
mov eax, 4
mov dword [esp + 0x6c], eax
jmp 0x1008bdbf
mov eax, dword [esp + 0x7c]
sub eax, 0x7fff0000
jb 0x1008bdb6
or ecx, eax
je 0x1008bdb6
mov eax, 0x10
mov dword [esp + 0x6c], eax
jmp 0x1008bdbf
mov eax, 8
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc4]
or eax, dword [esp + 0x6c]
test al, 0x10
mov dword [esp + 0xc8], eax
je 0x1008c019
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x6c]
cmp eax, edx
je 0x1008be62
mov eax, edx
cmp eax, 0x10
je 0x1008be10
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x88]
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 0x1008be2f
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x84]
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 0x1008bffd
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x100ce740]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x40]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x1008bffd
mov edx, dword [esp + 0x8c]
and edx, 0x8000
xor eax, eax
or edx, eax
je 0x1008be7c
mov eax, 1
jmp 0x1008be7e
xor eax, eax
mov ecx, dword [esp + 0xa4]
and ecx, 0x8000
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0xc8], edx
xor eax, eax
or ecx, eax
je 0x1008bea6
mov edx, 1
jmp 0x1008bea8
xor edx, edx
xor eax, eax
test edx, edx
sete al
mov edx, dword [esp + 0xc8]
or edx, eax
je 0x1008bec8
mov edx, dword [0x100ce740]
fld qword [edx]
fdiv st(0)
fstp qword [esp + 0x40]
mov edx, dword [esp + 0xc8]
cmp eax, edx
je 0x1008bef8
mov eax, edx
test eax, eax
je 0x1008bfb9
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 0x1008bffd
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov edx, esi
sub edx, eax
sbb ecx, ebx
jb 0x1008bf4c
mov eax, dword [esp + 0x80]
mov edx, esi
sub edx, dword [esp + 0xbc]
sub eax, dword [esp + 0x7c]
or edx, eax
jne 0x1008bf67
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
sub eax, edx
sbb ecx, ebx
jae 0x1008bf67
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 0x1008bffd
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
sub eax, esi
sbb edx, ecx
jb 0x1008bfb9
mov eax, dword [esp + 0xbc]
sub eax, esi
mov esi, dword [esp + 0x7c]
sub esi, dword [esp + 0x80]
or eax, esi
jne 0x1008bfd1
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
sub edx, eax
sbb ebx, ecx
jae 0x1008bfd1
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 0x1008bffd
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x1008bedd
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, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x6c]
test ecx, eax
je 0x1008c06c
test al, 2
jne 0x1008c06c
mov eax, dword [0x100ce740]
fld qword [eax]
fdiv st(0)
mov edi, dword [ebp + 8]
fstp qword [esp + 0x40]
mov edx, dword [0x100c1b98]
mov ecx, dword [0x100c1b9c]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x100c1ba0]
mov esi, dword [0x100c1ba4]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 8
je 0x1008c0d2
mov eax, ecx
test al, 2
je 0x1008c089
mov eax, dword [0x100ce744]
fld qword [eax]
mov edx, dword [0x100ce748]
fmul qword [edx]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x1008c09a
mov ecx, 1
jmp 0x1008c09c
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1ba8]
mov edx, dword [ecx + 0x100c1bac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1bb0]
mov ecx, dword [ecx + 0x100c1bb4]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, ecx
test al, 1
je 0x1008c134
mov eax, dword [0x100ce748]
fld qword [eax]
mov edx, dword [0x100ce740]
fdiv qword [edx]
mov ebx, dword [esp + 0x78]
fstp qword [esp + 0x40]
xor ecx, ecx
or ebx, ecx
je 0x1008c0fc
mov ecx, 1
jmp 0x1008c0fe
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1ba8]
mov edx, dword [ecx + 0x100c1bac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1bb0]
mov ecx, dword [ecx + 0x100c1bb4]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc4]
test al, 1
jne 0x1008c145
mov eax, ecx
test al, 8
je 0x1008c1ac
mov eax, dword [esp + 0xc8]
test al, 2
je 0x1008c163
mov eax, dword [0x100ce744]
fld qword [eax]
mov edx, dword [0x100ce748]
fmul qword [edx]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x1008c174
mov ecx, 1
jmp 0x1008c176
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x100c1bc8]
mov edx, dword [ecx + 0x100c1bcc]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x100c1bd0]
mov ecx, dword [ecx + 0x100c1bd4]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x100ce744]
fld qword [eax]
mov ecx, dword [0x100ce748]
fmul qword [ecx]
mov edi, dword [esp + 0x94]
fstp qword [esp + 0x40]
test edi, edi
jne 0x1008c3e6
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ebx
or eax, ebx
je 0x1008c1f5
mov eax, 0xfffffff1
mov dword [esp + 0x94], eax
jmp 0x1008c21d
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov edi, 0x31
mov dword [esp + 0x94], edi
mov eax, dword [esp + 0xc8]
sub eax, 1
jae 0x1008c233
add dword [esp + 0x94], 0x20
jmp 0x1008c241
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
bsr ecx, eax
mov edi, dword [esp + 0x94]
sub edi, ecx
add edi, 0x1f
mov dword [esp + 0x94], edi
cmp edi, 0x40
jge 0x1008c36d
mov eax, edi
cmp eax, 0x1f
ja 0x1008c285
mov ecx, eax
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc4], eax
jmp 0x1008c299
mov ecx, eax
mov ebx, dword [esp + 0xbc]
xor eax, eax
mov dword [esp + 0xc4], eax
shl ebx, cl
mov eax, ecx
neg eax
and eax, 0x3f
cmp eax, 0x1f
mov dword [esp + 0x6c], eax
ja 0x1008c2d6
mov ecx, eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x88]
shrd eax, edx, cl
mov dword [esp + 0xbc], eax
shr edx, cl
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x4c]
jmp 0x1008c2f1
mov ecx, eax
mov edi, dword [esp + 0x88]
xor eax, eax
mov dword [esp + 0xc8], eax
shr edi, cl
mov dword [esp + 0xbc], edi
or ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x94]
or eax, dword [esp + 0xc4]
mov dword [esp + 0xbc], eax
cmp ecx, 0x1f
ja 0x1008c344
mov eax, dword [esp + 0x88]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb8]
shld eax, edx, cl
mov dword [esp + 0x88], eax
shl edx, cl
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x4c]
jmp 0x1008c35d
mov edi, dword [esp + 0xb8]
xor eax, eax
mov dword [esp + 0xc8], eax
shl edi, cl
mov dword [esp + 0x88], edi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xb8], eax
jmp 0x1008c3d3
mov eax, edi
cmp eax, 0x40
je 0x1008c3ae
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x1008c39a
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0xb8]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xbc], eax
jmp 0x1008c3c3
mov ebx, dword [esp + 0xb8]
xor eax, eax
mov dword [esp + 0xbc], eax
shl ebx, cl
jmp 0x1008c3c3
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
neg eax
add eax, 1
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x1008a895
mov dword [esp + 0xc4], esi
mov eax, esi
mov dword [esp + 0xc8], edx
or eax, edx
je 0x1008c417
mov eax, 0xfffffff1
mov dword [esp + 0x90], eax
jmp 0x1008c43f
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov edi, 0x31
mov dword [esp + 0x90], edi
mov eax, dword [esp + 0xc8]
sub eax, 1
jae 0x1008c455
add dword [esp + 0x90], 0x20
jmp 0x1008c463
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
bsr ecx, eax
mov edi, dword [esp + 0x90]
sub edi, ecx
add edi, 0x1f
mov dword [esp + 0x90], edi
cmp edi, 0x40
jge 0x1008c545
mov eax, edi
cmp eax, 0x1f
ja 0x1008c4a0
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov dword [esp + 0xc8], esi
jmp 0x1008c4af
mov ecx, eax
xor eax, eax
mov dword [esp + 0xc8], eax
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x1008c4d5
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x84]
shrd esi, eax, cl
shr eax, cl
mov dword [esp + 0xc4], eax
jmp 0x1008c4e7
mov esi, dword [esp + 0x84]
xor eax, eax
mov dword [esp + 0xc4], eax
shr esi, cl
or esi, dword [esp + 0xc8]
or edx, dword [esp + 0xc4]
mov eax, edi
cmp eax, 0x1f
ja 0x1008c521
mov ecx, eax
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x98]
shld edi, eax, cl
mov dword [esp + 0x84], edi
shl eax, cl
mov dword [esp + 0xc8], eax
jmp 0x1008c53c
mov ecx, eax
mov edi, dword [esp + 0x98]
xor eax, eax
mov dword [esp + 0xc8], eax
shl edi, cl
mov dword [esp + 0x84], edi
mov dword [esp + 0x98], eax
jmp 0x1008c596
mov eax, edi
cmp eax, 0x40
je 0x1008c578
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x1008c56b
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
shld edx, esi, cl
shl esi, cl
jmp 0x1008c586
mov edx, dword [esp + 0x98]
xor esi, esi
shl edx, cl
jmp 0x1008c586
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x84]
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x90]
neg eax
add eax, 1
mov dword [esp + 0x90], eax
jmp 0x1008a895
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xa4
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esp + 0x98], edx
and edi, 0x7fffffff
mov dword [esp + 0x6c], edi
mov dword [esp + 0x9c], eax
mov ecx, eax
and ecx, 0x7fffffff
mov dword [esp + 0x60], ecx
mov ecx, dword [ebx + 8]
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + 4]
xor edx, eax
mov dword [esp + 0x80], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x64], ecx
mov ecx, dword [esi + 8]
and edx, 0x80000000
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
movzx esi, di
movzx ebx, dx
shr edi, 0x10
shr edx, 0x10
lea eax, [edi - 1]
cmp eax, 0x7ffd
ja 0x1008da3e
lea eax, [edx - 1]
cmp eax, 0x7ffd
ja 0x1008da3e
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
or esi, 0x10000
sub edi, edx
or ebx, 0x10000
lea edx, [edi + 0x3ffd]
mov dword [esp + 0x60], edx
cmp esi, ebx
je 0x1008d7df
cmp ebx, esi
jb 0x1008c6c1
jne 0x1008c70c
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x78]
cmp edx, eax
jb 0x1008c6c1
cmp edx, eax
jne 0x1008c70c
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp edx, eax
jb 0x1008c6c1
cmp edx, eax
jne 0x1008c70c
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x64]
cmp edx, eax
jae 0x1008c70c
mov eax, dword [esp + 0x78]
shl esi, 0xe
mov edx, eax
shr edx, 0x12
or esi, edx
shl eax, 0xe
mov edx, dword [esp + 0x80]
mov ecx, edx
shr ecx, 0x12
or eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x78], eax
shl edx, 0xe
mov eax, ecx
shr eax, 0x12
or edx, eax
mov dword [esp + 0x80], edx
shl ecx, 0xe
mov dword [esp + 0x64], ecx
lea edi, [edi + 0x3ffe]
mov dword [esp + 0x60], edi
jmp 0x1008c74b
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
shl esi, 0xf
mov ecx, eax
shr ecx, 0x11
or esi, ecx
shl eax, 0xf
mov edi, edx
shr edi, 0x11
or eax, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x78], eax
shl edx, 0xf
mov ecx, edi
shr ecx, 0x11
or edx, ecx
mov dword [esp + 0x80], edx
shl edi, 0xf
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
shl ebx, 0xf
mov ecx, eax
shr ecx, 0x11
or ebx, ecx
mov dword [esp + 0x20], ebx
shl eax, 0xf
mov edi, edx
shr edi, 0x11
or eax, edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x94], eax
shl edx, 0xf
mov ecx, edi
shr ecx, 0x11
or edx, ecx
mov dword [esp + 0x7c], edx
shl edi, 0xf
mov dword [esp + 0x90], edi
cmp ebx, esi
jb 0x1008c7a4
jne 0x1008c7d0
mov edx, eax
mov ecx, dword [esp + 0x78]
cmp edx, ecx
ja 0x1008c7c4
mov edx, 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x88], edx
jmp 0x1008c938
mov edx, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
jmp 0x1008c7dc
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
cmp ebx, esi
ja 0x1008c7f6
mov dword [esp + 0x70], 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x88], edx
jmp 0x1008c821
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
div dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x94]
mov ecx, edx
mul ecx
mov edi, eax
neg edi
mov eax, ecx
mov ecx, edx
mul ebx
add ecx, eax
mov eax, dword [esp + 0x80]
adc edx, 0
add edi, eax
mov dword [esp + 0x6c], edi
cmp eax, edi
mov edi, dword [esp + 0x78]
mov eax, 0
adc eax, 0
neg ecx
add ecx, edi
sub ecx, eax
cmp ecx, edi
ja 0x1008c868
test eax, eax
je 0x1008c86f
cmp ecx, edi
jne 0x1008c86f
mov edi, 1
jmp 0x1008c871
xor edi, edi
neg edx
add edx, esi
sub edx, edi
js 0x1008c886
mov edi, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], edi
jmp 0x1008c8e9
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x94]
add esi, 0xffffffff
add edi, eax
cmp edi, eax
mov eax, 0
adc eax, 0
add ecx, ebx
add ecx, eax
cmp ecx, ebx
jb 0x1008c8bb
test eax, eax
je 0x1008c8c2
cmp ecx, ebx
jne 0x1008c8c2
mov eax, 1
jmp 0x1008c8c4
xor eax, eax
add edx, eax
js 0x1008c895
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x70], edi
cmp ebx, ecx
ja 0x1008c903
mov dword [esp + 0x24], 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x9c], edx
jmp 0x1008c938
mov edx, dword [esp]
mov eax, dword [esp + 4]
div dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov dword [esp + 0x9c], ecx
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x8c], ebx
mov eax, edi
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x9c]
mul esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x84], edx
mov eax, ecx
mul edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, esi
mov dword [esp + 0x38], edx
mul edi
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x40], edx
mul edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, edi
mul esi
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul ecx
mov dword [esp + 0x34], edx
mov edi, eax
mov eax, ebx
mul esi
mov dword [esp + 0x54], edx
mov esi, eax
mov eax, ecx
mul ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x6c]
xor ecx, ecx
add ebx, edx
adc ecx, 0
mov edx, dword [esp + 0x3c]
add ebx, edx
mov edx, dword [esp + 0x38]
adc ecx, 0
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x4c]
xor eax, eax
add ecx, edx
mov edx, dword [esp + 0x40]
adc eax, 0
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0x44]
add edx, ebx
mov ebx, 0
adc ebx, 0
add ecx, edx
adc eax, ebx
mov edx, dword [esp + 0x48]
xor ebx, ebx
add eax, edx
adc ebx, 0
mov edx, dword [esp + 0x50]
add eax, edx
adc ebx, 0
xor edx, edx
add edi, esi
adc edx, 0
add eax, edi
adc ebx, edx
mov edi, dword [esp + 0x34]
xor esi, esi
mov edx, dword [esp + 0x54]
add edi, edx
adc esi, 0
mov edx, dword [esp + 0x58]
add edx, ebx
mov ebx, dword [esp + 0x5c]
adc ebx, 0
add edi, edx
adc esi, ebx
mov ebx, 1
xor edx, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x98]
cmp esi, 0
cmovne edx, ebx
neg esi
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0x74]
add ebx, edx
neg ebx
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x8c]
jne 0x1008caa3
test edx, edx
je 0x1008caaa
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x1008caaa
mov edi, 1
jmp 0x1008caac
xor edi, edi
mov edx, dword [esp + 0x64]
neg ecx
add ecx, edx
sub ecx, edi
cmp ecx, edx
ja 0x1008cac2
test edi, edi
je 0x1008cac9
cmp ecx, edx
jne 0x1008cac9
mov edi, 1
jmp 0x1008cacb
xor edi, edi
mov edx, dword [esp + 0x80]
neg eax
add eax, edx
sub eax, edi
cmp eax, edx
ja 0x1008cae4
test edi, edi
je 0x1008caf2
cmp eax, edx
jne 0x1008caf2
mov edx, 1
mov dword [esp + 0x80], edx
jmp 0x1008cafb
xor edx, edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x78]
neg edx
add edx, edi
sub edx, dword [esp + 0x80]
cmp edx, edi
mov dword [esp + 0x34], edx
ja 0x1008cb29
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1008cb30
mov edx, dword [esp + 0x34]
cmp edx, edi
jne 0x1008cb30
mov edx, 1
jmp 0x1008cb32
xor edx, edx
sub esi, dword [esp + 0x6c]
sub esi, edx
jns 0x1008cc4a
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x9c]
add edx, 0xffffffff
mov dword [esp + 0x9c], edx
cmp edx, 0xffffffff
jne 0x1008cb74
mov edx, dword [esp + 0x88]
add edx, 0xffffffff
mov dword [esp + 0x88], edx
mov dword [esp + 0x70], edx
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
add edx, edi
mov dword [esp + 0x98], edx
cmp edx, edi
jae 0x1008cbb8
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
lea edi, [edx + edi + 1]
mov dword [esp + 0x84], edi
cmp edi, edx
jb 0x1008cbd0
mov edi, edx
mov edx, dword [esp + 0x84]
cmp edx, edi
je 0x1008cbd0
jmp 0x1008cbe5
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
add edx, edi
mov dword [esp + 0x84], edx
cmp edx, edi
jae 0x1008cbe5
mov edx, dword [esp + 0x94]
lea ecx, [edx + ecx + 1]
cmp ecx, edx
jb 0x1008cbf2
cmp ecx, edx
je 0x1008cbf2
jmp 0x1008cc07
mov edx, dword [esp + 0x94]
add ecx, edx
cmp ecx, edx
jae 0x1008cc07
mov edx, dword [esp + 0x8c]
lea eax, [edx + eax + 1]
cmp eax, edx
jb 0x1008cc14
cmp eax, edx
je 0x1008cc14
jmp 0x1008cc1b
mov edx, dword [esp + 0x8c]
add eax, edx
cmp eax, edx
jae 0x1008cc1b
mov edx, 1
jmp 0x1008cc1d
xor edx, edx
add ebx, edx
test edx, edx
je 0x1008cc2e
test ebx, ebx
jne 0x1008cc2e
mov edx, 1
jmp 0x1008cc30
xor edx, edx
add esi, edx
js 0x1008cb49
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
cmp ebx, eax
mov dword [esp + 0x1c], ecx
ja 0x1008cc65
mov dword [esp + 0x2c], 0xffffffff
mov esi, 0xffffffff
jmp 0x1008cc85
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
div dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
mul esi
mov edi, edx
mov dword [esp + 0x88], eax
mov eax, ebx
mul esi
mov esi, dword [esp + 0x84]
add edi, eax
adc edx, 0
mov eax, dword [esp + 0x88]
neg eax
add eax, esi
mov dword [esp + 0x88], eax
cmp esi, eax
mov eax, dword [esp + 0x3c]
mov esi, 0
adc esi, 0
mov dword [esp + 0x34], esi
neg edi
add edi, ecx
sub edi, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x6c], edi
cmp edi, ecx
ja 0x1008ccf5
mov edi, dword [esp + 0x34]
test edi, edi
je 0x1008ccfc
mov edi, dword [esp + 0x6c]
cmp edi, ecx
jne 0x1008ccfc
mov ecx, 1
jmp 0x1008ccfe
xor ecx, ecx
sub eax, edx
sub eax, ecx
js 0x1008cd19
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jmp 0x1008cd77
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x94]
add esi, 0xffffffff
add edx, edi
cmp edx, edi
mov edi, 0
adc edi, 0
add ecx, ebx
add ecx, edi
cmp ecx, ebx
jb 0x1008cd4a
test edi, edi
je 0x1008cd51
cmp ecx, ebx
jne 0x1008cd51
mov edi, 1
jmp 0x1008cd53
xor edi, edi
add eax, edi
js 0x1008cd24
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x88], edx
mov edx, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], esi
cmp ebx, edx
ja 0x1008cd82
mov ecx, 0xffffffff
jmp 0x1008cd9a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, ecx
and edx, 0x3fff
cmp edx, 4
ja 0x1008d0ec
mov edi, dword [esp + 0x90]
mov dword [esp + 0x5c], esi
mov eax, edi
mul ecx
mov dword [esp + 0x74], ecx
mov ebx, edx
mov dword [esp + 0x80], eax
mov eax, edi
mul esi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x58], eax
mov eax, edi
mov dword [esp + 0x54], edx
mul ecx
mov dword [esp + 0x50], eax
mov eax, edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x4c], edx
mul esi
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp + 0x44], edx
mul ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x38], eax
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x88], edx
mul edi
mov dword [esp + 0x34], eax
mov eax, esi
mov dword [esp + 0x6c], edx
mul edi
xor edi, edi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x48]
add ebx, eax
adc edi, 0
mov eax, dword [esp + 0x50]
add ebx, eax
mov eax, dword [esp + 0x54]
adc edi, 0
mov dword [esp + 0x64], ebx
xor ebx, ebx
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x4c]
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x40]
add edx, eax
mov eax, 0
adc eax, 0
add edi, edx
adc ebx, eax
mov eax, dword [esp + 0x44]
add ebx, eax
adc ecx, 0
mov eax, dword [esp + 0x3c]
add ebx, eax
adc ecx, 0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add edx, eax
mov eax, 0
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, 0
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x78]
adc ecx, 0
add edx, esi
adc eax, ecx
mov esi, dword [esp + 0x80]
xor ecx, ecx
cmp esi, 0
mov dword [esp + 0x6c], eax
mov eax, 1
cmovne ecx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x8c], ecx
neg esi
mov dword [esp + 0x80], esi
add eax, ecx
neg eax
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x64], eax
jne 0x1008cf1d
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x1008cf28
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x1008cf28
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x1008cf2e
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
neg edi
add edi, eax
sub edi, dword [esp + 0x34]
cmp edi, eax
ja 0x1008cf54
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1008cf5f
mov eax, dword [esp + 0x98]
cmp edi, eax
jne 0x1008cf5f
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x1008cf65
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
neg ebx
add ebx, eax
sub ebx, dword [esp + 0x34]
cmp ebx, eax
ja 0x1008cf8b
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1008cf96
mov eax, dword [esp + 0x84]
cmp ebx, eax
jne 0x1008cf96
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x1008cf9c
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
neg edx
add edx, eax
sub edx, dword [esp + 0x34]
cmp edx, eax
ja 0x1008cfc6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1008cfd4
mov eax, dword [esp + 0x84]
cmp edx, eax
jne 0x1008cfd4
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x1008cfdd
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x84]
jns 0x1008d0cf
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
add ecx, 0xffffffff
mov dword [esp + 0x74], ecx
lea eax, [esi - 1]
cmp ecx, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x80]
add ecx, eax
mov dword [esp + 0x80], ecx
cmp ecx, eax
jae 0x1008d049
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x64]
lea eax, [ecx + eax + 1]
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x1008d05b
mov eax, ecx
mov ecx, dword [esp + 0x64]
cmp ecx, eax
je 0x1008d05b
jmp 0x1008d070
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x64], ecx
cmp ecx, eax
jae 0x1008d070
mov ecx, dword [esp + 0x94]
lea edi, [ecx + edi + 1]
cmp edi, ecx
jb 0x1008d07d
cmp edi, ecx
je 0x1008d07d
jmp 0x1008d092
mov ecx, dword [esp + 0x94]
add edi, ecx
cmp edi, ecx
jae 0x1008d092
mov ecx, dword [esp + 0x9c]
lea ebx, [ecx + ebx + 1]
cmp ebx, ecx
jb 0x1008d09f
cmp ebx, ecx
je 0x1008d09f
jmp 0x1008d0a6
mov ecx, dword [esp + 0x9c]
add ebx, ecx
cmp ebx, ecx
jae 0x1008d0a6
mov ecx, 1
jmp 0x1008d0a8
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x1008d0b9
test edx, edx
jne 0x1008d0b9
mov ecx, 1
jmp 0x1008d0bb
xor ecx, ecx
mov eax, dword [esp + 0x78]
add eax, ecx
mov dword [esp + 0x78], eax
js 0x1008cffa
mov ecx, dword [esp + 0x74]
or eax, edx
or eax, ebx
or eax, edi
mov edx, 1
xor ebx, ebx
or eax, dword [esp + 0x64]
or eax, dword [esp + 0x80]
cmovne ebx, edx
or ecx, ebx
mov edi, dword [esp + 0x24]
mov edx, ecx
shl edx, 0x11
mov ebx, esi
shl ebx, 0x11
shr ecx, 0xf
or ebx, ecx
mov dword [esp + 0x30], ebx
mov ecx, edi
shl ecx, 0x11
shr esi, 0xf
or ecx, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x2c], ecx
mov eax, esi
shl eax, 0x11
shr edi, 0xf
or eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
shr esi, 0xf
mov dword [esp + 0x70], esi
cmp eax, 0x7ffd
jae 0x1008d2b8
test edx, edx
je 0x1008d24c
fnstcw word [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x100ce748]
mov ebx, dword [0x100ce750]
movsd xmm0, qword [ecx]
and eax, 0xc00
addsd xmm0, qword [ebx]
movsd qword [esp + 8], xmm0
jne 0x1008d171
mov ebx, edx
shr ebx, 0x1f
jmp 0x1008d1a4
cmp eax, 0xc00
je 0x1008d212
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1008d195
mov ecx, 1
xor ebx, ebx
cmp eax, 0x400
cmove ebx, ecx
jmp 0x1008d1a4
mov ecx, 1
xor ebx, ebx
cmp eax, 0x800
cmove ebx, ecx
test ebx, ebx
je 0x1008d212
mov esi, dword [esp + 0x30]
add esi, 1
jne 0x1008d1dc
mov edi, dword [esp + 0x2c]
add edi, 1
jne 0x1008d1d2
mov ecx, dword [esp + 0x24]
add ecx, 1
jne 0x1008d1cc
mov ebx, dword [esp + 0x70]
add ebx, 1
jmp 0x1008d1e8
mov ebx, dword [esp + 0x70]
jmp 0x1008d1e8
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
jmp 0x1008d1e8
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x5c], edi
mov edi, 1
cmp eax, 0
mov eax, 0
cmove eax, edi
add edx, edx
mov edx, 0
cmove edx, edi
mov edi, dword [esp + 0x5c]
and eax, edx
not eax
and esi, eax
jmp 0x1008d222
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x60]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
shl edx, 0x10
mov ecx, dword [esp + 0x68]
add edx, ebx
or ecx, edx
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x34], ebx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x8c]
mov dword [eax], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
shl esi, 0x10
add edi, esi
or edx, edi
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], ecx
and ecx, 0xc00
jne 0x1008d2d6
mov eax, edx
shr eax, 0x1f
jmp 0x1008d302
cmp ecx, 0xc00
je 0x1008d300
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1008d2f4
cmp ecx, 0x400
je 0x1008d777
jmp 0x1008d300
cmp ecx, 0x800
je 0x1008d7cd
xor eax, eax
mov ebx, dword [esp + 0x60]
cmp ebx, 0x7ffd
jle 0x1008d396
mov eax, dword [0x100ce74c]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
cmp ecx, 0xc00
je 0x1008d730
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1008d347
cmp ecx, 0x800
je 0x1008d730
jmp 0x1008d353
cmp ecx, 0x400
je 0x1008d730
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1ba8]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c1bac]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1bb0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1bb4]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ebx, 0x7ffd
je 0x1008d789
mov ecx, ebx
test ecx, ecx
jge 0x1008d139
cmp ecx, 0xffffffff
jge 0x1008d3b7
mov ebx, dword [esp + 0x30]
jmp 0x1008d3ff
test eax, eax
jne 0x1008d3c1
mov ebx, dword [esp + 0x30]
jmp 0x1008d3ff
mov eax, dword [esp + 0x70]
cmp eax, 0x1ffff
jae 0x1008d3d2
mov ebx, dword [esp + 0x30]
jmp 0x1008d3ff
jne 0x1008d40d
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
jae 0x1008d3e3
mov ebx, dword [esp + 0x30]
jmp 0x1008d3ff
jne 0x1008d40d
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
jae 0x1008d3f4
mov ebx, dword [esp + 0x30]
jmp 0x1008d3ff
jne 0x1008d40d
mov ebx, dword [esp + 0x30]
cmp ebx, 0xffffffff
jae 0x1008d411
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x1008d41a
mov ebx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x84], eax
neg ecx
mov dword [esp + 0x60], ecx
mov eax, ecx
neg eax
cmp ecx, 0x20
mov dword [esp + 0x9c], eax
jge 0x1008d4b2
mov ecx, eax
mov esi, ebx
shl esi, cl
mov edi, 1
cmp edx, 0
mov edx, 0
cmovne edx, edi
mov ecx, eax
or edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x60]
mov edi, esi
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, eax
or edi, ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x24]
mov ebx, edi
shl ebx, cl
mov ecx, edx
shr esi, cl
mov ecx, eax
or ebx, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x80], ebx
mov eax, esi
shl eax, cl
mov ecx, edx
shr edi, cl
mov ecx, edx
shr esi, cl
mov edx, dword [esp + 0x58]
mov dword [esp + 0x8c], esi
or eax, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
jmp 0x1008d5ec
mov eax, ecx
cmp eax, 0x20
je 0x1008d6fb
cmp eax, 0x40
jge 0x1008d529
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x9c]
mov ecx, esi
mov edi, eax
shl edi, cl
or edx, ebx
mov ebx, 1
mov ecx, esi
mov edx, 0
cmovne edx, ebx
or edx, edi
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x24]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x60]
shr eax, cl
mov ecx, esi
or edi, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], edi
mov ebx, eax
shl ebx, cl
mov ecx, dword [esp + 0x60]
shr edx, cl
or ebx, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x80], ebx
shr eax, cl
mov dword [esp + 0x94], eax
jmp 0x1008d5e1
cmp eax, 0x40
je 0x1008d6d0
cmp eax, 0x60
jge 0x1008d57a
or ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, eax
or ebx, edx
mov ecx, dword [esp + 0x9c]
mov esi, 1
mov edx, 0
cmovne edx, esi
shl edi, cl
mov ebx, dword [esp + 0x70]
or edx, edi
mov edi, ebx
shl edi, cl
mov ecx, dword [esp + 0x60]
shr eax, cl
shr ebx, cl
mov dword [esp + 0x80], ebx
or edi, eax
mov dword [esp + 0x34], edi
jmp 0x1008d5d8
cmp eax, 0x60
je 0x1008d6ac
cmp eax, 0x80
jge 0x1008d5c0
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
or esi, dword [esp + 0x2c]
mov eax, edi
shl eax, cl
or esi, ebx
or esi, edx
mov ecx, dword [esp + 0x60]
mov ebx, 1
mov edx, 0
cmovne edx, ebx
shr edi, cl
mov dword [esp + 0x34], edi
or edx, eax
jmp 0x1008d5cd
xor eax, eax
mov dword [esp + 0x34], eax
xor edi, edi
mov edx, 1
xor eax, eax
mov dword [esp + 0x80], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x94], eax
xor ecx, ecx
mov dword [esp + 0x8c], ecx
xor esi, esi
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x1008d691
test edx, edx
je 0x1008d62d
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
mov eax, dword [0x100ce750]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov dword [esp + 0x70], esi
xor ecx, ecx
mov dword [esp + 0x60], ecx
jmp 0x1008d141
mov edx, dword [esp + 0x98]
test dl, 0x10
jne 0x1008d686
mov edx, dword [0x100ce754]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x94], eax
mov eax, dword [0x100ce750]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x70], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x60], ecx
jmp 0x1008d275
xor eax, eax
mov dword [esp + 0x60], eax
jmp 0x1008d275
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x70], esi
xor eax, eax
mov dword [esp + 0x60], eax
jmp 0x1008d139
or ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x34], edi
or ebx, edx
mov eax, 1
mov edx, 0
cmovne edx, eax
or edx, dword [esp + 0x24]
jmp 0x1008d5cd
or edx, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x80], ebx
mov edi, 1
mov edx, 0
cmovne edx, edi
mov edi, dword [esp + 0x24]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
jmp 0x1008d5d8
mov eax, dword [esp + 0x70]
mov dword [esp + 0x94], eax
mov edi, 1
cmp edx, 0
mov edx, 0
cmovne edx, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
or edx, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x80], ebx
jmp 0x1008d5e1
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1be8]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c1bec]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1bf0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1bf4]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x1008d300
mov eax, 1
jmp 0x1008d302
mov ebx, dword [esp + 0x70]
cmp ebx, 0x1ffff
jne 0x1008d139
mov ebx, dword [esp + 0x24]
cmp ebx, 0xffffffff
jne 0x1008d139
mov ebx, dword [esp + 0x2c]
cmp ebx, 0xffffffff
jne 0x1008d139
mov ebx, dword [esp + 0x30]
cmp ebx, 0xffffffff
jne 0x1008d139
test eax, eax
jne 0x1008d312
jmp 0x1008d139
test edx, edx
je 0x1008d300
mov eax, 1
jmp 0x1008d302
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x78]
cmp edx, eax
jne 0x1008c682
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
cmp edx, eax
jne 0x1008c682
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x64]
cmp edx, eax
jne 0x1008c682
lea edx, [edi + 0x3ffe]
cmp edx, 0x7ffd
jle 0x1008d8c4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
fnstcw word [esp + 0x18]
mov edx, dword [esp + 0x18]
mov eax, dword [0x100ce74c]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x1008d730
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1008d875
cmp edx, 0x800
je 0x1008d730
jmp 0x1008d881
cmp edx, 0x400
je 0x1008d730
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1ba8]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c1bac]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1bb0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1bb4]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x1008d8f4
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x3fff
shl edi, 0x10
or edx, edi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffef
jle 0x1008d92b
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
or edx, edi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffcf
jle 0x1008d960
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffaf
jle 0x1008d995
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 4], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffff8f
jle 0x1008d9ca
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [0x100ce750]
mov edx, dword [esp + 0x68]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
and ecx, 0xc00
test edx, edx
je 0x1008da0d
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmove edx, eax
jmp 0x1008da1d
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x68]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x78]
or eax, dword [esp + 0x80]
xor ecx, ecx
or eax, dword [esp + 0x64]
mov eax, 1
cmovne ecx, eax
or ecx, dword [esp + 0x6c]
jne 0x1008da6b
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x1008daab
cmp ecx, 0x10000
jae 0x1008da81
mov eax, 2
mov dword [esp + 0x84], eax
jmp 0x1008daab
cmp ecx, 0x7fff0000
jae 0x1008da97
mov eax, 4
mov dword [esp + 0x84], eax
jmp 0x1008daab
mov eax, 0x10
mov ecx, 8
cmova ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x94]
or eax, dword [esp + 0x7c]
xor ecx, ecx
or eax, dword [esp + 0x90]
mov eax, 1
cmovne ecx, eax
or ecx, dword [esp + 0x60]
jne 0x1008dad4
mov ecx, 1
jmp 0x1008daff
cmp ecx, 0x10000
jae 0x1008dae3
mov ecx, 2
jmp 0x1008daff
cmp ecx, 0x7fff0000
jae 0x1008daf2
mov ecx, 4
jmp 0x1008daff
mov eax, 0x10
mov ecx, 8
cmova ecx, eax
mov eax, dword [esp + 0x84]
or eax, ecx
mov dword [esp + 0x34], eax
test al, 0x10
je 0x1008dcfb
mov eax, dword [esp + 0x84]
cmp ecx, eax
je 0x1008db73
cmp eax, 0x10
je 0x1008e1bf
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [edi], eax
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0xc]
mov dword [edi + 0xc], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
test eax, 0x8000
jne 0x1008dce3
mov eax, dword [0x100ce740]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov eax, dword [edx + 0xc]
jmp 0x1008dce3
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
xor esi, esi
and eax, 0x8000
mov ecx, 1
cmove esi, ecx
and edx, 0x8000
mov ebx, esi
mov edx, 0
cmove edx, ecx
or ebx, edx
je 0x1008dbb7
mov eax, dword [0x100ce740]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
cmp edx, esi
je 0x1008dbe4
test esi, esi
je 0x1008dc97
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x1008dce3
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
cmp eax, edx
jb 0x1008dc33
mov eax, dword [esp + 0x78]
mov ecx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
cmp edx, ecx
jne 0x1008dc54
mov edx, dword [esp + 0x94]
cmp eax, edx
jb 0x1008dc33
cmp eax, edx
jne 0x1008dc54
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp eax, edx
jb 0x1008dc33
cmp eax, edx
jne 0x1008dc54
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x64]
cmp eax, edx
jae 0x1008dc54
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x1008dce3
mov eax, ecx
mov edx, dword [esp + 0x6c]
cmp eax, edx
jb 0x1008dc97
cmp eax, edx
jne 0x1008dcb5
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
cmp eax, edx
jb 0x1008dc97
cmp eax, edx
jne 0x1008dcb5
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
cmp eax, edx
jb 0x1008dc97
cmp eax, edx
jne 0x1008dcb5
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x64]
cmp eax, edx
jae 0x1008dcb5
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x1008dce3
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x1008dbc3
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov edx, dword [ebp + 8]
or eax, 0x8000
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x84]
test ecx, eax
je 0x1008dd50
test al, 2
jne 0x1008dd50
mov eax, dword [0x100ce740]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov edx, dword [0x100c1b98]
mov dword [edi], edx
mov ecx, dword [0x100c1b9c]
mov dword [edi + 4], ecx
mov ebx, dword [0x100c1ba0]
mov dword [edi + 8], ebx
mov esi, dword [0x100c1ba4]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 8
je 0x1008ddb9
test cl, 2
je 0x1008dd72
mov eax, dword [0x100ce744]
mov edx, dword [0x100ce748]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1ba8]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c1bac]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1bb0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1bb4]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test cl, 1
jne 0x1008e254
test al, 1
jne 0x1008ddcb
test cl, 8
je 0x1008de33
mov eax, dword [esp + 0x34]
test al, 2
je 0x1008ddec
mov eax, dword [0x100ce744]
mov edx, dword [0x100ce748]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x100c1bc8]
mov dword [edx], ecx
mov ebx, dword [edi + 0x100c1bcc]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x100c1bd0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x100c1bd4]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ebx
test edx, edx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x1c], esi
mov esi, dword [0x100ce744]
movsd xmm0, qword [esi]
mov esi, dword [0x100ce748]
mulsd xmm0, qword [esi]
movsd qword [esp + 8], xmm0
jne 0x1008dff7
test ebx, ebx
je 0x1008de72
mov esi, ebx
shl esi, 0xf
xor edx, edx
jmp 0x1008dea4
mov edx, dword [esp + 0x94]
test edx, edx
je 0x1008de86
mov esi, edx
mov edx, 0x11
jmp 0x1008dea4
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
cmp edx, 0
cmovne esi, edx
mov eax, 0x31
mov edx, 0x51
cmovne edx, eax
bsr esi, esi
sub edx, esi
add edx, 0x1f
mov esi, edx
neg esi
mov dword [esp + 0x84], esi
cmp edx, 0x20
jge 0x1008df2a
mov esi, dword [esp + 0x94]
mov ecx, edx
shl ebx, cl
mov eax, esi
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, edx
shl esi, cl
mov ecx, dword [esp + 0x84]
or ebx, eax
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x7c]
mov eax, ebx
shr eax, cl
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x84]
or esi, eax
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x90]
mov eax, esi
shr eax, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x90], esi
or ebx, eax
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x1008dff0
je 0x1008e1f7
cmp edx, 0x40
jge 0x1008df91
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x7c]
mov ecx, edx
shl ebx, cl
mov esi, eax
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x84]
mov ecx, ebx
shr esi, cl
mov ecx, edx
shl eax, cl
or esi, dword [esp + 0x94]
mov ecx, ebx
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x90]
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x7c], esi
or ebx, eax
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x1008dfe7
je 0x1008e1e0
cmp edx, 0x60
jge 0x1008dfc5
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
mov ecx, edx
shl esi, cl
mov ebx, eax
mov ecx, dword [esp + 0x84]
shr ebx, cl
mov ecx, edx
shl eax, cl
mov dword [esp + 0x94], eax
or ebx, esi
jmp 0x1008dfe1
mov esi, dword [esp + 0x90]
mov ecx, edx
mov ebx, esi
shl ebx, cl
cmp edx, 0x60
cmove ebx, esi
xor esi, esi
mov dword [esp + 0x94], esi
xor esi, esi
mov dword [esp + 0x7c], esi
xor esi, esi
mov dword [esp + 0x90], esi
neg edx
add edx, 1
jmp 0x1008dffb
mov ebx, dword [esp + 0x20]
test edi, edi
jne 0x1008e1ae
mov esi, dword [esp + 0x28]
test esi, esi
je 0x1008e014
mov eax, esi
shl eax, 0xf
xor edi, edi
jmp 0x1008e041
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1008e023
mov edi, 0x11
jmp 0x1008e041
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
cmp edi, 0
cmovne eax, edi
mov ecx, 0x31
mov edi, 0x51
cmovne edi, ecx
bsr eax, eax
sub edi, eax
add edi, 0x1f
mov eax, edi
neg eax
mov dword [esp + 0x84], eax
cmp edi, 0x20
jge 0x1008e0cd
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], ebx
mov ecx, edi
shl esi, cl
mov ebx, eax
mov ecx, dword [esp + 0x84]
shr ebx, cl
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x84]
or esi, ebx
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x80]
mov ebx, esi
shr ebx, cl
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x84]
or eax, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
mov eax, ebx
shr eax, cl
mov ecx, edi
shl ebx, cl
or esi, eax
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x1008e1a4
je 0x1008e231
cmp edi, 0x40
jge 0x1008e134
mov eax, dword [esp + 0x80]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x1c]
mov ecx, edi
shl ebx, cl
mov ecx, dword [esp + 0x84]
mov esi, eax
shr esi, cl
mov ecx, edi
shl eax, cl
or ebx, esi
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x74], ebx
mov ebx, esi
shr ebx, cl
mov ecx, edi
shl esi, cl
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x74]
or ebx, eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x1008e19e
je 0x1008e219
cmp edi, 0x60
jge 0x1008e177
mov eax, dword [esp + 0x80]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x64]
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x84]
mov esi, ebx
shr esi, cl
mov ecx, edi
shl ebx, cl
mov dword [esp + 0x78], ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
or esi, eax
jmp 0x1008e195
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov ecx, edi
mov esi, eax
shl esi, cl
cmp edi, 0x60
cmove esi, eax
xor eax, eax
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x64], eax
neg edi
add edi, 1
jmp 0x1008c662
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x28]
jmp 0x1008c662
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [edi], eax
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0xc]
mov dword [edi + 0xc], esi
jmp 0x1008db44
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x94], esi
jmp 0x1008dfe1
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x7c], esi
jmp 0x1008dfe7
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
jmp 0x1008e195
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x80], eax
jmp 0x1008e19e
mov eax, dword [0x100ce748]
mov edx, dword [0x100ce740]
mov ecx, dword [esp + 0x68]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov ebx, 1
xor edx, edx
cmp ecx, 0
cmovne edx, ebx
mov ecx, dword [ebp + 8]
shl edx, 4
mov esi, dword [edx + 0x100c1ba8]
mov dword [ecx], esi
mov edi, dword [edx + 0x100c1bac]
mov dword [ecx + 4], edi
mov eax, dword [edx + 0x100c1bb0]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x100c1bb4]
mov dword [ecx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret