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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xa4
mov ebx, dword [ebp + 0x10]
pxor xmm0, xmm0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0xc]
mov edi, ecx
and edi, 0x7fffffff
mov dword [esp + 0x28], edi
mov edi, dword [edx + 8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x74], edi
mov esi, dword [edx + 0xc]
mov eax, esi
mov edi, dword [edx + 4]
and eax, 0x7fffffff
mov edx, dword [edx]
xor esi, ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], edx
mov edx, dword [ebx + 8]
mov edi, dword [ebx + 4]
mov ebx, dword [ebx]
mov dword [esp + 0xa0], ebx
mov ebx, eax
shr ebx, 0x10
mov dword [esp + 0x8c], edi
mov dword [esp + 0x7c], esi
and esi, 0x80000000
mov edi, dword [esp + 0x28]
mov dword [esp + 0x78], esi
movzx esi, di
shr edi, 0x10
mov dword [esp + 0x20], edi
lea edi, [ebx - 1]
movsd qword [esp + 0x48], xmm0
mov dword [esp + 0x9c], edx
movzx edx, ax
movsd xmm1, qword [esp + 0x48]
cmp edi, 0x7ffd
mov edi, dword [esp + 0x24]
ja 0x660640
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x20]
lea esi, [esi - 1]
cmp esi, 0x7ffd
mov esi, dword [esp + 0xc]
ja 0x660640
sub ebx, dword [esp + 0x20]
or edx, 0x10000
or esi, 0x10000
lea eax, [ebx + 0x3ffd]
mov dword [esp + 0x70], eax
cmp edx, esi
je 0x6603c5
cmp esi, edx
jae 0x65f4cc
mov eax, edi
lea ebx, [ebx + 0x3ffe]
shl edx, 0xe
shr eax, 0x12
or edx, eax
mov eax, dword [esp + 0x84]
mov ecx, eax
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x24], edi
mov dword [esp + 0x74], edi
mov edi, ecx
shl eax, 0xe
shr edi, 0x12
shl ecx, 0xe
or eax, edi
mov dword [esp + 0x54], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x70], ebx
mov edi, dword [esp + 0x24]
jmp 0x65f511
mov eax, dword [esp + 0x84]
mov ebx, eax
mov ecx, edi
shl edi, 0xf
shr ebx, 0x11
shl edx, 0xf
or edi, ebx
shr ecx, 0x11
mov ebx, dword [esp + 0x80]
or edx, ecx
mov ecx, ebx
shl eax, 0xf
shr ecx, 0x11
shl ebx, 0xf
or eax, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x74], edi
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ebx
mov ecx, dword [esp + 0x9c]
mov ebx, ecx
shl esi, 0xf
shr ebx, 0x11
mov eax, dword [esp + 0x8c]
or esi, ebx
mov ebx, eax
shl ecx, 0xf
shr ebx, 0x11
or ecx, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x9c], ecx
mov ecx, ebx
shl eax, 0xf
shr ecx, 0x11
shl ebx, 0xf
or eax, ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0xa0], ebx
cmp esi, edx
jb 0x65f56f
jne 0x65f5af
cmp edi, dword [esp + 0x9c]
jb 0x65f5b1
mov eax, 0xffffffff
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov dword [esp], ebx
mov dword [esp + 0x98], esi
jmp 0x65f6a2
ja 0x65f5be
mov dword [esp + 0x88], 0xffffffff
jmp 0x65f5d1
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x74]
div dword [esp + 0x60]
mov dword [esp + 0x88], eax
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x9c]
mul esi
mov ebx, eax
mov eax, esi
mov edi, dword [esp + 0x60]
mov ecx, edx
mul edi
neg ebx
add ecx, eax
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x84]
adc edx, 0
xor eax, eax
add ebx, esi
neg ecx
cmp ebx, esi
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x74]
seta al
add ecx, edi
sub ecx, eax
mov dword [esp], edi
cmp ecx, edi
ja 0x65f62c
test eax, eax
je 0x65f633
cmp ecx, dword [esp]
jne 0x65f633
mov esi, 1
jmp 0x65f635
xor esi, esi
neg edx
mov eax, dword [esp + 0x54]
add edx, eax
mov dword [esp + 0x98], eax
sub edx, esi
js 0x65fe38
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
cmp ecx, dword [esp + 0x94]
jb 0x65f667
mov dword [esp + 0x64], 0xffffffff
jmp 0x65f6a2
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x60]
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x98], ebx
mov ecx, dword [esp + 0xa0]
mov eax, ecx
mov edi, dword [esp + 0x64]
mul edi
mov ebx, dword [esp + 0x90]
mov esi, edx
mov dword [esp + 0x68], eax
mov eax, ebx
mul ecx
mov dword [esp + 0xc], eax
mov eax, edi
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], edx
mul ecx
mov dword [esp + 0x24], eax
mov eax, ebx
mov dword [esp + 0x28], edx
mul ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x30], edx
mul edi
mov dword [esp + 0x34], eax
mov ecx, edx
mov eax, dword [esp + 0x9c]
mul ebx
mov ebx, eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x38], edx
mul edi
add esi, dword [esp + 0xc]
mov dword [esp + 4], edi
mov edi, 0
adc edi, 0
add esi, dword [esp + 0x24]
mov dword [esp + 0x40], edx
adc edi, 0
xor edx, edx
add edi, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
adc edx, 0
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
adc edx, 0
add eax, dword [esp + 0x34]
mov dword [esp + 0x6c], esi
mov esi, 0
adc esi, 0
add edi, eax
mov eax, dword [esp + 0x90]
adc edx, esi
xor esi, esi
add edx, dword [esp + 0x30]
adc esi, 0
add edx, ecx
adc esi, 0
xor ecx, ecx
add ebx, dword [esp + 0x3c]
adc ecx, 0
add edx, ebx
mov dword [esp + 0x44], edx
adc esi, ecx
xor ebx, ebx
mul dword [esp + 0x94]
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x40]
adc ebx, 0
add esi, eax
adc edx, 0
xor eax, eax
add ecx, esi
adc ebx, edx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
mov edx, dword [esp + 0x6c]
seta al
neg ebx
add edx, eax
mov dword [esp + 0x68], ebx
neg edx
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x44]
jne 0x65f7cc
test eax, eax
je 0x65f7e7
cmp dword [esp + 0x6c], 0
jne 0x65f7e7
mov eax, dword [esp + 0x80]
lea edx, [eax - 1]
sub edx, edi
cmp edx, eax
ja 0x65f7f6
cmp edx, dword [esp + 0x80]
je 0x65f7f6
jmp 0x65f811
mov eax, dword [esp + 0x80]
mov edx, eax
sub edx, edi
cmp edx, eax
jbe 0x65f811
mov esi, dword [esp + 0x84]
lea eax, [esi - 1]
sub eax, ebx
cmp eax, esi
ja 0x65f820
cmp eax, dword [esp + 0x84]
je 0x65f820
jmp 0x65f830
mov esi, dword [esp + 0x84]
mov eax, esi
sub eax, ebx
cmp eax, esi
jbe 0x65f830
mov esi, dword [esp]
lea ebx, [esi - 1]
sub ebx, ecx
cmp ebx, esi
ja 0x65f83b
je 0x65f83b
jmp 0x65f842
mov esi, dword [esp]
mov ebx, esi
sub ebx, ecx
cmp ebx, esi
jbe 0x65f842
mov ecx, 1
jmp 0x65f844
xor ecx, ecx
mov esi, dword [esp + 0x98]
sub esi, dword [esp + 8]
sub esi, ecx
mov dword [esp + 0x98], esi
jns 0x65f937
mov dword [esp], ebx
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 4]
dec ebx
cmp ebx, 0xffffffff
jne 0x65f889
mov edi, dword [esp + 0x90]
dec edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0xa0]
add esi, edi
cmp esi, edi
jae 0x65f8a9
mov edi, dword [esp + 0x8c]
lea ecx, [ecx + edi + 1]
cmp ecx, edi
jb 0x65f8b6
je 0x65f8b6
jmp 0x65f8c9
mov edi, dword [esp + 0x8c]
add ecx, edi
cmp ecx, edi
jae 0x65f8c9
mov edi, dword [esp + 0x9c]
lea edx, [edx + edi + 1]
cmp edx, edi
jb 0x65f8d6
je 0x65f8d6
jmp 0x65f8e9
mov edi, dword [esp + 0x9c]
add edx, edi
cmp edx, edi
jae 0x65f8e9
mov edi, dword [esp + 0x94]
lea eax, [eax + edi + 1]
cmp eax, edi
jb 0x65f8f6
je 0x65f8f6
jmp 0x65f905
mov edi, dword [esp + 0x94]
add eax, edi
cmp eax, edi
jae 0x65f905
inc dword [esp]
jne 0x65f905
mov dword [esp + 8], 1
jmp 0x65f90d
mov dword [esp + 8], 0
mov edi, dword [esp + 0x98]
add edi, dword [esp + 8]
mov dword [esp + 0x98], edi
js 0x65f86d
mov dword [esp + 4], ebx
mov dword [esp + 0x6c], ecx
mov ecx, ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x74], edx
cmp eax, dword [esp + 0x94]
jb 0x65f952
mov dword [esp + 0x58], 0xffffffff
jmp 0x65f96d
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x74]
div dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x9c]
mul ebx
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x94]
neg esi
mul ebx
add eax, ecx
mov edi, edx
mov edx, dword [esp + 0x6c]
adc edi, 0
add esi, edx
mov ecx, dword [esp + 0x74]
cmp esi, edx
jbe 0x65f9ab
lea edx, [ecx - 1]
sub edx, eax
cmp edx, ecx
ja 0x65f9b3
je 0x65f9b3
jmp 0x65f9ba
mov edx, ecx
sub edx, eax
cmp edx, ecx
jbe 0x65f9ba
mov ecx, 1
jmp 0x65f9bc
xor ecx, ecx
mov eax, dword [esp + 0x54]
sub eax, edi
sub eax, ecx
js 0x65fdfa
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
cmp edx, dword [esp + 0x94]
jb 0x65f9e5
mov dword [esp + 0x5c], 0xffffffff
jmp 0x65f9f9
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
div dword [esp + 0x60]
mov dword [esp + 0x5c], eax
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov eax, ecx
and eax, 0x3fff
cmp eax, 4
ja 0x65fd06
mov esi, dword [esp + 0xa0]
mov eax, esi
mul ecx
mov dword [esp + 0x90], eax
mov eax, esi
mov edi, edx
mul ebx
mov esi, dword [esp + 0x8c]
mov dword [esp + 8], eax
mov eax, esi
mov dword [esp + 0xc], edx
mul ecx
mov dword [esp + 0x20], eax
mov eax, esi
mov dword [esp + 0x24], edx
mul ebx
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x28], eax
mov eax, esi
mov dword [esp + 0x2c], edx
mul ecx
mov dword [esp + 0x30], eax
mov eax, esi
mov dword [esp + 0x34], edx
xor esi, esi
mul ebx
add edi, dword [esp + 8]
mov dword [esp + 0x98], ebx
mov ebx, eax
mov eax, dword [esp + 0x60]
adc esi, 0
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
mul ecx
add edi, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
adc esi, 0
xor edx, edx
add esi, dword [esp + 0xc]
mov dword [esp + 0x44], edi
adc edx, 0
add esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
adc edx, 0
add edi, dword [esp + 0x30]
mov dword [esp + 0x94], ecx
mov ecx, 0
adc ecx, 0
add esi, edi
mov dword [esp + 0x38], eax
adc edx, ecx
xor eax, eax
xor ecx, ecx
add edx, dword [esp + 0x2c]
adc ecx, 0
xor edi, edi
add edx, dword [esp + 0x34]
adc ecx, 0
add ebx, dword [esp + 0x38]
adc eax, 0
add edx, ebx
mov dword [esp + 0x40], edx
adc ecx, eax
mov eax, dword [esp + 0x60]
mul dword [esp + 0x98]
mov ebx, dword [esp + 0x84]
add ebx, dword [esp + 0x3c]
adc edi, 0
add ecx, eax
adc edx, 0
xor eax, eax
add ebx, ecx
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
adc edi, edx
test ebx, ebx
mov edx, dword [esp + 0x44]
seta al
neg ebx
add edx, eax
mov dword [esp], edi
neg edx
mov dword [esp + 0x90], ebx
mov dword [esp + 4], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x98]
jne 0x65fb5f
cmp dword [esp + 4], 0
je 0x65fb66
cmp dword [esp + 0x44], 0
jne 0x65fb66
mov edx, 1
jmp 0x65fb68
xor edx, edx
neg esi
mov eax, dword [esp + 0x68]
add esi, eax
sub esi, edx
cmp esi, eax
ja 0x65fb80
test edx, edx
je 0x65fb87
cmp esi, dword [esp + 0x68]
jne 0x65fb87
mov edx, 1
jmp 0x65fb89
xor edx, edx
neg edi
mov eax, dword [esp + 0x6c]
add edi, eax
sub edi, edx
cmp edi, eax
ja 0x65fba1
test edx, edx
je 0x65fbab
cmp edi, dword [esp + 0x6c]
jne 0x65fbab
mov dword [esp + 4], 1
jmp 0x65fbb3
mov dword [esp + 4], 0
mov eax, dword [esp + 0x84]
neg eax
mov edx, dword [esp + 0x74]
add eax, edx
sub eax, dword [esp + 4]
mov dword [esp + 0x84], eax
cmp eax, edx
ja 0x65fbe3
cmp dword [esp + 4], 0
je 0x65fbea
mov eax, edx
cmp eax, dword [esp + 0x84]
jne 0x65fbea
mov eax, 1
jmp 0x65fbec
xor eax, eax
mov edx, dword [esp + 0x54]
sub edx, dword [esp]
sub edx, eax
jns 0x65fce4
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0x94]
dec eax
cmp eax, 0xffffffff
mov dword [esp + 4], edx
lea edx, [ebx - 1]
cmove ebx, edx
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x90]
add ecx, ebx
mov edx, dword [esp + 4]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ecx
cmp ecx, ebx
mov ebx, dword [esp + 0x98]
jae 0x65fc66
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x44]
lea ecx, [ecx + eax + 1]
mov dword [esp + 0x44], ecx
cmp ecx, eax
jb 0x65fc7b
je 0x65fc7b
jmp 0x65fc8e
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x44], eax
cmp eax, ecx
jae 0x65fc8e
mov eax, dword [esp + 0x9c]
lea esi, [esi + eax + 1]
cmp esi, eax
jb 0x65fc9b
je 0x65fc9b
jmp 0x65fcae
mov eax, dword [esp + 0x9c]
add esi, eax
cmp esi, eax
jae 0x65fcae
mov eax, dword [esp + 0x80]
lea edi, [edi + eax + 1]
cmp edi, eax
jb 0x65fcbb
je 0x65fcbb
jmp 0x65fccd
mov eax, dword [esp + 0x80]
add edi, eax
cmp edi, eax
jae 0x65fccd
inc dword [esp + 0x84]
jne 0x65fccd
mov dword [esp], 1
jmp 0x65fcd4
mov dword [esp], 0
add edx, dword [esp]
js 0x65fc02
mov ecx, dword [esp + 0x94]
or edx, dword [esp + 0x84]
xor eax, eax
or edx, edi
or edx, esi
or edx, dword [esp + 0x44]
or edx, dword [esp + 0x90]
mov edx, 1
cmove edx, eax
or ecx, edx
mov edx, ebx
mov eax, ecx
shl edx, 0x11
shr ecx, 0xf
mov esi, dword [esp + 0x64]
or edx, ecx
mov ecx, esi
shl ecx, 0x11
shr ebx, 0xf
mov edi, dword [esp + 0x88]
or ecx, ebx
mov ebx, edi
shl ebx, 0x11
shr esi, 0xf
shl eax, 0x11
or ebx, esi
shr edi, 0xf
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x88], edi
cmp dword [esp + 0x70], 0x7ffd
jae 0x65ff47
test eax, eax
je 0x65ff0a
fnstcw word [esp + 0x50]
mov edx, dword [0x7adc34]
mov ecx, dword [0x7adc38]
mov edi, dword [esp + 0x50]
movsd xmm0, qword [edx]
and edi, 0xc00
addsd xmm0, qword [ecx]
movsd qword [esp + 0x48], xmm0
jne 0x65fd94
test eax, eax
jl 0x6603a6
jmp 0x65fdbd
cmp edi, 0xc00
je 0x65fdbd
cmp dword [esp + 0x78], 0
je 0x65fdb1
cmp edi, 0x400
je 0x65fea0
jmp 0x65fdbd
cmp edi, 0x800
je 0x65ff01
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [esp + 0x70]
shl edx, 0x10
add edx, esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
or ecx, edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x9c]
add esi, edi
dec ebx
cmp esi, edi
jae 0x65fe21
lea edx, [edx + ecx + 1]
cmp edx, ecx
jb 0x65fe27
jne 0x65fe2f
inc eax
js 0x65fe08
jmp 0x660363
add edx, ecx
cmp edx, ecx
jae 0x65fe2f
inc eax
js 0x65fe08
jmp 0x660378
test eax, eax
jl 0x65fe08
jmp 0x660363
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x9c]
add ebx, edi
dec esi
cmp ebx, edi
jae 0x65fe63
lea ecx, [ecx + eax + 1]
cmp ecx, eax
jb 0x65fe69
jne 0x65fe71
inc edx
js 0x65fe4d
jmp 0x65fe75
add ecx, eax
cmp ecx, eax
jae 0x65fe71
inc edx
js 0x65fe4d
jmp 0x660389
test edx, edx
jl 0x65fe4d
mov dword [esp + 0x90], esi
mov eax, esi
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x88]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x90], edx
jmp 0x65f65d
mov edx, dword [esp + 0x5c]
inc edx
jne 0x65fee3
mov ecx, dword [esp + 0x58]
inc ecx
jne 0x65fec5
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x88]
inc esi
inc ebx
cmovne esi, dword [esp + 0x88]
jmp 0x65fed0
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x64]
test edi, edi
jne 0x65fef2
add eax, eax
cmp eax, 1
mov eax, 0
setb al
jmp 0x65fef4
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
xor eax, eax
not eax
and edx, eax
mov dword [esp + 0x5c], edx
jmp 0x65fdd0
mov edx, dword [esp + 0x5c]
inc edx
je 0x65fea7
jmp 0x65fee3
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x70]
shl ecx, 0x10
add edx, ecx
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x78]
or ebx, edx
mov dword [eax], edi
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
and edx, 0xc00
jne 0x65ff62
mov ecx, eax
shr ecx, 0x1f
jmp 0x65ff8d
cmp edx, 0xc00
je 0x65ff8b
cmp dword [esp + 0x78], 0
je 0x65ff7f
cmp edx, 0x400
je 0x660300
jmp 0x65ff8b
cmp edx, 0x800
je 0x660351
xor ecx, ecx
cmp dword [esp + 0x70], 0x7ffd
jle 0x65fffb
mov eax, dword [0x7adc3c]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
cmp edx, 0xc00
je 0x6602dc
cmp dword [esp + 0x78], 0
je 0x65ffcb
cmp edx, 0x800
je 0x6602dc
jmp 0x65ffd7
cmp edx, 0x400
je 0x6602dc
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x7579d0]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x660312
cmp dword [esp + 0x70], 0
jge 0x65fd58
cmp dword [esp + 0x70], 0xffffffff
jge 0x66001c
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
jmp 0x660052
test ecx, ecx
je 0x660013
mov edx, dword [esp + 0x88]
cmp edx, 0x1ffff
jb 0x660013
jne 0x66005c
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
cmp dword [esp + 0x64], 0xffffffff
jb 0x660052
jne 0x660063
mov edx, dword [esp + 0x58]
cmp edx, 0xffffffff
jb 0x660052
jne 0x660063
cmp dword [esp], 0xffffffff
jae 0x660063
mov dword [esp + 8], 1
jmp 0x66006b
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x70]
neg ecx
mov edx, ecx
neg edx
mov dword [esp + 0x70], ecx
mov dword [esp + 4], edx
cmp ecx, 0x20
jge 0x6600df
test eax, eax
mov eax, 0
mov esi, edx
mov ecx, esi
mov ebx, dword [esp]
mov edx, ebx
setne al
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x58]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x70]
shr ebx, cl
mov ecx, esi
or edi, ebx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x64]
mov ebx, edi
shl ebx, cl
mov ecx, dword [esp + 0x70]
shr edx, cl
mov ecx, esi
or ebx, edx
mov edx, dword [esp + 0x88]
mov esi, edx
shl esi, cl
mov ecx, dword [esp + 0x70]
shr edi, cl
shr edx, cl
or esi, edi
mov edi, dword [esp + 4]
jmp 0x6601c7
je 0x6602bb
cmp dword [esp + 0x70], 0x40
jge 0x660135
xor edi, edi
or eax, dword [esp]
mov esi, dword [esp + 0x58]
mov edx, esi
mov ebx, dword [esp + 4]
mov ecx, ebx
mov eax, 1
cmove eax, edi
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x64]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x70]
shr esi, cl
mov ecx, ebx
or edi, esi
mov esi, dword [esp + 0x88]
mov ebx, esi
shl ebx, cl
mov ecx, dword [esp + 0x70]
shr edx, cl
shr esi, cl
or ebx, edx
jmp 0x6601c5
je 0x66029a
cmp dword [esp + 0x70], 0x60
jge 0x66017a
mov edi, dword [esp]
xor esi, esi
or edi, dword [esp + 0x58]
or edi, eax
mov eax, 1
mov edx, dword [esp + 0x64]
mov ebx, edx
mov ecx, dword [esp + 4]
cmove eax, esi
shl ebx, cl
or eax, ebx
mov ebx, dword [esp + 0x88]
mov edi, ebx
shl edi, cl
mov ecx, dword [esp + 0x70]
shr edx, cl
shr ebx, cl
or edi, edx
jmp 0x6601c3
je 0x660277
cmp dword [esp + 0x70], 0x80
jge 0x6601ba
mov edx, dword [esp + 0x64]
xor ebx, ebx
or edx, dword [esp + 0x58]
or edx, dword [esp]
or edx, eax
mov eax, 1
mov edi, dword [esp + 0x88]
mov esi, edi
mov ecx, dword [esp + 4]
cmove eax, ebx
shl esi, cl
mov ecx, dword [esp + 0x70]
or eax, esi
shr edi, cl
jmp 0x6601c1
xor edi, edi
mov eax, 1
xor ebx, ebx
xor esi, esi
xor edx, edx
cmp dword [esp + 8], 0
je 0x660257
test eax, eax
je 0x66020a
mov dword [esp + 0x88], edx
mov edx, dword [0x7adc38]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
mov dword [esp + 0x64], esi
movsd qword [esp + 0x48], xmm0
mov dword [esp + 0x70], 0
jmp 0x65fd60
test byte [esp + 0xc], 0x10
jne 0x66024a
mov eax, dword [0x7adc38]
mov ecx, dword [0x7adc40]
mov dword [esp + 0x5c], edi
movsd xmm0, qword [eax]
mulsd xmm0, qword [ecx]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x88], edx
movsd qword [esp + 0x48], xmm0
mov dword [esp + 0x70], 0
jmp 0x65ff1d
mov dword [esp + 0x70], 0
jmp 0x65ff1d
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x88], edx
mov dword [esp + 0x70], 0
jmp 0x65fd58
mov edx, dword [esp]
xor ecx, ecx
or edx, dword [esp + 0x58]
or edx, eax
mov eax, 1
mov edi, dword [esp + 0x88]
cmove eax, ecx
or eax, dword [esp + 0x64]
jmp 0x6601c1
xor edx, edx
or eax, dword [esp]
mov eax, 1
cmove eax, edx
or eax, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x88]
jmp 0x6601c3
test eax, eax
mov eax, 0
mov edi, dword [esp + 0x58]
setne al
or eax, dword [esp]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x88]
jmp 0x6601c5
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x7579f0]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x65ff8b
mov ecx, 1
jmp 0x65ff8d
cmp dword [esp + 0x88], 0x1ffff
jne 0x660001
cmp dword [esp + 0x64], 0xffffffff
jne 0x660001
cmp dword [esp + 0x58], 0xffffffff
jne 0x660001
cmp dword [esp + 0x5c], 0xffffffff
jne 0x660001
test ecx, ecx
jne 0x65ff97
jmp 0x660001
test eax, eax
je 0x65ff8b
mov ecx, 1
jmp 0x65ff8d
mov dword [esp + 0x58], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x58]
jmp 0x65f9db
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x58], ebx
jmp 0x65f9e5
mov dword [esp + 0x90], esi
mov eax, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x88], eax
jmp 0x65f667
mov edx, dword [esp + 0x5c]
inc edx
je 0x65fea7
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
jmp 0x65fed0
cmp edi, dword [esp + 0x9c]
je 0x66041b
cmp edi, dword [esp + 0x9c]
ja 0x65f473
jne 0x65f4cc
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x8c]
ja 0x65f473
cmp eax, dword [esp + 0x8c]
jne 0x65f4cc
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xa0]
ja 0x65f473
jmp 0x65f4cc
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x8c]
jne 0x6603ce
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xa0]
jne 0x6603ce
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jg 0x6605ae
test eax, eax
js 0x66047b
mov ebx, dword [ebp + 8]
xor edx, edx
shl eax, 0x10
add eax, 0x10000
mov ecx, dword [esp + 0x78]
or ecx, eax
mov dword [ebx], edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffef
jle 0x6604aa
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov edx, dword [esp + 0x78]
xor eax, eax
bts edx, ebx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x6604df
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov edx, 1
mov ebx, dword [esp + 0x78]
xor eax, eax
shl edx, cl
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], edx
mov dword [esi + 0xc], ebx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffaf
jle 0x660514
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov edx, 1
mov ebx, dword [esp + 0x78]
xor eax, eax
shl edx, cl
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ebx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x660549
mov esi, dword [ebp + 8]
add ebx, 0x400e
mov ecx, ebx
mov edx, 1
mov ebx, dword [esp + 0x78]
xor eax, eax
shl edx, cl
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi], edx
mov dword [esi + 0xc], ebx
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x60], esi
mov dword [esp + 0x54], edx
fnstcw word [esp + 0x50]
mov eax, dword [0x7adc38]
xor esi, esi
mov edi, dword [esp + 0x78]
mov ecx, edi
xor ecx, 0x80000000
mov ebx, 1
movsd xmm0, qword [eax]
shr ecx, 0x15
mulsd xmm0, xmm0
add ecx, 0x400
mov edx, dword [esp + 0x50]
and edx, 0xc00
mov eax, dword [ebp + 8]
cmp edx, ecx
movsd qword [esp + 0x48], xmm0
cmovne ebx, esi
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x60], esi
mov dword [esp + 0x54], edx
fnstcw word [esp + 0x50]
mov eax, dword [0x7adc3c]
mov edx, dword [esp + 0x50]
and edx, 0xc00
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
cmp edx, 0xc00
je 0x66061c
cmp dword [esp + 0x78], 0
je 0x6605f0
cmp edx, 0x800
je 0x66061c
jmp 0x6605f8
cmp edx, 0x400
je 0x66061c
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x7579d0]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x7579f0]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], esi
mov edi, 1
mov esi, dword [esp + 0x84]
or esi, dword [esp + 0x74]
or esi, dword [esp + 0x80]
mov esi, 0
cmovne esi, edi
mov edi, dword [esp + 0x74]
or esi, eax
mov dword [esp], esi
mov esi, dword [esp + 0xc]
jne 0x66067b
mov dword [esp], 1
jmp 0x6606bf
cmp dword [esp], 0x10000
jae 0x66068d
mov dword [esp], 2
jmp 0x6606bf
cmp dword [esp], 0x7fff0000
jae 0x66069f
mov dword [esp], 4
jmp 0x6606bf
mov dword [esp + 0x24], edi
mov edi, 8
mov dword [esp + 0xc], esi
mov esi, 0x10
cmova edi, esi
mov dword [esp], edi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x9c]
or esi, dword [esp + 0x8c]
or esi, dword [esp + 0xa0]
mov dword [esp + 0x24], edi
mov esi, 0
mov edi, 1
cmovne esi, edi
mov edi, dword [esp + 0x24]
or esi, dword [esp + 0x28]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xc]
jne 0x660705
mov dword [esp + 8], 1
jmp 0x66074e
cmp dword [esp + 4], 0x10000
jae 0x660719
mov dword [esp + 8], 2
jmp 0x66074e
cmp dword [esp + 4], 0x7fff0000
jae 0x66072d
mov dword [esp + 8], 4
jmp 0x66074e
mov dword [esp + 0x24], edi
mov edi, 8
mov dword [esp + 0xc], esi
mov esi, 0x10
cmova edi, esi
mov dword [esp + 8], edi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp]
or ecx, dword [esp + 8]
mov dword [esp + 4], ecx
test cl, 0x10
je 0x6608bc
mov edx, dword [esp + 8]
cmp edx, dword [esp]
je 0x6607b0
cmp dword [esp], 0x10
je 0x660cea
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
test eax, 0x8000
jne 0x6608a4
mov eax, dword [0x7adc44]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
mov eax, dword [edx + 0xc]
jmp 0x6608a4
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [edx + 0xc]
not edx
mov esi, dword [ecx + 0xc]
and edx, 0x8000
not esi
shr edx, 0xf
and esi, 0x8000
shr esi, 0xf
mov ebx, edx
or ebx, esi
je 0x6607ec
mov ecx, dword [0x7adc44]
movsd xmm0, qword [ecx]
divsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
cmp esi, edx
je 0x66080c
test edx, edx
jne 0x660895
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
jmp 0x6608a4
cmp eax, dword [esp + 0x28]
jb 0x660895
jne 0x66087f
cmp edi, dword [esp + 0x9c]
jb 0x660895
jne 0x66087f
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x8c]
jb 0x660895
jne 0x660847
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xa0]
jb 0x660895
jmp 0x660859
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x84]
jb 0x6607f8
jmp 0x660867
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x84]
jne 0x660885
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xa0]
ja 0x6607f8
jmp 0x660885
ja 0x6607f8
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
jne 0x6607f8
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
mov edx, dword [ebp + 8]
or eax, 0x8000
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
test dword [esp], eax
je 0x6608f8
test byte [esp], 2
jne 0x6608f8
mov eax, dword [0x7adc44]
mov edx, dword [ebp + 8]
movups xmm1, xmmword [0x757a10]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
movups xmmword [edx], xmm1
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp], 8
je 0x660942
test byte [esp + 8], 2
je 0x66091e
mov eax, dword [0x7adc48]
mov edx, dword [0x7adc34]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x7579d0]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esp + 8], 1
jne 0x660d74
mov ecx, dword [esp]
and ecx, 1
and eax, 8
or ecx, eax
je 0x66099e
test byte [esp + 4], 2
je 0x66097a
mov eax, dword [0x7adc48]
mov edx, dword [0x7adc34]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x7c]
shr eax, 0x1b
and eax, 0xfffffff0
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax + 0x757a20]
movups xmmword [edx], xmm0
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x7adc48]
mov dword [esp + 0x54], edx
mov edx, dword [0x7adc34]
movsd xmm0, qword [eax]
mov dword [esp + 0x60], esi
mulsd xmm0, qword [edx]
movsd qword [esp + 0x48], xmm0
cmp dword [esp + 0x20], 0
jne 0x660b76
test esi, esi
je 0x6609dd
mov eax, esi
shl eax, 0xf
mov dword [esp + 0x20], 0
jmp 0x660a1c
cmp dword [esp + 0x9c], 0
je 0x6609f8
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x20], 0x11
jmp 0x660a1c
mov edx, dword [esp + 0x8c]
mov ecx, 0x51
test edx, edx
mov eax, dword [esp + 0xa0]
cmovne eax, edx
mov edx, 0x31
cmovne ecx, edx
mov dword [esp + 0x20], ecx
bsr eax, eax
mov ecx, dword [esp + 0x20]
sub ecx, eax
add ecx, 0x1f
mov edx, ecx
neg edx
mov dword [esp + 0x20], ecx
mov dword [esp], edx
cmp ecx, 0x20
jge 0x660aa4
mov eax, ecx
mov ecx, eax
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x24], edi
mov edi, edx
shl esi, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, eax
or esi, edi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x8c]
mov edi, esi
shl edx, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, eax
or edx, edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x9c], edx
mov edx, edi
shl esi, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, eax
shl edi, cl
or esi, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0xc]
jmp 0x660b6b
je 0x660d15
cmp dword [esp + 0x20], 0x40
jge 0x660aff
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x9c]
mov edi, dword [esp]
mov eax, dword [esp + 0x8c]
mov esi, eax
shl edx, cl
mov ecx, edi
shr esi, cl
mov ecx, dword [esp + 0x20]
or esi, edx
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0xa0]
mov edx, edi
shr edx, cl
mov ecx, dword [esp + 0x20]
or edx, eax
shl edi, cl
mov dword [esp + 0x8c], edi
mov dword [esp + 0x9c], edx
mov edi, dword [esp + 0x24]
jmp 0x660b60
je 0x660cfb
cmp dword [esp + 0x20], 0x60
jge 0x660b39
mov eax, ecx
mov ecx, eax
mov edx, dword [esp + 0xa0]
mov esi, edx
shl dword [esp + 0x8c], cl
mov ecx, dword [esp]
shr esi, cl
mov ecx, eax
shl edx, cl
or esi, dword [esp + 0x8c]
mov dword [esp + 0x9c], edx
jmp 0x660b55
mov eax, dword [esp + 0xa0]
mov esi, eax
shl esi, cl
cmp ecx, 0x60
mov dword [esp + 0x9c], 0
cmove esi, eax
mov dword [esp + 0x8c], 0
mov dword [esp + 0xa0], 0
mov eax, ecx
neg eax
inc eax
mov dword [esp + 0x20], eax
jmp 0x660b7a
mov esi, dword [esp + 0x60]
test ebx, ebx
jne 0x660ce1
mov edx, dword [esp + 0x54]
test edx, edx
je 0x660b93
mov eax, edx
xor ebx, ebx
shl eax, 0xf
jmp 0x660bc0
mov eax, edi
test eax, eax
je 0x660ba0
mov ebx, 0x11
jmp 0x660bc0
mov ebx, dword [esp + 0x84]
mov ecx, 0x31
test ebx, ebx
mov eax, dword [esp + 0x80]
cmovne eax, ebx
mov ebx, 0x51
cmovne ebx, ecx
bsr eax, eax
sub ebx, eax
add ebx, 0x1f
mov eax, ebx
neg eax
mov dword [esp + 4], eax
cmp ebx, 0x20
jge 0x660c2a
mov ecx, ebx
mov eax, edi
shl edx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
or edx, eax
mov dword [esp], edx
mov edx, dword [esp + 0x84]
mov eax, edx
shl edi, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
shl edx, cl
or edi, eax
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x80]
shr eax, cl
mov ecx, ebx
or edx, eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x74], edi
shl dword [esp + 0x80], cl
mov edx, dword [esp]
jmp 0x660cd9
je 0x660d54
cmp ebx, 0x40
jge 0x660c75
mov eax, dword [esp + 0x84]
mov ecx, ebx
mov edx, eax
shl edi, cl
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, ebx
shl eax, cl
or edx, edi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x80]
shr edi, cl
mov ecx, ebx
or edi, eax
mov eax, dword [esp + 0x80]
shl eax, cl
mov dword [esp + 0x74], edi
mov dword [esp + 0x84], eax
jmp 0x660cce
je 0x660d3d
cmp ebx, 0x60
jge 0x660ca6
mov edi, dword [esp + 0x80]
mov ecx, ebx
mov edx, edi
mov eax, dword [esp + 0x84]
shl eax, cl
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, eax
mov dword [esp + 0x74], edi
jmp 0x660cc3
mov eax, dword [esp + 0x80]
mov ecx, ebx
mov edx, eax
xor edi, edi
shl edx, cl
cmp ebx, 0x60
mov dword [esp + 0x74], 0
cmove edx, eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
neg ebx
inc ebx
jmp 0x65f44d
mov edx, dword [esp + 0x54]
jmp 0x65f44d
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
jmp 0x660781
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x9c], eax
jmp 0x660b55
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x8c], edx
jmp 0x660b60
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x74], edi
jmp 0x660cc3
mov eax, dword [esp + 0x80]
mov edx, edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x74], edi
mov dword [esp + 0x84], eax
jmp 0x660cce
mov eax, dword [0x7adc34]
mov edx, dword [0x7adc44]
mov ecx, dword [esp + 0x7c]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
shr ecx, 0x1b
and ecx, 0xfffffff0
mov ebx, dword [ebp + 8]
movsd qword [esp + 0x48], xmm0
movups xmm1, xmmword [ecx + 0x7579d0]
movups xmmword [ebx], xmm1
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret