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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov eax, dword [0x101db764]
mov edi, dword [ebp + 8]
xor eax, ebp
mov dword [esp + 0xd8], eax
mov dword [esp + 0x68], ecx
mov esi, dword [ecx + 0x1948]
cmp esi, 0x27
sete al
cmp esi, 0x17
ja 0x10092d06
mov ecx, 0x8a0000
mov byte [esp + 0x70], 1
bt ecx, esi
jb 0x10092d0a
mov byte [esp + 0x70], al
mov dword [esp + 0xb0], 0
lea eax, [edx + 0x124]
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], edx
mov ebx, dword [edi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [edi]
mov esi, dword [edi + 0x10]
mov ecx, ebx
shr ecx, 3
mov eax, dword [eax + ecx]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 8
and cl, 7
shl eax, cl
shr eax, 0xf8
cmp esi, ebx
cmovbe ebx, esi
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x34], eax
mov dword [edi + 8], ebx
mov ebx, dword [esp + 0x28]
jne 0x10092d78
mov ecx, dword [esp + 0x68]
mov edx, ebx
mov dword [esp], edi
call fcn.10094de1
test eax, eax
js 0x100943b8
xor ecx, ecx
cmp dword [ebx + 4], 2
mov eax, dword [ebx + 0x10]
setne dl
test eax, eax
jle 0x1009349b
mov cl, dl
mov dword [esp + 0x20], 0
lea ecx, [ecx + ecx + 3]
mov edx, ecx
mov dword [esp + 0x18], ecx
neg dl
mov byte [esp + 0x30], dl
xor edx, edx
dec edx
shl edx, cl
lea ecx, [ebx + 0x1af0]
not edx
mov dword [esp + 0x6c], ecx
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dl, byte [ebx]
mov esi, edx
test dl, dl
mov dword [esp + 0x1c], 0
je 0x10092ef7
mov dword [esp + 0x64], ecx
mov ebx, dword [edi + 8]
mov ecx, dword [edi]
mov esi, edi
mov edi, dword [edi + 0x10]
mov eax, ebx
mov dword [esp + 0x10], ecx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 4
mov dword [esp + 0x50], edi
and cl, 7
shl eax, cl
shr eax, 0xfc
cmp edi, ebx
cmovbe ebx, edi
cmp eax, 0xc
mov dword [esi + 8], ebx
je 0x100945a8
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, ebx
mov esi, ecx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
mov edx, dword [ebp + 8]
and cl, 7
shl eax, cl
mov cl, byte [esp + 0x30]
shr eax, cl
cmp edi, ebx
cmovbe ebx, edi
cmp dword [esp + 0x40], ebx
mov dword [edx + 8], ebx
jl 0x100945a8
mov ecx, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
movzx ecx, cl
add ecx, eax
movzx edi, cl
movzx esi, byte [esi]
cmp edi, esi
ja 0x100945a8
cmp eax, dword [esp + 0x14]
je 0x10092e24
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jae 0x10092ed6
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
add dl, al
movzx eax, dl
mov edx, dword [esp + 0x24]
sub eax, ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + esi*4]
mov esi, edi
mov edi, dword [ebp + 8]
mov dword [ecx - 0x400], edx
mov dword [ecx], esi
add ecx, 4
dec eax
jne 0x10092eb2
mov eax, dword [esp + 0x20]
mov dl, byte [ebx]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], esi
add eax, esi
mov dword [esp + 0x20], eax
jmp 0x10092ee1
mov ebx, dword [esp + 0x28]
mov edi, dword [ebp + 8]
mov edx, esi
mov esi, ecx
movzx eax, dl
cmp esi, eax
jl 0x10092dd5
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x64]
mov esi, edx
jmp 0x10092ef9
xor edx, edx
inc ecx
cmp ecx, eax
jl 0x10092dc1
test eax, eax
jle 0x1009349b
mov ecx, dword [esp + 0x34]
lea edx, [ebx + 0x1cd0]
mov dword [esp + 0x50], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x80], edx
add ecx, 0xffffffa6
xor edx, edx
inc edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x64], edx
mov ecx, esi
mov dword [esp + 0x1c], 0
test cl, cl
je 0x10093488
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + eax*4 + 0x1af0]
mov eax, dword [ebx + eax*4 + 0x16f0]
lea ecx, [eax - 0xe]
mov dword [esp + 0x24], edx
cmp ecx, 2
jb 0x10092fb2
test eax, eax
je 0x10093121
cmp eax, 0xd
jne 0x10093173
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, eax
sub esi, ecx
jle 0x1009346e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
lea eax, [eax + ecx]
lea edx, [edx + ecx*4]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x7c], eax
jmp 0x100932f8
mov eax, dword [esp + 0x1c]
sub edx, eax
jle 0x10093474
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx*4]
jmp 0x1009301b
mov eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x14], ecx
sub ebx, eax
mov eax, dword [esp + 0x10]
cmp eax, ebx
ja 0x10092fe8
mov ebx, eax
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x18]
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x6c]
shr eax, cl
add eax, dword [esp + 0x14]
movsx ecx, word [esi + eax*4]
movsx edi, word [esi + eax*4 + 2]
jmp 0x100930af
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
mov esi, dword [0x102c4ee0]
mov dword [esp + 0x18], edx
mov ecx, dword [eax]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 0x30], ecx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
shr eax, 0xf9
movsx ecx, word [esi + eax*4]
movsx eax, word [esi + eax*4 + 2]
mov edi, eax
test eax, eax
jns 0x100930ab
mov eax, dword [esp + 0x10]
add ebx, 7
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
cmp eax, ebx
cmovbe ebx, eax
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, edi
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
add eax, dword [esp + 0x14]
movsx edi, word [esi + eax*4 + 2]
movsx ecx, word [esi + eax*4]
test edi, edi
js 0x10092fce
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add ebx, edi
cmp eax, ebx
ja 0x100930bb
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
lea eax, [eax + ecx - 0x3c]
cmp eax, 0x65
mov dword [esp + 0x50], eax
jl 0x100930d7
mov eax, 0x64
mov ebx, dword [esp + 0x28]
cmp eax, 0xffffff64
jg 0x100930e7
mov eax, 0xffffff65
mov ecx, 0xc8
mov esi, dword [esp + 0x40]
sub ecx, eax
mov eax, dword [ecx*4 + 0x102bfd60]
mov dword [esi], eax
mov eax, esi
add eax, 4
dec edx
jne 0x1009301b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
add ecx, eax
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jmp 0x10093474
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov eax, edx
sub eax, esi
jle 0x10093472
mov ecx, dword [esp + 0x20]
shl eax, 2
mov dword [esp + 4], 0
mov dword [esp + 8], eax
lea ecx, [edx + ecx]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
lea ecx, [ebx + ecx*4 + 0x1cd0]
mov dword [esp], ecx
call fcn.10161ee0
mov eax, dword [esp + 0x10]
sub eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
jmp 0x10093474
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x24], eax
jle 0x10093474
mov dword [esp + 0x1c], eax
mov eax, edi
mov edi, dword [0x102c4ee0]
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, ebx
mov dword [esp + 0x10], ecx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
shr eax, 0xf9
movsx edx, word [edi + eax*4 + 2]
movsx ecx, word [edi + eax*4]
test edx, edx
jns 0x10093249
add ebx, 7
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
cmp esi, ebx
cmovbe ebx, esi
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov edx, dword [esp + 0x18]
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
add eax, dword [esp + 0x40]
movsx ecx, word [edi + eax*4]
movsx eax, word [edi + eax*4 + 2]
test eax, eax
js 0x1009320c
mov edx, eax
jmp 0x10093249
sub ebx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], ecx
cmp esi, ebx
cmovbe ebx, esi
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
add eax, dword [esp + 0x40]
movsx ecx, word [edi + eax*4]
movsx edx, word [edi + eax*4 + 2]
mov eax, dword [esp + 0x34]
mov edi, dword [ebp + 8]
add ebx, edx
cmp esi, ebx
cmovbe ebx, esi
lea eax, [eax + ecx - 0x3c]
mov dword [edi + 8], ebx
cmp eax, 0xff
ja 0x100943bf
movss xmm0, dword [eax*4 + 0x102bfef0]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
xorps xmm0, xmmword [0x10187140]
inc eax
movss dword [ebx + ecx*4 + 0x1cd0], xmm0
inc ecx
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
jl 0x10093181
jmp 0x10093474
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
sub ebx, edx
cmp eax, ebx
ja 0x100932bb
mov ebx, eax
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x40]
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x6c]
shr eax, cl
mov ecx, dword [esp + 0x30]
add eax, edi
movsx edi, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x100933ea
test ecx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], ecx
jle 0x10093350
mov ebx, dword [edi + 8]
mov eax, dword [edi]
mov dword [esp + 0x18], esi
mov esi, dword [edi + 0x10]
mov ecx, ebx
shr ecx, 3
mov eax, dword [eax + ecx]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, edi
mov edi, eax
add ebx, 9
and cl, 7
shl edi, cl
mov ecx, dword [esp + 0x2c]
shr edi, 0xf7
cmp esi, ebx
cmovbe ebx, esi
mov esi, dword [esp + 0x18]
add edi, 0xffffff00
mov dword [edx + 8], ebx
mov edx, dword [esp + 0x40]
jmp 0x10093401
mov eax, dword [0x102c4ee0]
mov ebx, dword [edi + 8]
mov ecx, dword [edi]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x30]
and cl, 7
shl eax, cl
shr eax, 0xf9
movsx edi, word [edx + eax*4]
movsx eax, word [edx + eax*4 + 2]
test eax, eax
mov dword [esp + 0x18], eax
jns 0x100933e2
mov eax, dword [esp + 0x14]
add ebx, 7
mov edx, dword [esp + 0x20]
cmp eax, ebx
cmovbe ebx, eax
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov edx, dword [esp + 0x18]
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x30]
add eax, edi
movsx edi, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
test eax, eax
js 0x100932a7
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x18]
cmp eax, ebx
ja 0x100933f8
mov ebx, eax
mov eax, dword [ebp + 8]
add edi, 0xffffffc4
mov dword [eax + 8], ebx
add ecx, edi
cmp ecx, 0x9c
mov eax, ecx
mov dword [esp + 0x2c], ecx
jl 0x10093416
mov eax, 0x9b
mov ebx, dword [esp + 0x28]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
cmp eax, 0xffffff9b
jg 0x1009342b
mov eax, 0xffffff9c
movss xmm0, dword [eax*4 + 0x102c0080]
dec ecx
xorps xmm0, xmmword [0x10187140]
movss dword [edx], xmm0
add edx, 4
dec esi
jne 0x100932f8
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
sub edx, ecx
add eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], edx
sub eax, ecx
mov dword [esp + 0x64], eax
mov eax, ecx
mov ecx, edx
jmp 0x10093474
mov eax, ecx
jmp 0x10093474
mov eax, esi
movzx esi, byte [ebx]
mov dword [esp + 0x1c], eax
cmp eax, esi
jl 0x10092f53
mov eax, dword [ebx + 0x10]
jmp 0x1009348a
xor esi, esi
mov ecx, dword [esp + 0x74]
inc ecx
cmp ecx, eax
mov dword [esp + 0x74], ecx
jl 0x10092f41
cmp dword [esp + 0x38], 0x27
mov esi, dword [edi]
mov ebx, dword [edi + 8]
jne 0x100934b4
mov edx, dword [edi + 0x10]
mov dword [esp + 0x78], 0
jmp 0x100934e9
mov eax, ebx
mov ecx, ebx
shr eax, 3
and cl, 7
movzx edx, byte [esi + eax]
xor eax, eax
shl edx, cl
mov ecx, dword [edi + 0x10]
shr edx, 7
cmp ebx, ecx
setl al
add ebx, eax
and edx, 1
mov dword [edi + 8], ebx
jne 0x100943d0
mov dword [esp + 0x78], 0
mov edx, ecx
mov eax, ebx
mov ecx, ebx
shr eax, 3
and cl, 7
movzx eax, byte [esi + eax]
shl eax, cl
xor ecx, ecx
shr eax, 7
cmp ebx, edx
setl cl
add ecx, ebx
and eax, 1
sete dl
mov dword [edi + 8], ecx
mov ecx, edi
mov edi, dword [esp + 0x3c]
or dl, byte [esp + 0x70]
mov dword [edi], eax
jne 0x1009353a
mov eax, dword [esp + 0x28]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov edx, edi
mov dword [esp + 4], eax
call fcn.1009527d
test eax, eax
js 0x100943c9
cmp dword [esp + 0x38], 0x27
je 0x1009369f
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edx, eax
mov eax, dword [eax + 8]
mov esi, dword [edx + 0x10]
mov edi, eax
mov ecx, eax
shr edi, 3
and cl, 7
cmp eax, esi
setl bl
add ebx, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov al, byte [edx + edi]
shl al, cl
mov ecx, dword [ebp + 8]
test al, al
mov dword [ecx + 8], ebx
jns 0x1009369f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x40]
mov edi, dword [ebp + 8]
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp esi, ebx
cmovbe ebx, esi
and eax, 0xff
mov dword [edi + 8], ebx
mov dword [esp + 0x2c], eax
je 0x10093684
mov eax, dword [esp + 0x10]
mov ecx, eax
mov al, byte [eax + eax*2 + 0x101bb9d0]
or ecx, 2
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov byte [esp + 0x18], al
mov dword [esp + 0x14], ecx
mov dword [esp + 0x50], 0
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 3
and cl, 7
shl eax, cl
shr eax, 0xfd
cmp esi, ebx
cmovbe ebx, esi
and eax, 0xff
mov dword [edi + 8], ebx
je 0x10093659
cmp dword [esp + 0x30], 3
sete dl
cmp byte [esp + 0x50], 0
sete cl
and cl, dl
mov dl, 1
mov edi, 4
test cl, cl
jne 0x10093640
mov edi, dword [esp + 0x10]
movzx edi, byte [edi + edi*2 + 0x101bb9d2]
lea ebx, [ebx + edi + 4]
cmp esi, ebx
ja 0x1009364a
mov ebx, esi
movzx edi, dl
inc dl
cmp eax, edi
ja 0x1009362b
mov edi, dword [ebp + 8]
mov dword [edi + 8], ebx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x40]
inc al
cmp al, byte [esp + 0x18]
mov dword [esp + 0x50], eax
jb 0x100935eb
mov ecx, dword [esp + 0x14]
inc cl
movzx eax, cl
cmp dword [esp + 0x2c], eax
ja 0x100935df
mov eax, dword [esp + 0x68]
cmp dword [eax + 0x1a58], 0
jne 0x1009369f
mov eax, dword [esp + 0x68]
mov dword [eax + 0x1a58], 1
mov edi, dword [esp + 0x3c]
mov cl, byte [esp + 0x70]
mov esi, dword [esp + 0x28]
cmp dword [edi], 0
sete al
xor cl, 1
or cl, al
jne 0x100936d5
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x68]
mov edx, edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009527d
test eax, eax
js 0x100943c9
mov ecx, dword [esi + 0x50]
mov esi, dword [esi + 0x5c]
mov eax, 0x400
xor edx, edx
idiv esi
test esi, esi
mov dword [esp + 0x64], ecx
jle 0x10093734
mov edx, dword [esp + 0x28]
movzx edi, byte [edx]
lea ebx, [edx + 0x35c0]
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x10]
mov edi, eax
movzx edx, word [ecx + edx*2]
mov ecx, eax
mov dword [esp + 4], 0
sub ecx, edx
lea edx, [ebx + edx*4]
shl ecx, 2
mov dword [esp], edx
mov dword [esp + 8], ecx
call fcn.10161ee0
mov ecx, dword [esp + 0x64]
add ebx, 0x200
mov eax, edi
dec esi
jne 0x100936fd
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x10]
test eax, eax
jle 0x100941da
lea edx, [ebx + 0x35c0]
xor esi, esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x74], edx
mov dl, byte [ebx]
movzx ecx, byte [ebx + esi + 0x14]
mov dword [esp + 0x24], ecx
xor ecx, ecx
test dl, dl
je 0x100941c4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x80], ecx
mov edx, dword [ebx + eax*4 + 0x16f0]
mov dword [esp + 0x2c], eax
movzx edi, word [esi + ecx*2]
movzx ecx, word [esi + ecx*2 + 2]
lea eax, [edx - 1]
mov esi, ecx
sub esi, edi
cmp eax, 0xd
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x74]
lea esi, [esi + edi*4]
jb 0x100937e9
cmp byte [esp + 0x24], 0
je 0x1009419c
mov edi, esi
mov esi, dword [esp + 0x24]
shl dword [esp + 0x14], 2
mov eax, dword [esp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.10161ee0
add edi, 0x200
dec esi
jne 0x100937c3
jmp 0x1009419c
cmp eax, 0xc
mov dword [esp + 0x40], edi
mov dword [esp + 0x1c], ecx
jne 0x10093901
mov edi, esi
cmp byte [esp + 0x24], 0
mov esi, dword [esp + 0x14]
je 0x1009419c
mov eax, dword [esp + 0x40]
sub dword [esp + 0x1c], eax
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
jle 0x1009384e
xor eax, eax
imul ecx, dword [edx + 0x1520], 0x19660d
add ecx, 0x3c6ef35f
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mov dword [edx + 0x1520], ecx
movss dword [edi + eax*4], xmm0
inc eax
cmp esi, eax
jne 0x10093827
mov eax, dword [edx + 0x151c]
mov esi, dword [esp + 0x14]
mov dword [esp + 4], edi
mov dword [esp + 0x40], edi
mov dword [esp], edi
mov dword [esp + 8], esi
call dword [eax + 0x24]
mov eax, dword [esp + 0x2c]
movss xmm1, dword [ebx + eax*4 + 0x1cd0]
fstp qword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa8]
ucomisd xmm0, qword [0x1019b0c8]
jb 0x10093897
sqrtsd xmm0, xmm0
jmp 0x100938bd
movsd qword [esp], xmm0
movss dword [esp + 0x50], xmm1
call fcn.1016bee0
movss xmm1, dword [esp + 0x50]
fstp qword [esp + 0xa0]
movsd xmm0, qword [esp + 0xa0]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x40]
divss xmm1, xmm0
mov eax, dword [eax + 0x151c]
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
mov dword [esp], edi
movss dword [esp + 8], xmm1
call dword [eax + 0xc]
mov eax, dword [esp + 0x10]
add edi, 0x200
inc eax
cmp eax, dword [esp + 0x24]
jne 0x10093815
jmp 0x1009419c
mov ecx, dword [edx*4 + 0x101b6b50]
mov edi, dword [ebp + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [edx*4 + 0x101b70d4]
mov edx, eax
shr eax, 1
shl edx, 4
cmp eax, 4
mov dword [esp + 0x70], ecx
mov ecx, dword [edx + 0x102c0f98]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], ecx
ja case.default.0x10093946
mov ecx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x101bb4f0]
cmp byte [esp + 0x24], 0
je 0x10094195
sub ecx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi]
mov eax, ebx
mov dword [esp + 0x34], ecx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x18]
and cl, 7
shl eax, cl
mov ecx, eax
shr ecx, 0xf8
movsx edi, word [edx + ecx*4]
movzx ecx, word [edx + ecx*4 + 2]
test cx, cx
mov dword [esp + 0x14], edi
jns 0x100939f3
add ebx, 8
mov edx, dword [esp + 0x34]
mov word [esp + 0x20], cx
cmp dword [esp + 0x50], ebx
ja 0x100939be
mov ebx, dword [esp + 0x50]
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
movzx ecx, word [esp + 0x20]
mov edx, eax
shr edx, cl
mov ecx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
movsx edi, word [ecx + edx*4]
movzx ecx, word [ecx + edx*4 + 2]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x50]
movsx ecx, cx
add ebx, ecx
cmp edi, ebx
ja 0x10093a02
mov ebx, edi
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], esi
movzx edx, word [edx + ebx*2]
mov ebx, edx
shr ebx, 8
and ebx, 0xf
je 0x10093a31
shl eax, cl
mov ecx, ebx
neg cl
shr eax, cl
mov ecx, edx
shr ecx, 0xc
shl eax, cl
jmp 0x10093a33
xor eax, eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add esi, ebx
cmp edi, esi
ja 0x10093a43
mov esi, edi
mov ebx, dword [esp + 0x28]
mov edi, eax
shl eax, 0x1f
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x38]
and edi, 0xfffffffe
shl edi, 0x1e
mov ecx, dword [ebx + ecx*4 + 0x1cd0]
xor edi, ecx
xor eax, ecx
mov ecx, edx
shr edx, 2
movd xmm0, edi
mov edi, dword [esp + 0x30]
and ecx, 0xf
movd xmm1, eax
mov eax, dword [esp + 0x40]
and edx, 0x3c
mulss xmm0, dword [edi + ecx*4]
mov ecx, dword [esp + 0x1c]
movss dword [eax + esi*4], xmm0
mulss xmm1, dword [edi + edx]
mov edi, dword [ebp + 8]
movss dword [eax + esi*4 + 4], xmm1
add esi, 2
cmp ecx, esi
jne 0x1009396c
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
inc eax
add esi, 0x200
cmp eax, dword [esp + 0x24]
jne 0x10093962
jmp 0x10094195
cmp byte [esp + 0x24], 0
je 0x10094195
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], esi
mov ecx, dword [esp + 0x10]
mov edi, dword [edi]
mov dword [esp + 0x7c], eax
mov eax, ecx
mov esi, ecx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov edx, eax
mov eax, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x18]
mov ecx, eax
and cl, 7
shl edx, cl
mov eax, edx
shr eax, 0xf8
movsx ecx, word [esi + eax*4]
mov dword [esp + 0x1c], ecx
movzx ecx, word [esi + eax*4 + 2]
test cx, cx
js 0x10093b3b
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jmp 0x10093b8d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
add edx, 8
cmp eax, edx
cmovbe edx, eax
mov eax, edx
mov dword [esp + 0x10], edx
shr eax, 3
mov eax, dword [edi + eax]
mov edi, ecx
mov dword [esp], eax
call fcn.101688a0
mov edx, eax
mov eax, dword [esp + 0x10]
mov ecx, eax
and cl, 7
shl edx, cl
mov ecx, edi
mov edi, dword [esp + 0x50]
mov eax, edx
shr eax, cl
add eax, dword [esp + 0x1c]
movsx ecx, word [esi + eax*4]
movzx eax, word [esi + eax*4 + 2]
mov esi, ecx
mov ecx, eax
mov eax, dword [esp + 0x10]
movsx ecx, cx
add eax, ecx
cmp edi, eax
cmovbe eax, edi
test esi, esi
mov dword [esp + 0x10], eax
je 0x10093cdb
mov eax, dword [esp + 0x70]
shl edx, cl
movzx esi, word [eax + esi*2]
mov eax, esi
mov ecx, esi
shr ecx, 8
shr eax, 0xc
mov dword [esp + 0x6c], ecx
mov ecx, eax
neg cl
shr edx, cl
mov ecx, 0x20
sub ecx, eax
add eax, dword [esp + 0x10]
shl edx, cl
mov ecx, edi
mov edi, esi
cmp ecx, eax
cmovbe eax, ecx
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], ecx
bt eax, esi
jae 0x10093c97
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov eax, dword [eax]
mov ecx, ebx
shr ecx, 3
mov eax, dword [eax + ecx]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, eax
or ecx, 1
xor ecx, 0xfffffffe
bsr edx, ecx
xor edx, 0x1f
cmp edx, 8
ja 0x100943bf
lea ecx, [edx + 1]
lea edi, [edx + ebx + 1]
shl eax, cl
mov ecx, dword [esp + 0x50]
cmp ecx, edi
ja 0x10093c42
mov edi, ecx
lea ebx, [edx + 4]
mov dword [esp + 0x10], edi
mov edi, 0x10
mov ecx, edx
neg bl
shl edi, cl
mov ecx, ebx
mov ebx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0x50]
add eax, edi
lea edx, [ebx + edx + 4]
cmp ecx, edx
ja 0x10093c6c
mov edx, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x80000000
or ecx, dword [eax*4 + 0x102d4f00]
mov dword [edi + esi*4], ecx
mov edi, dword [esp + 0x34]
xor ecx, ecx
inc ecx
jmp 0x10093cbf
mov ecx, dword [esp + 0x30]
mov eax, edi
and eax, 0xf
mov eax, dword [ecx + eax*4]
mov ecx, edx
mov edx, dword [esp + 0x20]
and ecx, 0x80000000
or ecx, eax
mov dword [edx + esi*4], ecx
mov edx, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
shl edx, cl
mov ecx, dword [esp + 0x1c]
inc esi
shr edi, 4
add ecx, 4
cmp esi, 2
jb 0x10093bdf
add dword [esp + 0x20], ecx
jmp 0x10093ced
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
add ecx, 8
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x40]
mov edi, dword [ebp + 8]
add eax, 0xfffffffe
jne 0x10093ae7
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0x151c]
movss xmm0, dword [ebx + ecx*4 + 0x1cd0]
mov dword [esp + 0xc], edx
mov dword [esp + 4], esi
mov dword [esp], esi
movss dword [esp + 8], xmm0
call dword [eax + 0xc]
mov eax, dword [esp + 0x84]
add esi, 0x200
inc eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x84], eax
jb 0x10093adb
jmp 0x10094195
cmp byte [esp + 0x24], 0
je 0x10094195
sub ecx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x10]
mov edi, dword [edi]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, 0xf8
movsx edx, word [ecx + eax*4]
movzx eax, word [ecx + eax*4 + 2]
test ax, ax
mov dword [esp + 0x14], edx
js 0x10093db7
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x14]
jmp 0x10093e00
add ebx, 8
mov word [esp + 0x38], ax
cmp dword [esp + 0x50], ebx
ja 0x10093dc9
mov ebx, dword [esp + 0x50]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov edx, dword [esp + 0x50]
and cl, 7
shl eax, cl
movzx ecx, word [esp + 0x38]
shr eax, cl
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x14]
movsx edi, word [ecx + eax*4]
movzx eax, word [ecx + eax*4 + 2]
mov ecx, dword [esp + 0x2c]
cwde
add ebx, eax
cmp edx, ebx
ja 0x10093e09
mov ebx, edx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
movzx eax, word [eax + edi*2]
mov edi, dword [esp + 0x30]
movss xmm0, dword [ebx + ecx*4 + 0x1cd0]
mov ecx, eax
and ecx, 3
movss xmm1, dword [edi + ecx*4]
mov ecx, eax
and ecx, 0xc
mulss xmm1, xmm0
movss dword [edx + esi*4], xmm1
movss xmm1, dword [edi + ecx]
mov ecx, eax
shr eax, 4
shr ecx, 2
and eax, 0xc
and ecx, 0xc
mulss xmm1, xmm0
movss dword [edx + esi*4 + 4], xmm1
movss xmm1, dword [edi + ecx]
mov ecx, dword [esp + 0x1c]
mulss xmm1, xmm0
movss dword [edx + esi*4 + 8], xmm1
mulss xmm0, dword [edi + eax]
mov edi, dword [ebp + 8]
movss dword [edx + esi*4 + 0xc], xmm0
add esi, 4
cmp ecx, esi
jne 0x10093d73
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
inc eax
add esi, 0x200
cmp eax, dword [esp + 0x24]
jne 0x10093d69
jmp 0x10094195
cmp byte [esp + 0x24], 0
je 0x10094195
sub ecx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x10]
mov edi, dword [edi]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov esi, dword [esp + 0x18]
and cl, 7
shl eax, cl
mov ecx, eax
shr ecx, 0xf8
movsx edx, word [esi + ecx*4]
movzx ecx, word [esi + ecx*4 + 2]
test cx, cx
jns 0x10093f49
add ebx, 8
mov word [esp + 0x34], cx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x50], ebx
ja 0x10093f18
mov ebx, dword [esp + 0x50]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
movzx ecx, word [esp + 0x34]
mov edx, eax
shr edx, cl
add edx, dword [esp + 0x14]
movsx ecx, word [esi + edx*4]
movzx esi, word [esi + edx*4 + 2]
mov edx, ecx
mov ecx, esi
mov esi, dword [esp + 0x50]
movsx ecx, cx
add ebx, ecx
shl eax, cl
cmp esi, ebx
ja 0x10093f5a
mov ebx, esi
mov ecx, dword [esp + 0x70]
mov edi, ebx
movzx edx, word [ecx + edx*2]
mov ecx, edx
shr ecx, 8
and ecx, 0xf
mov ebx, ecx
je 0x10093f72
mov ebx, eax
add edi, ecx
cmp esi, edi
mov dword [esp + 0x10], edi
ja 0x10093f80
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov esi, dword [eax + ecx*4 + 0x1cd0]
mov ecx, ebx
mov eax, dword [esp + 0x30]
and ecx, 0x80000000
xor ecx, esi
mov dword [esp + 0x14], esi
movd xmm0, ecx
mov ecx, edx
and ecx, 3
mulss xmm0, dword [eax + ecx*4]
mov ecx, edx
mov eax, dword [esp + 0x38]
shr ecx, 0xc
and cl, 1
shl ebx, cl
mov ecx, ebx
movss dword [edi + eax*4], xmm0
mov edi, dword [esp + 0x40]
and ecx, 0x80000000
xor ecx, esi
mov esi, dword [esp + 0x30]
movd xmm0, ecx
mov ecx, edx
and ecx, 0xc
mulss xmm0, dword [esi + ecx]
mov ecx, edx
shr ecx, 0xd
and cl, 1
shl ebx, cl
mov ecx, ebx
movss dword [edi + eax*4 + 4], xmm0
mov edi, dword [ebp + 8]
and ecx, 0x80000000
xor ecx, dword [esp + 0x14]
movd xmm0, ecx
mov ecx, edx
shr ecx, 2
and ecx, 0xc
mulss xmm0, dword [esi + ecx]
mov ecx, edx
shr edx, 4
shr ecx, 0xe
and edx, 0xc
and cl, 1
shl ebx, cl
mov ecx, dword [esp + 0x40]
and ebx, 0x80000000
xor ebx, dword [esp + 0x14]
movss dword [ecx + eax*4 + 8], xmm0
movd xmm1, ebx
mulss xmm1, dword [esi + edx]
mov edx, dword [esp + 0x1c]
movss dword [ecx + eax*4 + 0xc], xmm1
add eax, 4
cmp edx, eax
mov dword [esp + 0x38], eax
jne 0x10093ece
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
inc eax
add esi, 0x200
cmp eax, dword [esp + 0x24]
jne 0x10093ebe
jmp 0x10094195
cmp byte [esp + 0x24], 0
je 0x10094195
sub ecx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x10]
mov edi, dword [edi]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, 0xf8
movsx edx, word [ecx + eax*4]
movzx eax, word [ecx + eax*4 + 2]
test ax, ax
jns 0x10094114
add ebx, 8
mov word [esp + 0x38], ax
mov dword [esp + 0x14], edx
cmp dword [esp + 0x50], ebx
ja 0x100940e5
mov ebx, dword [esp + 0x50]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
and cl, 7
shl eax, cl
movzx ecx, word [esp + 0x38]
shr eax, cl
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x14]
movsx edx, word [ecx + eax*4]
movzx eax, word [ecx + eax*4 + 2]
mov ecx, dword [esp + 0x50]
mov edi, dword [ebp + 8]
cwde
add ebx, eax
cmp ecx, ebx
ja 0x10094124
mov ebx, ecx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x28]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x30]
mov ecx, eax
shr eax, 2
and ecx, 0xf
and eax, 0x3c
movss xmm0, dword [edx + ecx*4]
mov ecx, dword [esp + 0x2c]
movss xmm1, dword [ebx + ecx*4 + 0x1cd0]
mov ecx, dword [esp + 0x40]
mulss xmm0, xmm1
movss dword [ecx + esi*4], xmm0
mulss xmm1, dword [edx + eax]
mov eax, dword [esp + 0x1c]
movss dword [ecx + esi*4 + 4], xmm1
add esi, 2
cmp eax, esi
jne 0x1009409d
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
inc eax
add esi, 0x200
cmp eax, dword [esp + 0x24]
jne 0x10094093
mov eax, dword [esp + 0x10]
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x2c]
movzx edx, byte [ebx]
inc ecx
inc eax
cmp ecx, edx
jb 0x10093777
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [esp + 0x88]
jmp 0x100941c6
xor edx, edx
mov ecx, dword [esp + 0x24]
inc esi
shl ecx, 9
add dword [esp + 0x74], ecx
cmp esi, eax
jl 0x10093759
cmp dword [esp + 0x78], 0
mov edx, dword [esp + 0x64]
je 0x1009438f
mov ecx, dword [esp + 0xb0]
test ecx, ecx
jle 0x1009438f
xor eax, eax
xorps xmm0, xmm0
xor edi, edi
mov dword [esp + 0x18], ecx
mov esi, dword [esp + eax*4 + 0xb8]
dec edi
mov dword [esp + 0x10], eax
movss xmm1, dword [ebx + esi*4 + 0x35c0]
movzx eax, word [edx + edi*2 + 4]
mov ebx, edi
inc edi
cmp esi, eax
jge 0x10094218
mov eax, dword [esp + 0x28]
cmp dword [eax + ebx*4 + 0x16f4], 0xd
je 0x1009437e
mov eax, dword [esp + 0x28]
movss xmm2, dword [eax + ebx*4 + 0x1cd4]
ucomiss xmm2, xmm0
jne 0x1009424e
jnp 0x1009437e
mov ecx, dword [esp + 0x10]
xor eax, eax
sub eax, dword [esp + ecx*4 + 0xc8]
ucomiss xmm1, xmm0
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
jne 0x10094269
jnp 0x10094295
divss xmm1, xmm2
movaps xmm0, xmm1
andps xmm0, xmmword [0x101bb4e0]
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x1019b0c8]
movaps xmmword [esp + 0x40], xmm1
movaps xmmword [esp + 0x50], xmm3
jb 0x100942a4
sqrtsd xmm0, xmm0
jmp 0x100942be
mov ebx, dword [esp + 0x28]
movss dword [esp + 0x40], xmm2
jmp 0x10094336
movsd qword [esp], xmm0
call fcn.1016bee0
fstp qword [esp + 0x98]
movsd xmm0, qword [esp + 0x98]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x1019b0c8]
jb 0x100942d6
sqrtsd xmm0, xmm0
jmp 0x100942f0
movsd qword [esp], xmm0
call fcn.1016bee0
fstp qword [esp + 0x90]
movsd xmm0, qword [esp + 0x90]
movaps xmm2, xmmword [esp + 0x40]
xorps xmm1, xmm1
movaps xmm3, xmmword [esp + 0x50]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x28]
cmpltss xmm1, xmm2
divss xmm2, xmm0
movaps xmm0, xmm1
andnps xmm0, xmm3
xorps xmm3, xmmword [0x10187140]
andps xmm3, xmm1
movss xmm1, dword [eax + ebx*4 + 0x1cd4]
mov ebx, eax
orps xmm3, xmm0
addss xmm3, xmm2
movss dword [esp + 0x40], xmm1
movaps xmm0, xmm3
movaps xmmword [esp + 0x50], xmm3
andps xmm0, xmmword [0x101bb4e0]
movss dword [esp], xmm0
call fcn.1016aa87
fstp dword [esp + 0x8c]
movaps xmm0, xmmword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
mulss xmm0, dword [esp + 0x8c]
mulss xmm0, dword [esp + 0x40]
movss dword [ebx + esi*4 + 0x35c0], xmm0
xorps xmm0, xmm0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
inc eax
cmp eax, ecx
jne 0x10094203
xor esi, esi
cmp dword [ebp + 0xc], 0
jne 0x100945bd
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x1948], 1
jne 0x100945bd
mov edx, ebx
call fcn.10095580
jmp 0x100945bd
mov esi, eax
jmp 0x100945b3
mov esi, 0xbebbb1b7
jmp 0x100945b3
mov esi, eax
jmp 0x100945b7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], esi
mov esi, 0xbebbb1b7
cmp dword [eax + 4], 2
je 0x100945b3
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x50]
mov eax, dword [eax + 0x58]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 2
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, 0xfe
cmp dword [esp + 0x50], ebx
cmovbe ebx, dword [esp + 0x50]
inc eax
mov dword [esp + 0x30], eax
mov dword [edi + 8], ebx
mov dword [esp + 0xb0], eax
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov edx, dword [esp + 0x50]
mov ecx, ebx
add ebx, 6
and cl, 7
shl eax, cl
shr eax, 0xfa
cmp edx, ebx
cmovbe ebx, edx
cmp eax, dword [esp + 0x40]
mov dword [edi + 8], ebx
jge 0x100945b3
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
movzx eax, word [edi + eax*2]
mov dword [esp + 0x2c], eax
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
mov esi, eax
mov eax, dword [ebp + 8]
add ebx, 5
and cl, 7
shl esi, cl
mov ecx, dword [esp + 0x50]
shr esi, 0xfb
cmp ecx, ebx
cmovbe ebx, ecx
add esi, dword [esp + 0x2c]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb8], esi
movzx eax, word [edi + eax*2]
cmp esi, eax
jge 0x100945a8
mov edx, dword [esp + 0x10]
mov eax, ebx
mov edi, ecx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 4
and cl, 7
shl eax, cl
mov ecx, dword [ebp + 8]
shr eax, 0xfc
cmp edi, ebx
cmovbe ebx, edi
cmp dword [esp + 0x30], 2
mov dword [ecx + 8], ebx
mov dword [esp + 0xc8], eax
jl 0x100945d5
mov edi, 7
mov ecx, dword [esp + 0x10]
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 5
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x50]
shr eax, 0xfb
cmp ecx, ebx
ja 0x10094536
mov ebx, ecx
mov ecx, dword [ebp + 8]
add esi, eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], ebx
mov ecx, dword [esp + 0x40]
mov dword [esp + edi*4 + 0xa0], esi
movzx eax, word [eax + ecx*2]
cmp esi, eax
jge 0x100945a8
mov ecx, dword [esp + 0x10]
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101688a0
mov ecx, ebx
add ebx, 4
and cl, 7
shl eax, cl
mov ecx, dword [esp + 0x50]
shr eax, 0xfc
cmp ecx, ebx
ja 0x10094580
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], ebx
mov dword [esp + edi*4 + 0xb0], eax
lea eax, [edi + 1]
add edi, 0xfffffffb
cmp edi, dword [esp + 0x30]
mov edi, eax
jl 0x1009450b
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + 8]
jmp 0x100945da
mov edi, dword [esp + 0x3c]
mov esi, 0xbebbb1b7
jmp 0x100945b7
mov edi, dword [esp + 0x3c]
mov dword [edi], 0
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.1015e65c
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov edi, ecx
inc eax
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
jmp 0x100934e9