Function at 0x10029790
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3dc
mov esi, dword [esp + 0x3f0]
mov eax, dword [0x1006b0dc]
xor eax, esp
mov dword [esp + 0x3d8], eax
push esi
call fcn.1002e780
mov ecx, esi
add esp, 4
mov dword [esi + 4], 0
xorps xmm0, xmm0
movups xmmword [esi + 0x18], xmm0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x100297ed
push eax
call fcn.1000ab70
mov ecx, dword [esp + 0x3f4]
add esp, 4
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x10029804
push eax
call fcn.1000ab70
mov ecx, dword [esp + 0x3f4]
add esp, 4
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
cmp dword [ecx + 0x48], 0
jle 0x100298c4
xor edi, edi
xor esi, esi
xor eax, eax
jmp 0x1002983d
inc eax
mov ecx, dword [esp + 0x3f0]
cmp eax, dword [ecx + 0x48]
jge 0x1002988e
mov edx, dword [ecx + 0x50]
imul ebx, eax, 0x6c
mov ecx, dword [edx + ebx + 0x30]
test ecx, ecx
jne 0x1002985c
lea ecx, [edx + ebx]
add ecx, 0x30
mov dword [ecx], 0x10058f4c
mov ecx, 0x10058f4c
movzx edx, word [ecx]
test dx, dx
je 0x10029830
add ecx, 4
nop word [eax + eax]
movzx ebx, word [ecx - 2]
test ebx, ebx
je 0x10029830
movzx edx, dx
sub edi, edx
add edi, ebx
inc edi
inc esi
movzx edx, word [ecx]
add ecx, 4
test dx, dx
jne 0x10029870
jmp 0x10029830
mov eax, dword [ecx + 8]
test eax, eax
jg 0x100298d7
mov eax, 0x1000
cmp edi, 0xfa0
jg 0x100298d7
mov eax, 0x800
cmp edi, 0x7d0
jg 0x100298d7
xor eax, eax
cmp edi, 0x3e9
setge al
shl eax, 9
add eax, 0x200
jmp 0x100298d7
mov eax, dword [ecx + 8]
test eax, eax
mov edx, 0x200
cmovg edx, eax
mov eax, edx
xor edi, edi
xor esi, esi
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], 0
mov ebp, dword [ecx + 0xc]
push 0x30
mov ebx, eax
call fcn.10009f30
add esp, 4
mov dword [esp + 0xa8], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x90], ebp
sub ebx, ebp
lea eax, [ebx*8]
push eax
call fcn.10009f30
add esp, 4
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x1002abf9
test eax, eax
je 0x1002abf9
mov ecx, 0x8000
sub ecx, dword [esp + 0x90]
mov dword [esp + 0x34], ecx
lea ecx, [ebx - 1]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp ebx, 2
mov dword [esp + 0xdc], eax
jl 0x100299ed
mov dword [esp + 0x48], ebx
lea eax, [ebx - 2]
mov edx, dword [esp + 0x10]
and edx, 7
xor ebp, ebp
cmp eax, 7
jb 0x100299b9
mov eax, dword [esp + 0x10]
and eax, 0xfffffff8
xor ebp, ebp
mov ecx, dword [esp + 0xdc]
nop dword [eax]
lea ebx, [ecx + 8]
mov dword [ecx + 4], ebx
lea ebx, [ecx + 0x10]
mov dword [ecx + 0xc], ebx
lea ebx, [ecx + 0x18]
mov dword [ecx + 0x14], ebx
lea ebx, [ecx + 0x20]
mov dword [ecx + 0x1c], ebx
lea ebx, [ecx + 0x28]
mov dword [ecx + 0x24], ebx
lea ebx, [ecx + 0x30]
mov dword [ecx + 0x2c], ebx
lea ebx, [ecx + 0x38]
mov dword [ecx + 0x34], ebx
add ebp, 8
lea ebx, [ecx + 0x40]
mov dword [ecx + 0x3c], ebx
mov ecx, ebx
cmp eax, ebp
jne 0x10029980
mov ecx, dword [esp + 0x10]
test edx, edx
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0x48]
je 0x100299ed
lea ecx, [eax + ebp*8]
add ecx, 8
nop word cs:[eax + eax]
mov dword [ecx - 4], ecx
add ecx, 8
dec edx
jne 0x100299e0
mov ecx, dword [esp + 0x10]
mov dword [eax + ecx*8 + 4], 0
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x1c], eax
lea eax, [ecx + 0x20]
mov dword [ecx + 0x18], eax
mov dword [ecx], ebx
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov dword [ecx + 0x14], ebx
mov eax, dword [esp + 0x10]
add eax, ebx
cdq
idiv ebx
mov dword [ecx + 8], eax
mov dword [ecx + 0x20], 0
mov eax, ecx
add eax, 0x28
mov dword [ecx + 0x24], eax
mov word [ecx + 0x28], bx
mov word [ecx + 0x2a], 0xffff
mov dword [ecx + 0x2c], 0
push ecx
mov ebx, dword [esp + 0x3f4]
push ebx
call fcn.1002e8e0
add esp, 8
mov eax, dword [ebx + 0x48]
mov ecx, eax
shl ecx, 7
lea eax, [ecx + eax*8]
push eax
call fcn.10009f30
add esp, 4
mov dword [esp + 0x6c], eax
cmp dword [ebx + 0x48], 0
jle 0x1002ac39
mov ecx, ebx
xorps xmm0, xmm0
xor ebx, ebx
mov eax, dword [ecx + 0x50]
imul ecx, ebx, 0x6c
mov edx, ebx
shl edx, 7
lea edx, [edx + ebx*8]
add edx, dword [esp + 0x6c]
mov dword [esp + 0x10], edx
mov ebp, dword [eax + ecx]
mov eax, dword [eax + ecx + 0xc]
movzx ecx, byte [ebp]
cmp ecx, 0x4e
mov dword [esp + 4], ebx
jg 0x10029ad0
test ecx, ecx
je 0x10029b0f
cmp ecx, 0x31
jne 0x10029ba0
cmp byte [ebp + 1], 0
mov ecx, 0xffffffff
jne 0x10029ba5
jmp 0x10029b1e
cmp ecx, 0x4f
je 0x10029b30
cmp ecx, 0x74
jne 0x10029ba0
movzx ecx, byte [ebp + 1]
cmp ecx, 0x72
je 0x10029b49
cmp ecx, 0x74
je 0x10029b65
cmp ecx, 0x79
jne 0x10029ba0
cmp byte [ebp + 2], 0x70
mov ecx, 0xffffffff
jne 0x10029ba5
cmp byte [ebp + 3], 0x31
je 0x10029b5a
jmp 0x10029ba5
cmp byte [ebp + 1], 1
mov ecx, 0xffffffff
jne 0x10029ba5
cmp byte [ebp + 2], 0
jne 0x10029ba5
cmp byte [ebp + 3], 0
jne 0x10029ba5
jmp 0x10029b5a
cmp byte [ebp + 1], 0x54
mov ecx, 0xffffffff
jne 0x10029ba5
cmp byte [ebp + 2], 0x54
jne 0x10029ba5
cmp byte [ebp + 3], 0x4f
je 0x10029b5a
jmp 0x10029ba5
cmp byte [ebp + 2], 0x75
mov ecx, 0xffffffff
jne 0x10029ba5
cmp byte [ebp + 3], 0x65
jne 0x10029ba5
neg eax
mov ecx, 0
sbb ecx, ecx
jmp 0x10029ba5
cmp byte [ebp + 2], 0x63
jne 0x10029ba0
cmp byte [ebp + 3], 0x66
jne 0x10029ba0
mov ecx, dword [ebp + 4]
bswap ecx
cmp ecx, 0x20000
je 0x10029b86
cmp ecx, 0x10000
jne 0x10029ba0
mov ecx, dword [ebp + 8]
bswap ecx
cmp ecx, eax
mov ecx, 0xffffffff
jle 0x10029ba5
mov ecx, dword [ebp + eax*4 + 0xc]
bswap ecx
jmp 0x10029ba5
mov ecx, 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0
movzx edx, byte [ebp + ecx + 4]
mov ebx, ecx
mov ecx, edx
shl ecx, 8
movzx eax, byte [ebp + ebx + 5]
mov dword [esp + 0x24], 0
mov dword [esp + 8], eax
or ecx, eax
mov dword [esp + 0x34], 0
mov eax, 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x7c], ebp
je 0x10029ca6
lea eax, [ebx + ebp]
add eax, 0x17
mov ebx, dword [esp + 8]
shl ebx, 4
shl edx, 0xc
or edx, ebx
xor ebx, ebx
jmp 0x10029c27
add ebx, 0x10
cmp edx, ebx
je 0x10029c60
cmp byte [eax + ebx - 0xb], 0x63
jne 0x10029c20
cmp byte [eax + ebx - 0xa], 0x6d
jne 0x10029c20
cmp byte [eax + ebx - 9], 0x61
jne 0x10029c20
cmp byte [eax + ebx - 8], 0x70
jne 0x10029c20
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x7c]
add edx, ebp
mov edx, dword [ebx + edx + 0x14]
bswap edx
mov dword [esp + 0x34], edx
jmp 0x10029c76
mov dword [esp + 0x34], 0
mov ebp, dword [esp + 0x7c]
jmp 0x10029c76
add eax, 0x10
dec ecx
je 0x10029ca0
cmp byte [eax - 0xb], 0x6c
jne 0x10029c70
cmp byte [eax - 0xa], 0x6f
jne 0x10029c70
cmp byte [eax - 9], 0x63
jne 0x10029c70
cmp byte [eax - 8], 0x61
jne 0x10029c70
mov eax, dword [eax - 3]
bswap eax
jmp 0x10029ca2
xor eax, eax
mov ebx, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [eax + 0x10], ecx
movzx eax, byte [ebp + ebx + 4]
mov ecx, eax
shl ecx, 8
movzx edx, byte [ebp + ebx + 5]
or ecx, edx
mov ecx, ebx
je 0x10029d2c
add ecx, ebp
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10029ce7
add edx, 0x10
cmp eax, edx
je 0x10029d20
cmp byte [ecx + edx - 0xb], 0x68
jne 0x10029ce0
cmp byte [ecx + edx - 0xa], 0x65
jne 0x10029ce0
cmp byte [ecx + edx - 9], 0x61
jne 0x10029ce0
cmp byte [ecx + edx - 8], 0x64
jne 0x10029ce0
mov ecx, dword [esp + 0x48]
lea eax, [ecx + ebp]
mov eax, dword [edx + eax + 0x14]
bswap eax
mov dword [esp + 0x24], eax
jmp 0x10029d2c
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x14], edx
movzx eax, byte [ebp + ecx + 4]
mov edx, eax
shl edx, 8
movzx ebx, byte [ebp + ecx + 5]
mov dword [esp + 8], 0
or edx, ebx
mov edx, 0
je 0x10029da2
lea edx, [ecx + ebp]
add edx, 0x17
shl ebx, 4
shl eax, 0xc
or eax, ebx
xor ebx, ebx
jmp 0x10029d77
add ebx, 0x10
cmp eax, ebx
je 0x10029da0
cmp byte [edx + ebx - 0xb], 0x67
jne 0x10029d70
cmp byte [edx + ebx - 0xa], 0x6c
jne 0x10029d70
cmp byte [edx + ebx - 9], 0x79
jne 0x10029d70
cmp byte [edx + ebx - 8], 0x66
jne 0x10029d70
lea eax, [ecx + ebp]
mov edx, dword [ebx + eax + 0x14]
bswap edx
jmp 0x10029da2
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
mov dword [eax + 0x18], edx
movzx eax, byte [ebp + ecx + 4]
mov ebx, eax
shl ebx, 8
movzx edx, byte [ebp + ecx + 5]
or ebx, edx
je 0x10029e2c
add ecx, ebp
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor ebx, ebx
jmp 0x10029de7
add ebx, 0x10
cmp eax, ebx
je 0x10029e20
cmp byte [ecx + ebx - 0xb], 0x68
jne 0x10029de0
cmp byte [ecx + ebx - 0xa], 0x68
jne 0x10029de0
cmp byte [ecx + ebx - 9], 0x65
jne 0x10029de0
cmp byte [ecx + ebx - 8], 0x61
jne 0x10029de0
mov ecx, dword [esp + 0x48]
lea eax, [ecx + ebp]
mov eax, dword [ebx + eax + 0x14]
bswap eax
mov dword [esp + 8], eax
jmp 0x10029e2c
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [eax + 0x1c], edx
movzx ebx, byte [ebp + ecx + 4]
mov eax, ebx
shl eax, 8
movzx edx, byte [ebp + ecx + 5]
or eax, edx
mov eax, 0
je 0x10029eb6
lea eax, [ecx + ebp]
add eax, 0x17
shl edx, 4
shl ebx, 0xc
or ebx, edx
xor edx, edx
jmp 0x10029e77
add edx, 0x10
cmp ebx, edx
je 0x10029eb0
cmp byte [eax + edx - 0xb], 0x68
jne 0x10029e70
cmp byte [eax + edx - 0xa], 0x6d
jne 0x10029e70
cmp byte [eax + edx - 9], 0x74
jne 0x10029e70
cmp byte [eax + edx - 8], 0x78
jne 0x10029e70
mov ebp, dword [esp + 0x7c]
lea eax, [ecx + ebp]
mov eax, dword [edx + eax + 0x14]
bswap eax
jmp 0x10029eb6
xor eax, eax
mov ebp, dword [esp + 0x7c]
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb8], edx
mov dword [ecx + 0x20], edx
movzx ebx, byte [ebp + eax + 4]
mov ecx, ebx
shl ecx, 8
movzx edx, byte [ebp + eax + 5]
or ecx, edx
mov ecx, dword [esp + 0x3f0]
mov eax, 0
je 0x10029f42
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x48]
add ebp, eax
add ebp, 0x17
shl edx, 4
shl ebx, 0xc
or ebx, edx
xor edx, edx
jmp 0x10029f07
add edx, 0x10
cmp ebx, edx
je 0x10029f40
cmp byte [ebp + edx - 0xb], 0x6b
jne 0x10029f00
cmp byte [ebp + edx - 0xa], 0x65
jne 0x10029f00
cmp byte [ebp + edx - 9], 0x72
jne 0x10029f00
cmp byte [ebp + edx - 8], 0x6e
jne 0x10029f00
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x48]
add ecx, ebx
mov eax, dword [edx + ecx + 0x14]
mov ecx, dword [esp + 0x3f0]
bswap eax
jmp 0x10029f42
xor eax, eax
mov edx, dword [esp + 0x10]
mov dword [edx + 0x24], eax
cmp dword [esp + 0x34], 0
mov ebp, dword [esp + 0x7c]
je 0x1002ac18
cmp dword [esp + 0x24], 0
je 0x1002ac18
cmp dword [esp + 8], 0
je 0x1002ac18
cmp dword [esp + 0xb8], 0
je 0x1002ac18
cmp dword [esp + 0x5c], 0
je 0x1002a0f0
cmp dword [esp], 0
je 0x1002ac18
mov eax, dword [esp + 0x48]
movzx ecx, byte [ebp + eax + 4]
mov edx, ecx
shl edx, 8
movzx ebx, byte [ebp + eax + 5]
or edx, ebx
je 0x1002a010
lea edx, [eax + ebp]
add edx, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10029fc7
add ebx, 0x10
cmp ecx, ebx
je 0x1002a010
cmp byte [edx + ebx - 0xb], 0x6d
jne 0x10029fc0
cmp byte [edx + ebx - 0xa], 0x61
jne 0x10029fc0
cmp byte [edx + ebx - 9], 0x78
jne 0x10029fc0
cmp byte [edx + ebx - 8], 0x70
jne 0x10029fc0
mov eax, dword [esp + 0x48]
add eax, ebp
mov ecx, dword [ebx + eax + 0x14]
bswap ecx
test ecx, ecx
mov eax, 0xffff
je 0x1002a015
movzx eax, word [ebp + ecx + 4]
rol ax, 8
movzx eax, ax
jmp 0x1002a015
mov eax, 0xffff
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x34]
movzx eax, word [ebp + eax + 2]
rol ax, 8
mov dword [ecx + 0x28], 0
test ax, ax
mov ecx, dword [esp + 0x3f0]
je 0x1002ac18
movzx eax, ax
mov ecx, dword [esp + 0x34]
add ecx, ebp
add ecx, 0xb
xor edx, edx
xor ebp, ebp
jmp 0x1002a076
mov edx, dword [ecx + ebp*8 - 3]
bswap edx
add edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], edx
inc ebp
cmp eax, ebp
je 0x1002a0b0
movzx ebx, word [ecx + ebp*8 - 7]
rol bx, 8
test bx, bx
je 0x1002a060
movzx ebx, bx
cmp ebx, 3
jne 0x1002a071
movzx ebx, word [ecx + ebp*8 - 5]
rol bx, 8
cmp bx, 0xa
je 0x1002a060
movzx ebx, bx
cmp ebx, 1
je 0x1002a060
jmp 0x1002a071
test edx, edx
mov ecx, dword [esp + 0x3f0]
mov ebx, dword [esp + 0x7c]
je 0x1002ac18
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x14]
movzx eax, word [ebx + eax + 0x32]
rol ax, 8
movzx eax, ax
mov dword [edx + 0x2c], eax
mov ebx, dword [esp + 4]
inc ebx
cmp ebx, dword [ecx + 0x48]
jl 0x10029a85
jmp 0x1002ac39
mov dword [esp + 0x1d0], 2
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1c4], 0
mov edx, dword [esp + 0x48]
movzx eax, byte [ebp + edx + 4]
mov ecx, eax
shl ecx, 8
movzx edx, byte [ebp + edx + 5]
or ecx, edx
je 0x1002ac11
mov ecx, dword [esp + 0x48]
add ecx, ebp
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x1002a15b
add edx, 0x10
cmp eax, edx
je 0x1002ac11
cmp byte [ecx + edx - 0xb], 0x43
jne 0x1002a150
cmp byte [ecx + edx - 0xa], 0x46
jne 0x1002a150
cmp byte [ecx + edx - 9], 0x46
jne 0x1002a150
cmp byte [ecx + edx - 8], 0x20
jne 0x1002a150
mov eax, dword [esp + 0x48]
add eax, ebp
mov eax, dword [edx + eax + 0x14]
bswap eax
test eax, eax
je 0x1002ac11
lea edx, [eax + ebp]
mov ecx, dword [esp + 0x10]
movups xmmword [ecx + 0x60], xmm0
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x30], edx
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x38], 0x20000000
movzx eax, byte [ebp + eax + 2]
mov ebx, edx
movzx edx, word [eax + edx]
rol dx, 8
movzx ecx, byte [eax + ebx + 2]
test dx, dx
mov dword [esp + 0x24], ebx
je 0x1002a202
movzx edx, dx
imul edx, ecx
add eax, edx
add eax, 3
test ecx, ecx
je 0x1002a20d
xor edx, edx
cmp cl, 1
jne 0x1002a214
test cl, 1
mov ebx, dword [esp + 0x24]
je 0x1002a263
shl edx, 8
cmp eax, 0x1fffffff
jg 0x1002a25c
movzx ecx, byte [ebx + eax]
inc eax
jmp 0x1002a25e
add eax, 2
shl ecx, 8
jmp 0x1002a291
mov edx, 0xffffffff
jmp 0x1002a264
mov ebp, ecx
and ebp, 0xfffffffe
xor ebx, ebx
jmp 0x1002a232
mov ebx, dword [esp + 0x24]
movzx ebx, byte [ebx + eax]
inc eax
movzx ebx, bl
or edx, ebx
mov ebx, edx
add ebp, 0xfffffffe
je 0x1002a1e8
cmp eax, 0x1fffffff
jg 0x1002a244
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + eax]
inc eax
jmp 0x1002a246
xor edx, edx
movzx edx, dl
shl ebx, 0x10
shl edx, 8
or edx, ebx
cmp eax, 0x1fffffff
jle 0x1002a21d
xor ebx, ebx
jmp 0x1002a226
xor ecx, ecx
movzx ecx, cl
or edx, ecx
dec edx
add eax, edx
mov ebp, 0x20000000
xor edx, edx
cmp eax, 0x1fffffff
ja 0x1002a2a6
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
shl ecx, 8
mov dword [esp + 0xb8], 0x1fffffff
cmp eax, 0x1fffffff
je 0x1002a2b3
lea ebp, [eax + 2]
mov edx, dword [esp + 0x24]
movzx edx, byte [eax + edx + 1]
mov dword [esp + 0xb8], eax
jmp 0x1002a2b3
xor ecx, ecx
mov dword [esp + 0xb8], 0x20000000
or ecx, edx
je 0x1002a378
mov edx, 0xffffffff
mov eax, 0x20000000
cmp ebp, 0x1fffffff
ja 0x1002a367
mov eax, dword [esp + 0x24]
movzx ebx, byte [eax + ebp]
imul ecx, ebx
lea eax, [ecx + ebp]
inc eax
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
test ebx, ebx
je 0x1002a367
xor edx, edx
cmp bl, 1
mov dword [esp + 8], ebx
jne 0x1002a319
mov ebp, dword [esp + 0x24]
test byte [esp + 8], 1
je 0x1002a366
shl edx, 8
cmp eax, 0x1fffffff
jg 0x1002a35f
movzx ecx, byte [ebp + eax]
inc eax
jmp 0x1002a361
mov ecx, ebx
and ecx, 0xfffffffe
xor ebx, ebx
mov ebp, dword [esp + 0x24]
jmp 0x1002a338
movzx ebx, byte [ebp + eax]
inc eax
movzx ebx, bl
or edx, ebx
mov ebx, edx
add ecx, 0xfffffffe
je 0x1002a300
cmp eax, 0x1fffffff
jg 0x1002a347
movzx edx, byte [ebp + eax]
inc eax
jmp 0x1002a349
xor edx, edx
movzx edx, dl
shl ebx, 0x10
shl edx, 8
or edx, ebx
cmp eax, 0x1fffffff
jle 0x1002a326
xor ebx, ebx
jmp 0x1002a32c
xor ecx, ecx
movzx ecx, cl
or edx, ecx
dec edx
add eax, edx
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
mov ebp, eax
mov ebx, dword [esp + 0xb8]
cmp ebx, 0x20000000
mov dword [esp], ebp
jg 0x1002a3d4
sub ebp, ebx
mov eax, ebp
or eax, ebx
mov ecx, 0
mov dword [esp + 0x44], 0
mov dword [esp + 8], 0
mov dword [esp + 0x5c], 0
mov edx, 0
mov eax, 0
js 0x1002a562
add ebx, dword [esp + 0x24]
xor ecx, ecx
test ebp, ebp
cmovs eax, ebp
jle 0x1002a3f7
movzx edx, byte [ebx + eax]
inc eax
shl edx, 8
jmp 0x1002a3f9
xor ecx, ecx
mov dword [esp + 0x44], 0
mov dword [esp + 8], 0
mov dword [esp + 0x5c], 0
xor edx, edx
xor eax, eax
jmp 0x1002a562
xor edx, edx
cmp eax, ebp
jge 0x1002a402
movzx ecx, byte [ebx + eax]
inc eax
or ecx, edx
xor edx, edx
cmp eax, ebp
jge 0x1002a47e
mov dword [esp + 8], ebp
movzx ebp, byte [ebx + eax]
test ebp, ebp
je 0x1002a484
mov dword [esp + 0x70], ecx
lea ecx, [eax + 1]
cmp eax, 0xffffffff
cmovl ecx, dword [esp + 8]
mov eax, ebp
dec eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x5c], ebp
je 0x1002a49f
mov eax, ebp
and eax, 0xfffffffe
xor ebp, ebp
jmp 0x1002a45a
movzx ebx, byte [ebx + ecx]
inc ecx
movzx ebx, bl
or edx, ebx
mov ebp, edx
add eax, 0xfffffffe
mov ebx, dword [esp + 0xb8]
je 0x1002a4a1
cmp ecx, dword [esp + 8]
jge 0x1002a467
movzx edx, byte [ebx + ecx]
inc ecx
jmp 0x1002a469
xor edx, edx
movzx edx, dl
shl ebp, 0x10
shl edx, 8
or edx, ebp
cmp ecx, dword [esp + 8]
jl 0x1002a442
xor ebx, ebx
jmp 0x1002a447
mov dword [esp + 0x44], ebp
jmp 0x1002a48c
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 8], ebx
mov dword [esp + 0x5c], 0
xor eax, eax
jmp 0x1002a562
xor edx, edx
mov eax, dword [esp + 0x5c]
test al, 1
je 0x1002a4c4
shl edx, 8
cmp ecx, dword [esp + 8]
jge 0x1002a4b9
movzx eax, byte [ebx + ecx]
inc ecx
jmp 0x1002a4bb
xor eax, eax
movzx eax, al
or edx, eax
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x44], 0
je 0x1002a517
mov ebp, eax
and ebp, 0xfffffffe
xor ebx, ebx
jmp 0x1002a4ec
mov ebx, dword [esp + 0xb8]
movzx ebx, byte [ebx + ecx]
inc ecx
movzx ebx, bl
or eax, ebx
mov ebx, eax
add ebp, 0xfffffffe
je 0x1002a519
cmp ecx, dword [esp + 8]
jge 0x1002a500
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + ecx]
inc ecx
jmp 0x1002a502
xor eax, eax
movzx eax, al
shl ebx, 0x10
shl eax, 8
or eax, ebx
cmp ecx, dword [esp + 8]
jl 0x1002a4d4
xor ebx, ebx
jmp 0x1002a4e0
xor eax, eax
test byte [esp + 0x5c], 1
jne 0x1002a535
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 8], ecx
jmp 0x1002a55e
shl eax, 8
cmp ecx, dword [esp + 8]
mov ebx, dword [esp + 0xb8]
jge 0x1002a54b
movzx ecx, byte [ebx + ecx]
jmp 0x1002a54d
xor ecx, ecx
movzx ecx, cl
or eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x70]
sub eax, edx
inc ecx
imul ecx, dword [esp + 0x5c]
add edx, ecx
add edx, 2
mov ebx, eax
or ebx, edx
js 0x1002a59a
mov ecx, dword [esp + 0x44]
sub ecx, edx
setl bl
cmp ecx, eax
setl bh
or bh, bl
mov ecx, dword [esp + 8]
add ecx, edx
test bh, bh
mov edx, 0
cmovne eax, edx
cmovne ecx, edx
jmp 0x1002a59e
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], eax
xor eax, eax
mov ebx, dword [esp]
cmp ebx, 0x1fffffff
jg 0x1002a5ee
mov eax, ebx
mov ebx, dword [esp + 0x24]
movzx ebp, byte [ebx + eax]
jne 0x1002a5f7
mov edx, 0xffffffff
mov ecx, 0x20000000
test ebp, ebp
mov ebp, ebx
mov eax, 0
jne 0x1002a6d1
jmp 0x1002a709
xor ebp, ebp
mov ecx, ebx
jmp 0x1002a71a
shl ebp, 8
movzx ebx, byte [eax + ebx + 1]
or ebx, ebp
je 0x1002a66a
mov edx, 0xffffffff
mov ecx, 0x20000000
cmp eax, 0x1ffffffd
jg 0x1002a677
mov ebp, dword [esp + 0x24]
movzx ecx, byte [ebp + eax + 2]
mov dword [esp + 8], ecx
imul ebx, ecx
lea ecx, [eax + ebx]
add ecx, 3
cmp ecx, 0x20000000
mov ebx, 0x20000000
cmovae ecx, ebx
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1002a67b
xor edx, edx
cmp bl, 1
mov eax, 0
jne 0x1002a67f
test byte [esp + 8], 1
mov ebp, dword [esp + 0x24]
je 0x1002a6d0
shl edx, 8
cmp ecx, 0x1fffffff
jg 0x1002a6c9
movzx ebx, byte [ebp + ecx]
inc ecx
jmp 0x1002a6cb
add eax, 2
mov ebp, dword [esp + 0x24]
mov ebx, eax
xor eax, eax
jmp 0x1002a6e3
mov ebp, dword [esp + 0x24]
xor eax, eax
jmp 0x1002a6d1
mov ebp, ebx
and ebp, 0xfffffffe
xor ebx, ebx
jmp 0x1002a69d
mov ebx, dword [esp + 0x24]
movzx ebx, byte [ebx + ecx]
inc ecx
movzx ebx, bl
or edx, ebx
mov ebx, edx
add ebp, 0xfffffffe
je 0x1002a64c
cmp ecx, 0x1fffffff
jg 0x1002a6b0
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + ecx]
inc ecx
jmp 0x1002a6b2
xor edx, edx
movzx edx, dl
shl ebx, 0x10
shl edx, 8
or edx, ebx
cmp ecx, 0x1fffffff
jle 0x1002a688
xor ebx, ebx
jmp 0x1002a691
xor ebx, ebx
movzx ebx, bl
or edx, ebx
dec edx
add ecx, edx
cmp ecx, 0x20000000
mov edx, 0x20000000
cmovae ecx, edx
mov ebx, ecx
mov ecx, 0x20000000
cmp ebx, 0x1fffffff
jg 0x1002a709
mov edx, ebp
movzx ebp, byte [ebp + ebx]
shl ebp, 8
cmp ebx, 0x1fffffff
jne 0x1002a712
mov ebx, 0x1fffffff
jmp 0x1002a71a
mov ebx, 0x20000000
xor ebp, ebp
jmp 0x1002a71a
lea ecx, [ebx + 2]
movzx eax, byte [ebx + edx + 1]
or ebp, eax
je 0x1002a788
mov edx, 0xffffffff
mov eax, 0x20000000
cmp ecx, 0x1fffffff
jg 0x1002a782
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
mov dword [esp + 8], eax
imul ebp, eax
lea eax, [ecx + ebp]
inc eax
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x1002a782
mov dword [esp], ebx
xor edx, edx
cmp cl, 1
jne 0x1002a78e
mov ebp, dword [esp + 0x24]
test byte [esp + 8], 1
mov ebx, dword [esp]
je 0x1002a7d9
shl edx, 8
cmp eax, 0x1fffffff
jg 0x1002a7d2
movzx ecx, byte [ebp + eax]
inc eax
jmp 0x1002a7d4
mov ebp, dword [esp + 0x24]
jmp 0x1002a7da
mov ebp, dword [esp + 0x24]
jmp 0x1002a7eb
and ecx, 0xfffffffe
xor ebx, ebx
mov ebp, dword [esp + 0x24]
jmp 0x1002a7ab
movzx ebx, byte [ebp + eax]
inc eax
movzx ebx, bl
or edx, ebx
mov ebx, edx
add ecx, 0xfffffffe
je 0x1002a766
cmp eax, 0x1fffffff
jg 0x1002a7ba
movzx edx, byte [ebp + eax]
inc eax
jmp 0x1002a7bc
xor edx, edx
movzx edx, dl
shl ebx, 0x10
shl edx, 8
or edx, ebx
cmp eax, 0x1fffffff
jle 0x1002a799
xor ebx, ebx
jmp 0x1002a79f
xor ecx, ecx
movzx ecx, cl
or edx, ecx
dec edx
add eax, edx
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
mov ecx, eax
mov eax, ecx
sub eax, ebx
mov edx, eax
or edx, ebx
js 0x1002a81a
cmp ebx, 0x20000001
setge dl
cmp ecx, 0x20000001
setge cl
or cl, dl
add ebx, ebp
test cl, cl
mov ecx, 0
cmovne eax, ecx
cmovne ebx, ecx
jmp 0x1002a81e
xor eax, eax
xor ebx, ebx
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], eax
lea ebx, [esp + 0x1d4]
mov ecx, ebx
mov edx, 0x11
lea eax, [esp + 0x1cc]
push eax
push 1
call fcn.10030530
add esp, 8
mov ecx, ebx
mov edx, 0x106
lea eax, [esp + 0x1d0]
push eax
push 1
call fcn.10030530
add esp, 8
mov ecx, ebx
mov edx, 0x124
lea eax, [esp + 0x1c8]
push eax
push 1
call fcn.10030530
add esp, 8
mov ecx, ebx
mov edx, 0x125
lea eax, [esp + 0x1c4]
push eax
push 1
call fcn.10030530
add esp, 8
lea ecx, [esp + 0x1ac]
mov edx, dword [esp + 0x24]
push dword [esp + 0x1dc]
push dword [esp + 0x1dc]
push dword [esp + 0x1dc]
push 0x20000000
call fcn.100306f0
add esp, 0x10
mov eax, dword [esp + 0x1b4]
mov dword [ebp + 0x5c], eax
movsd xmm0, qword [esp + 0x1ac]
movsd qword [ebp + 0x54], xmm0
cmp dword [esp + 0x1d0], 2
xorps xmm0, xmm0
jne 0x1002ac11
mov ebx, dword [esp + 0x1cc]
test ebx, ebx
je 0x1002ac11
mov edx, dword [esp + 0x1c8]
test edx, edx
je 0x1002aaa5
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x1002ac11
mov dword [esp + 0xb8], eax
mov eax, 0
cmp edx, 0x20000000
mov ecx, 0x20000000
cmovae edx, ecx
mov ebp, edx
jae 0x1002a949
lea ebp, [edx + 1]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edx]
shl eax, 8
cmp ebp, 0x1fffffff
ja 0x1002a95c
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + ebp]
inc ebp
jmp 0x1002a95e
xor ecx, ecx
or ecx, eax
mov dword [esp + 8], ebx
je 0x1002aa30
mov dword [esp + 0x5c], ecx
mov ecx, 0xffffffff
mov eax, 0x20000000
cmp ebp, 0x1fffffff
ja 0x1002aa1f
mov eax, dword [esp + 0x24]
movzx ebx, byte [eax + ebp]
mov dword [esp], ebx
mov eax, dword [esp + 0x5c]
imul eax, ebx
add eax, ebp
inc eax
cmp eax, 0x20000000
mov ebx, 0x20000000
cmovae eax, ebx
mov ebx, dword [esp]
test ebx, ebx
je 0x1002aa1f
xor ecx, ecx
cmp bl, 1
jne 0x1002a9cf
test byte [esp], 1
je 0x1002aa1e
shl ecx, 8
cmp eax, 0x1fffffff
jg 0x1002aa17
mov ebx, dword [esp + 0x24]
movzx ebx, byte [ebx + eax]
inc eax
jmp 0x1002aa19
mov ebp, ebx
and ebp, 0xfffffffe
xor ebx, ebx
jmp 0x1002a9ed
mov ebx, dword [esp + 0x24]
movzx ebx, byte [ebx + eax]
inc eax
movzx ebx, bl
or ecx, ebx
mov ebx, ecx
add ebp, 0xfffffffe
je 0x1002a9b4
cmp eax, 0x1fffffff
jg 0x1002a9ff
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
inc eax
jmp 0x1002aa01
xor ecx, ecx
movzx ecx, cl
shl ebx, 0x10
shl ecx, 8
or ecx, ebx
cmp eax, 0x1fffffff
jle 0x1002a9d8
xor ebx, ebx
jmp 0x1002a9e1
xor ebx, ebx
movzx ebx, bl
or ecx, ebx
dec ecx
add eax, ecx
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
mov ebp, eax
mov ecx, ebp
sub ecx, edx
add edx, dword [esp + 0x24]
cmp ebp, 0x20000001
mov ebx, ecx
mov eax, 0
cmovae ebx, eax
cmovae edx, eax
test ecx, ecx
cmovs ebx, eax
cmovs edx, eax
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x64], 0
mov ecx, 0x20000000
mov eax, dword [esp + 0xb8]
sub ecx, eax
mov edx, ecx
or edx, eax
sets dl
cmp eax, 0x20000001
setge dh
or dh, dl
add eax, dword [esp + 0x24]
test dh, dh
mov edx, 0
cmovne ecx, edx
cmovne eax, edx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x70], 0
mov dword [ebp + 0x74], ecx
mov ebx, dword [esp + 8]
xor edx, edx
mov eax, 0
cmp ebx, 0x20000000
mov ecx, 0x20000000
cmovae ebx, ecx
mov ebp, ebx
jae 0x1002aadd
lea ebp, [ebx + 1]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebx]
shl eax, 8
cmp ebp, 0x1fffffff
jbe 0x1002aae5
or edx, eax
jne 0x1002aaf6
jmp 0x1002abb8
cmp ebp, 0x1fffffff
ja 0x1002aad4
mov ecx, dword [esp + 0x24]
movzx edx, byte [ecx + ebp]
inc ebp
or edx, eax
je 0x1002abb8
mov ecx, 0xffffffff
mov eax, 0x20000000
cmp ebp, 0x1fffffff
ja 0x1002aba7
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebp]
mov dword [esp + 8], eax
imul edx, eax
lea eax, [edx + ebp]
inc eax
cmp eax, 0x20000000
mov edx, 0x20000000
cmovae eax, edx
mov edx, dword [esp + 8]
test edx, edx
je 0x1002aba7
xor ecx, ecx
cmp dl, 1
jne 0x1002ab57
test byte [esp + 8], 1
je 0x1002aba6
shl ecx, 8
cmp eax, 0x1fffffff
jg 0x1002ab9f
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + eax]
inc eax
jmp 0x1002aba1
mov ebp, edx
and ebp, 0xfffffffe
xor edx, edx
jmp 0x1002ab75
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + eax]
inc eax
movzx edx, dl
or ecx, edx
mov edx, ecx
add ebp, 0xfffffffe
je 0x1002ab3b
cmp eax, 0x1fffffff
jg 0x1002ab87
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
inc eax
jmp 0x1002ab89
xor ecx, ecx
movzx ecx, cl
shl edx, 0x10
shl ecx, 8
or ecx, edx
cmp eax, 0x1fffffff
jle 0x1002ab60
xor edx, edx
jmp 0x1002ab69
xor edx, edx
movzx edx, dl
or ecx, edx
dec ecx
add eax, ecx
cmp eax, 0x20000000
mov ecx, 0x20000000
cmovae eax, ecx
mov ebp, eax
mov eax, ebp
sub eax, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x24]
add ebx, ecx
cmp ebp, 0x20000001
mov ecx, eax
mov edx, 0
cmovae ecx, edx
cmovae ebx, edx
test eax, eax
cmovs ecx, edx
cmovs ebx, edx
mov eax, dword [esp + 0x10]
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], ecx
mov ebp, dword [esp + 0x7c]
jmp 0x10029f91
test ecx, ecx
je 0x1002ac0a
push ecx
mov esi, eax
call fcn.1000ab70
mov eax, esi
add esp, 4
test eax, eax
je 0x1002ac32
push eax
jmp 0x1002ac2a
mov ecx, dword [esp + 0x3f0]
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
push dword [esp + 0x6c]
call fcn.1000ab70
add esp, 4
xor ebx, ebx
jmp 0x1002e75b
lea eax, [edi + edi*8]
lea ebx, [eax + eax*2]
add ebx, edi
push ebx
call fcn.10009f30
add esp, 4
mov ebp, eax
shl edi, 4
push edi
call fcn.10009f30
add esp, 4
mov dword [esp + 0xc8], eax
shl esi, 3
lea eax, [esi + esi*2]
mov dword [esp + 0x10], eax
push eax
call fcn.10009f30
add esp, 4
mov esi, eax
push ebx
push 0
mov dword [esp + 0x104], ebp
push ebp
call fcn.1003c390
add esp, 0xc
push edi
push 0
push dword [esp + 0xd0]
call fcn.1003c390
add esp, 0xc
push dword [esp + 0x10]
push 0
mov dword [esp + 0xfc], esi
push esi
call fcn.1003c390
mov ecx, dword [esp + 0x3fc]
add esp, 0xc
cmp dword [ecx + 0x48], 0
jle 0x1002b17a
mov eax, dword [esp + 0xc8]
add eax, 6
mov dword [esp + 0xb4], eax
mov dword [esp + 0x5c], 1
xor edx, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0xa4], 0
xor eax, eax
mov ebx, 1
jmp 0x1002ad43
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
push 0
call fcn.1002eaa0
add esp, 4
mov edx, dword [esp + 0x74]
mov eax, dword [esp]
add dword [esp + 0xa4], eax
mov eax, dword [esp + 0xc]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x8c]
inc eax
mov ecx, dword [esp + 0x3f0]
cmp eax, dword [ecx + 0x48]
jge 0x1002b17a
mov dword [esp + 0x74], edx
mov esi, dword [ecx + 0x50]
mov edx, eax
shl edx, 7
mov ecx, eax
mov dword [esp + 0x8c], eax
imul eax, eax, 0x6c
mov dword [esp + 0x48], esi
mov dword [esp + 0x7c], eax
mov esi, dword [esi + eax + 0x30]
movzx edi, word [esi]
mov ebp, 0
mov ecx, 0
test di, di
je 0x1002ad9c
xor ecx, ecx
xor ebp, ebp
nop dword [eax]
movzx eax, word [esi + ebp*4 + 2]
test eax, eax
je 0x1002ad9c
movzx edi, di
sub ecx, edi
add ecx, eax
inc ecx
movzx edi, word [esi + ebp*4 + 4]
inc ebp
test di, di
jne 0x1002ad80
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x8c]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0xa4]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0xf4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x6c]
mov dword [eax + esi + 0x80], ecx
mov dword [eax + esi + 0x84], ebp
mov dword [esp], ebp
test ebp, ebp
mov dword [esp + 0x24], esi
je 0x1002ae90
mov dword [esp + 0xb8], ebx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x7c]
add ecx, edx
add ecx, 0x30
mov dword [esp + 0x34], ecx
add eax, esi
add eax, 0x80
mov dword [esp + 0x10], eax
xor ebx, ebx
mov ebp, 4
mov esi, dword [esp + 0x74]
nop dword [eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
movss xmm0, dword [edx - 0x20]
movss dword [eax + ebp*4 - 0x10], xmm0
movzx edi, word [ecx + ebx*4]
mov dword [eax + ebp*4 - 0xc], edi
movzx edi, word [ecx + ebx*4 + 2]
movzx ecx, word [ecx + ebx*4]
sub edi, ecx
lea ecx, [edi + 1]
mov dword [eax + ebp*4 - 4], ecx
lea ecx, [esi + esi*8]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0xfc]
add edx, esi
add ecx, edx
mov dword [eax + ebp*4], ecx
add esi, edi
inc esi
inc ebx
add ebp, 6
cmp dword [esp], ebx
jne 0x1002ae10
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
mov ebp, dword [eax]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0x24]
jmp 0x1002ae9a
mov dword [esp + 4], 0
mov ebp, ecx
mov edx, dword [esp + 0x20]
shl edx, 4
mov ecx, dword [esp + 0xc8]
add ecx, edx
mov dword [esp + 0x10], ecx
mov dword [eax + esi + 0x78], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + esi + 0x7c], ecx
mov edi, eax
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x7c]
mov eax, dword [ecx + esi + 0x14]
mov ecx, dword [ecx + esi + 0x18]
cmp eax, 9
mov esi, dword [esp + 0x5c]
cmovb esi, eax
cmp ecx, 9
cmovb ebx, ecx
mov ecx, dword [esp + 4]
test ecx, ecx
mov dword [esp + 0x5c], esi
jle 0x1002ad00
mov eax, esi
mov ecx, dword [esp + 0x24]
lea esi, [edi + ecx]
add ecx, edi
add ecx, 0x78
mov dword [esp + 0x70], ecx
movd xmm0, ebx
movq xmm1, qword [0x1005ab88]
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0xd8], xmm0
movd xmm0, eax
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x78], xmm0
mov ecx, eax
mov eax, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x48], ecx
add eax, ebx
mov dword [esp + 0x7c], eax
add edx, dword [esp + 0xb4]
xor eax, eax
xor edi, edi
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x44], edx
jmp 0x1002af95
mov eax, dword [esp + 0x24]
add eax, edi
mov edi, eax
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 8]
inc eax
cmp eax, dword [esp + 4]
je 0x1002b110
mov dword [esp + 8], eax
lea eax, [eax + eax*2]
movss xmm1, dword [ebp + eax*8]
ucomiss xmm1, dword [0x100581f0]
mov dword [esp + 0x24], edi
jbe 0x1002aff0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x1c]
movzx edi, byte [ecx + edx + 4]
shl edi, 8
movzx ebx, byte [ecx + edx + 5]
movsx edi, di
or edi, ebx
movzx ebx, byte [ecx + edx + 6]
shl ebx, 8
movzx ecx, byte [ecx + edx + 7]
movsx edx, bx
mov ebx, dword [esp + 0xb8]
or edx, ecx
sub edi, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mov edi, dword [esp + 0x24]
jmp 0x1002b010
xorps xmm1, xmmword [0x10058730]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x14]
movzx ecx, word [ecx + edx + 0x12]
rol cx, 8
movzx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
divss xmm1, xmm0
mov ecx, dword [esp + 0x5c]
mov byte [ebp + eax*8 + 0x14], cl
mov byte [ebp + eax*8 + 0x15], bl
cmp dword [ebp + eax*8 + 0xc], 0
mov edx, dword [esp + 0x44]
jle 0x1002af86
lea ebx, [eax*8 + 0xc]
add ebx, ebp
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0xd8]
movss dword [esp + 0x34], xmm0
mulss xmm1, dword [esp + 0x78]
movups xmmword [esp + 0x10], xmm1
mov ebp, edi
shl ebp, 4
add ebp, edx
xor edi, edi
jmp 0x1002b0f1
mov edx, dword [eax + edi*4]
mov ecx, esi
call fcn.10030970
mov ecx, esi
mov edx, eax
movups xmm0, xmmword [esp + 0x10]
movss xmm1, dword [esp + 0x34]
lea eax, [esp + 0x1cc]
push eax
lea eax, [esp + 0x1d4]
push eax
lea eax, [esp + 0x1b4]
push eax
lea eax, [esp + 0x1e0]
push eax
call fcn.10030c70
add esp, 0x10
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1d0]
add ecx, dword [esp + 0x48]
not eax
add eax, ecx
mov word [ebp - 2], ax
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1cc]
add ecx, dword [esp + 0x7c]
not eax
add eax, ecx
mov word [ebp], ax
inc edi
add ebp, 0x10
cmp edi, dword [ebx]
jge 0x1002af70
mov eax, dword [ebx - 4]
test eax, eax
jne 0x1002b070
mov edx, dword [ebx - 8]
add edx, edi
jmp 0x1002b073
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
mov ecx, dword [esp + 0xa8]
push edi
call fcn.1002eaa0
add esp, 4
test edi, edi
mov edx, dword [esp + 0x74]
jle 0x1002ad19
mov eax, 0xc
jmp 0x1002b14a
add eax, 0x10
dec edi
je 0x1002ad19
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx]
cmp dword [ecx + eax], 0
je 0x1002b140
movzx edx, word [ecx + eax - 2]
movzx ecx, word [ecx + eax - 6]
add ecx, edx
mov esi, dword [esp + 0x3f0]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
cmovg ecx, edx
mov dword [esi + 0x1c], ecx
mov edx, dword [esp + 0x74]
jmp 0x1002b140
test byte [ecx], 1
mov eax, dword [ecx + 0x1c]
jne 0x1002b1ac
dec eax
mov ecx, eax
sar ecx, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or eax, ecx
mov ecx, eax
sar ecx, 4
or ecx, eax
mov edx, ecx
sar edx, 8
or edx, ecx
mov ecx, dword [esp + 0x3f0]
mov eax, edx
sar eax, 0x10
or eax, edx
inc eax
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 0x3f0]
mov ecx, dword [ecx + 0x18]
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm1, xmm0
cvtdq2ps xmm0, xmm1
movaps xmm1, xmmword [0x10058520]
divps xmm1, xmm0
mov edx, dword [esp + 0x3f0]
movlps qword [edx + 0x20], xmm1
imul eax, ecx
push eax
call fcn.10009f30
add esp, 4
mov ecx, dword [esp + 0x3f0]
mov dword [ecx + 0x10], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x3f0]
imul ecx, dword [edx + 0x18]
push ecx
push 0
push eax
call fcn.1003c390
mov eax, dword [esp + 0x3fc]
add esp, 0xc
cmp dword [eax + 0x48], 0
jle 0x1002e389
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xd0], ecx
movd xmm0, dword [esp + 0x90]
pshuflw xmm0, xmm0, 0
movdqu xmmword [esp + 0x18c], xmm0
mov ecx, dword [esp + 0x58]
add ecx, ecx
mov dword [esp + 0xb8], ecx
xor ecx, ecx
xorps xmm1, xmm1
movaps xmm0, xmmword [0x10058730]
jmp 0x1002b282
mov ecx, dword [esp + 0xf8]
mov eax, dword [esp + 8]
mov dword [eax], 0
inc ecx
mov eax, dword [esp + 0x3f0]
cmp ecx, dword [eax + 0x48]
jge 0x1002e389
mov eax, dword [eax + 0x50]
mov dword [esp + 0x128], eax
mov eax, ecx
shl eax, 7
mov dword [esp + 0xf8], ecx
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [eax + ecx + 0x84]
mov dword [esp + 0x130], ecx
test ecx, ecx
jle 0x1002dfa0
mov ecx, dword [esp + 0xe0]
lea edx, [eax + ecx]
mov dword [esp + 0xe8], edx
mov edx, dword [eax + ecx + 0x78]
mov dword [esp + 0xb4], edx
mov ecx, dword [eax + ecx + 0x80]
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x100], ecx
jmp 0x1002b317
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [0x10058730]
mov edx, dword [esp + 0x134]
inc edx
cmp edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x100]
je 0x1002dfa0
mov dword [esp + 0x134], edx
lea eax, [edx + edx*2]
movss xmm2, dword [ecx + eax*8]
ucomiss xmm2, xmm1
jbe 0x1002b370
mov edx, dword [esp + 0xe8]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x1c]
movzx esi, byte [ecx + edx + 4]
shl esi, 8
movzx edi, byte [ecx + edx + 5]
movsx esi, si
or esi, edi
movzx edi, byte [ecx + edx + 6]
shl edi, 8
movzx ecx, byte [ecx + edx + 7]
movsx edx, di
or edx, ecx
sub esi, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
jmp 0x1002b393
xorps xmm2, xmm0
mov edx, dword [esp + 0xe8]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x14]
movzx ecx, word [ecx + edx + 0x12]
rol cx, 8
movzx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
divss xmm2, xmm0
mov edx, dword [esp + 0x100]
movzx ecx, byte [edx + eax*8 + 0x14]
mov esi, 1
xorps xmm3, xmm3
cvtsi2ss xmm3, ecx
sub esi, ecx
xorps xmm0, xmm0
movss dword [esp + 0x10c], xmm0
movss dword [esp + 0x108], xmm0
mov dword [esp + 0x78], ecx
test ecx, ecx
mov ecx, esi
movups xmmword [esp + 0x15c], xmm2
je 0x1002b3fb
xorps xmm2, xmm2
cvtsi2ss xmm2, ecx
movaps xmm0, xmm3
addss xmm0, xmm3
divss xmm2, xmm0
movss dword [esp + 0x108], xmm2
movups xmm2, xmmword [esp + 0x15c]
movss dword [esp + 0xac], xmm3
mov dword [esp + 0x138], ecx
movzx ecx, byte [edx + eax*8 + 0x15]
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mov esi, 1
sub esi, ecx
mov dword [esp + 8], ecx
test ecx, ecx
je 0x1002b44c
xorps xmm2, xmm2
cvtsi2ss xmm2, esi
movaps xmm6, xmm0
addss xmm0, xmm0
divss xmm2, xmm0
movaps xmm0, xmm6
movss dword [esp + 0x10c], xmm2
movups xmm2, xmmword [esp + 0x15c]
mov ecx, dword [edx + eax*8 + 0xc]
test ecx, ecx
jle 0x1002b2f0
movaps xmm3, xmm2
movaps xmm6, xmm0
movss xmm4, dword [0x100581a0]
movaps xmm2, xmm4
movss xmm0, dword [esp + 0xac]
divss xmm2, xmm0
movss dword [esp + 0x154], xmm2
movaps xmm2, xmm4
divss xmm2, xmm6
movss dword [esp + 0x150], xmm2
lea eax, [edx + eax*8 + 0xc]
mov dword [esp + 0x118], eax
mulss xmm6, xmm3
mulss xmm0, xmm3
movaps xmm3, xmm6
movss dword [esp + 0xac], xmm0
minss xmm3, xmm0
movss xmm2, dword [0x1005ab90]
divss xmm2, xmm3
mulss xmm2, xmm2
movss dword [esp + 0xd8], xmm2
movups xmmword [esp + 0x16c], xmm6
movaps xmm0, xmmword [0x10058730]
xorps xmm6, xmm0
movups xmmword [esp + 0x17c], xmm6
mov eax, dword [esp + 0x78]
lea eax, [eax*4]
mov edx, 4
sub edx, eax
mov dword [esp + 0x12c], edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x90], esi
xor esi, esi
jmp 0x1002b633
mov ecx, dword [esp + 0x11c]
movzx edx, word [esp + 0x9a]
mov edi, dword [esp + 0x70]
movzx eax, word [edi]
mov esi, dword [esp + 0x94]
mov word [esi], ax
movzx eax, word [edi + 2]
mov esi, dword [esp + 0x44]
mov word [ecx + esi + 2], ax
movzx eax, word [edi - 4]
add ax, word [edi]
mov word [ecx + esi + 4], ax
movzx eax, word [edi - 2]
add ax, word [edi + 2]
mov word [ecx + esi + 6], ax
movsx eax, dx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [esp + 0x15c]
movss dword [ecx + esi + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x1c4]
movss xmm3, dword [esp + 0x154]
mulss xmm0, xmm3
movss xmm6, dword [esp + 0x108]
addss xmm0, xmm6
movss dword [ecx + esi + 8], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x1c0]
movss xmm4, dword [esp + 0x150]
mulss xmm0, xmm4
movss xmm2, dword [esp + 0x10c]
addss xmm0, xmm2
movss dword [ecx + esi + 0xc], xmm0
movzx eax, word [edi - 4]
add eax, dword [esp + 0x1c4]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, xmm3
addss xmm0, xmm6
movss dword [ecx + esi + 0x14], xmm0
movzx eax, word [edi - 2]
add eax, dword [esp + 0x1c0]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, xmm4
addss xmm0, xmm2
movss dword [ecx + esi + 0x18], xmm0
mov eax, dword [esp + 0x118]
mov ecx, dword [eax]
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [0x10058730]
mov esi, dword [esp + 0x120]
mov ebx, dword [esp + 0x158]
inc ebx
inc esi
cmp esi, ecx
jge 0x1002b2fb
mov dword [esp + 0x158], ebx
shl ebx, 4
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x124], ebx
cmp dword [edx + ebx + 0xc], 0
je 0x1002b622
mov ecx, dword [esp + 0x118]
mov eax, dword [ecx - 4]
test eax, eax
mov dword [esp + 0x120], esi
je 0x1002b670
mov edx, dword [eax + esi*4]
jmp 0x1002b675
mov edx, dword [ecx - 8]
add edx, esi
mov eax, dword [ecx + 4]
mov dword [esp + 0x11c], eax
mov edi, dword [esp + 0xe8]
mov ecx, edi
call fcn.10030970
mov esi, eax
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x124]
movq xmm0, qword [ebp + ebx + 4]
movdqa xmm1, xmm0
movdqu xmm2, xmmword [esp + 0x18c]
psubw xmm1, xmm2
paddw xmm0, xmm2
pshufd xmm0, xmm0, 0x55
punpckldq xmm1, xmm0
movq qword [ebp + ebx + 4], xmm1
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x1c]
movzx ecx, word [eax + ecx + 0x22]
rol cx, 8
movzx ecx, cx
add eax, dword [edi + 0x20]
lea edx, [esi*4]
cmp ecx, esi
lea ecx, [ecx*4 - 4]
cmovg ecx, edx
movzx eax, word [ecx + eax]
mov word [esp + 0x9a], ax
mov ecx, edi
mov edx, esi
movss xmm0, dword [esp + 0xac]
movups xmm1, xmmword [esp + 0x16c]
lea eax, [esp + 0x1b8]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1c8]
push eax
lea eax, [esp + 0x1d0]
push eax
call fcn.10030c70
add esp, 0x10
movzx esi, word [ebp + ebx + 6]
sub esi, dword [esp + 8]
movzx eax, word [ebp + ebx + 4]
mov dword [esp + 0x7c], eax
movzx ecx, word [ebp + ebx + 8]
mov dword [esp + 0x24], ecx
movzx ebp, word [ebp + ebx + 0xa]
mov ecx, edi
mov ebx, dword [esp + 0x10]
mov edx, ebx
lea eax, [esp + 0x1c8]
push eax
call fcn.10032200
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0x7c]
movd xmm0, dword [esp + 0xac]
movdqu xmm1, xmmword [esp + 0x16c]
push 0
push 0
lea eax, [esp + 0x1d4]
push eax
lea eax, [esp + 0x1dc]
push eax
call fcn.10030c70
add esp, 0x10
mov dword [esp + 0x114], esi
mov ecx, esi
inc ecx
mov esi, dword [esp + 0x90]
je 0x1002d780
mov eax, dword [esp + 0x78]
neg eax
add eax, ebx
inc eax
test eax, eax
je 0x1002d780
mov dword [esp + 4], ecx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1d4], 0
cmp dword [esp + 0x34], 0
jle 0x1002d780
xor edx, edx
mov eax, 0
cmp dword [esp + 0x34], 8
jb 0x1002b902
mov ebx, ebp
mov eax, dword [esp + 0x34]
and eax, 0xfffffff8
mov ecx, dword [esp + 0x48]
add ecx, 0x6e
pxor xmm0, xmm0
mov edx, eax
pxor xmm1, xmm1
movdqa xmm4, xmmword [0x1005aba0]
movdqa xmm5, xmmword [0x1005abb0]
nop word [eax + eax]
movzx esi, byte [ecx - 0x62]
movzx edi, byte [ecx - 0x46]
movzx ebp, byte [ecx - 0x38]
shl ebp, 8
or ebp, edi
movzx edi, byte [ecx - 0x54]
shl edi, 8
or edi, esi
movd xmm2, edi
pinsrw xmm2, ebp, 1
movzx esi, byte [ecx - 0x2a]
movzx edi, byte [ecx - 0xe]
movzx ebp, byte [ecx]
shl ebp, 8
or ebp, edi
movzx edi, byte [ecx - 0x1c]
shl edi, 8
or edi, esi
movd xmm3, edi
pinsrw xmm3, ebp, 1
pcmpeqb xmm2, xmm4
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pand xmm2, xmm5
paddd xmm0, xmm2
pcmpeqb xmm3, xmm4
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pand xmm3, xmm5
paddd xmm1, xmm3
add ecx, 0x70
add edx, 0xfffffff8
jne 0x1002b860
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edx, xmm1
cmp dword [esp + 0x34], eax
mov esi, dword [esp + 0x90]
mov ebp, ebx
mov ebx, dword [esp + 0x7c]
je 0x1002b934
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov edi, edx
lea edx, [eax + eax]
shl eax, 4
sub eax, edx
mov edx, edi
mov edi, dword [esp + 0x48]
add eax, edi
add eax, 0xc
nop dword [eax]
mov edi, edx
xor edx, edx
cmp byte [eax], 1
sete dl
add edi, edx
mov edx, edi
add eax, 0xe
dec ecx
jne 0x1002b920
test edx, edx
je 0x1002d780
lea eax, [edx*4]
push eax
mov dword [esp + 0x60], edx
call fcn.10009f30
add esp, 4
test eax, eax
je 0x1002d780
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0xd0]
imul ebp, dword [esp + 0x58]
add ebp, eax
mov eax, ebx
sub eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
xor eax, eax
mov cl, 1
xor ebx, ebx
xor edx, edx
mov dword [esp + 0xa0], ebp
jmp 0x1002b9b9
mov eax, dword [esp + 0x1d4]
sub eax, ebx
mov ecx, dword [esp + 0x74]
mov dword [ecx + esi*4], eax
mov al, 1
test byte [esp + 0x10], 1
mov ecx, 0
mov esi, dword [esp + 0x90]
je 0x1002bbdd
mov dword [esp + 0x10], ecx
test al, 1
je 0x1002b9de
mov eax, dword [esp + 0x1d4]
shl eax, 3
push eax
call fcn.10009f30
add esp, 4
mov edx, eax
test eax, eax
je 0x1002bc46
mov dword [esp + 0x1d4], 0
pxor xmm0, xmm0
mov esi, 0xffffffff
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x94], edx
jmp 0x1002baa0
movsx eax, word [edi + 2]
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
movsx eax, word [edi]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movsx eax, word [edi + 6]
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
movsx eax, word [edi + 4]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
sub esp, 0x14
movss xmm6, dword [esp + 0xec]
movss dword [esp + 0xc], xmm6
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm4
movss dword [esp], xmm5
mov dword [esp + 0x10], 0
mov ecx, edx
lea edx, [esp + 0x1e8]
call fcn.100332c0
mov edx, dword [esp + 0xa8]
add esp, 0x14
movd xmm0, dword [edi]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
add edi, 0xe
dec ebp
je 0x1002b990
movzx eax, byte [edi + 0xc]
dec eax
cmp eax, 3
ja case.default.0x1002baaa
jmp dword [eax*4 + 0x1005ace0]
test esi, esi
js 0x1002bac5
mov eax, dword [esp + 0x1d4]
sub eax, ebx
mov ecx, dword [esp + 0x74]
mov dword [ecx + esi*4], eax
inc esi
mov ebx, dword [esp + 0x1d4]
lea eax, [ebx + 1]
movd xmm0, dword [edi]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1d4], eax
test edx, edx
je case.default.0x1002baaa
movlps qword [edx + ebx*8], xmm0
jmp case.default.0x1002baaa
mov eax, dword [esp + 0x1d4]
lea ecx, [eax + 1]
movd xmm0, dword [edi]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1d4], ecx
test edx, edx
je case.default.0x1002baaa
movlps qword [edx + eax*8], xmm0
jmp case.default.0x1002baaa
movsx eax, word [edi + 2]
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
movsx eax, word [edi]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movsx eax, word [edi + 0xa]
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
movsx eax, word [edi + 8]
xorps xmm6, xmm6
cvtsi2ss xmm6, eax
movsx eax, word [edi + 6]
xorps xmm7, xmm7
cvtsi2ss xmm7, eax
movsx eax, word [edi + 4]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movdqa xmm1, xmm0
shufps xmm1, xmm0, 0x55
sub esp, 0x1c
movss dword [esp + 0x10], xmm3
movss dword [esp + 0xc], xmm4
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm6
movss dword [esp], xmm7
movss xmm3, dword [esp + 0xf4]
movss dword [esp + 0x14], xmm3
mov dword [esp + 0x18], 0
mov ecx, edx
lea edx, [esp + 0x1f0]
call fcn.10033540
mov edx, dword [esp + 0xb0]
add esp, 0x1c
jmp 0x1002ba85
test edx, edx
je 0x1002d780
xor ecx, ecx
mov eax, 0
mov edx, dword [esp + 0x5c]
cmp edx, 8
mov edi, dword [esp + 0x74]
jb 0x1002bc60
mov eax, edx
and eax, 0xfffffff8
xorps xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop word [eax + eax]
movdqu xmm2, xmmword [edi + ecx*4]
paddd xmm0, xmm2
movdqu xmm2, xmmword [edi + ecx*4 + 0x10]
paddd xmm1, xmm2
add ecx, 8
cmp eax, ecx
jne 0x1002bc10
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
jmp 0x1002bc64
push 0
call fcn.1000ab70
add esp, 4
push dword [esp + 0x74]
jmp 0x1002d773
add ecx, dword [edi + eax*4]
inc eax
cmp edx, eax
jne 0x1002bc60
lea eax, [ecx + ecx*4]
lea eax, [eax*4 + 0x14]
push eax
call fcn.10009f30
add esp, 4
test eax, eax
je 0x1002d763
mov ecx, eax
mov eax, dword [esp + 0x94]
add eax, 4
mov dword [esp], eax
mov dword [esp + 0x10], 0
xor edx, edx
xor esi, esi
pxor xmm1, xmm1
movss xmm2, dword [esp + 0xac]
movups xmm3, xmmword [esp + 0x17c]
mov dword [esp + 0x8c], ecx
jmp 0x1002bcd7
mov esi, dword [esp + 0x24]
add esi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
inc edx
cmp edx, dword [esp + 0x5c]
je 0x1002bdcd
mov eax, dword [esp + 0x74]
mov dword [esp + 0x34], edx
mov edx, dword [eax + edx*4]
test edx, edx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], edx
jle 0x1002bcc0
lea ebx, [eax + esi*8]
lea eax, [edx - 1]
mov edx, dword [esp]
lea ebp, [edx + esi*8]
xor edi, edi
mov edx, dword [esp + 0x48]
jmp 0x1002bd95
lea edi, [ecx + edx*4]
add edi, 0x10
mov dword [edi], 1
mov edi, eax
mov eax, esi
mov ecx, dword [esp + 0x8c]
lea ecx, [ecx + edx*4]
movss xmm0, dword [ebx + edi*8]
mulss xmm0, xmm2
addss xmm0, xmm1
movss dword [ecx], xmm0
mov ecx, dword [esp + 0x8c]
movss xmm0, dword [ebx + edi*8 + 4]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [ecx + edx*4 + 4], xmm0
movss xmm0, dword [ebx + eax*8]
mulss xmm0, xmm2
addss xmm0, xmm1
movss dword [ecx + edx*4 + 8], xmm0
movss xmm0, dword [ebx + eax*8 + 4]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [ecx + edx*4 + 0xc], xmm0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x34]
mov edx, dword [eax + edx*4]
lea edi, [esi + 1]
mov eax, esi
cmp edi, edx
jge 0x1002bcc0
mov esi, edi
movss xmm0, dword [ebx + eax*8 + 4]
ucomiss xmm0, dword [ebp + edi*8]
jne 0x1002bda6
jnp 0x1002bd88
mov edx, dword [esp + 0x10]
lea edx, [edx + edx*4]
mov dword [ecx + edx*4 + 0x10], 0
movss xmm0, dword [ebx + eax*8 + 4]
ucomiss xmm0, dword [ebp + esi*8]
ja 0x1002bd0c
mov edi, esi
jmp 0x1002bd1c
mov esi, dword [esp + 0x10]
mov edx, esi
call fcn.100338f0
cmp esi, 2
mov ebx, dword [esp + 0xf0]
jl 0x1002bea6
mov eax, 1
mov ecx, dword [esp + 0x8c]
jmp 0x1002be0e
inc eax
add ecx, 0x14
cmp eax, dword [esp + 0x10]
je 0x1002bea6
lea edx, [eax + eax*4]
mov edi, dword [esp + 0x8c]
movsd xmm0, qword [edi + edx*4]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
mov esi, dword [edi + edx*4 + 0x10]
mov dword [esp + 0x1dc], esi
movsd xmm2, qword [edi + edx*4 + 8]
movsd qword [esp + 0x1d4], xmm2
mov edi, ecx
mov edx, eax
nop word cs:[eax + eax]
movss xmm2, dword [edi + 4]
ucomiss xmm2, xmm1
jbe 0x1002be75
dec edx
mov esi, dword [edi + 0x10]
mov dword [edi + 0x24], esi
movups xmm2, xmmword [edi]
movups xmmword [edi + 0x14], xmm2
lea esi, [edx + 1]
add edi, 0xffffffec
cmp esi, 1
jg 0x1002be50
xor edx, edx
cmp eax, edx
je 0x1002be00
lea edx, [edx + edx*4]
mov edi, dword [esp + 0x8c]
movlps qword [edi + edx*4], xmm0
movsd xmm0, qword [esp + 0x1d4]
movsd qword [edi + edx*4 + 8], xmm0
mov esi, dword [esp + 0x1dc]
mov dword [edi + edx*4 + 0x10], esi
jmp 0x1002be00
mov dword [esp + 0x1ac], 0
lea eax, [esp + 0x1d4]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x70], 0x40
jl 0x1002bede
mov eax, dword [esp + 0xe4]
lea eax, [eax*8 + 4]
push eax
call fcn.10009f30
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
add eax, ebx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
addss xmm0, dword [0x100581a0]
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x8c]
movss dword [ecx + eax*4 + 4], xmm0
cmp dword [esp + 0x114], 0x7ffffffe
ja 0x1002d731
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x44]
movss dword [esp + 0xd4], xmm0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xc]
lea edx, [ecx + eax*4]
mov dword [esp + 0x144], edx
add edx, 4
mov dword [esp + 0x9c], edx
lea edx, [eax*4]
mov dword [esp + 0x140], edx
lea edx, [eax*4 + 4]
mov dword [esp + 0x13c], edx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [esp + 0xa4], xmm0
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x7c]
lea edx, [eax + edx*4]
add edx, ecx
xor edi, edi
mov esi, dword [esp + 0x8c]
xor eax, eax
mov dword [esp + 0x104], 0
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0xec], edx
jmp 0x1002bfe8
mov ebx, dword [esp + 0xf0]
inc ebx
mov ecx, dword [esp + 0x14c]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xa0]
add edx, dword [esp + 0x58]
mov dword [esp + 0xa0], edx
cmp ecx, dword [esp + 0x114]
mov ecx, dword [esp + 0xb0]
je 0x1002d71c
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x14c], eax
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
movss dword [esp + 0x24], xmm0
addss xmm0, dword [0x100581a0]
movss dword [esp], xmm0
push dword [esp + 0x140]
push 0
push dword [esp + 0x14]
call fcn.1003c390
add esp, 0xc
push dword [esp + 0x13c]
push 0
push dword [esp + 0x14c]
call fcn.1003c390
add esp, 0xc
test edi, edi
je 0x1002c090
lea eax, [esp + 0x1ac]
xorps xmm3, xmm3
mov edx, 0xff
movss xmm2, dword [esp + 0xd4]
movss xmm0, dword [esp + 0x24]
movss xmm4, dword [esp]
jmp 0x1002c085
mov ecx, dword [edi]
mov dword [eax], ecx
mov dword [edi + 0x10], 0
mov dword [edi], ebp
mov ebp, edi
mov edi, dword [eax]
test edi, edi
je 0x1002c0a6
ucomiss xmm0, dword [edi + 0x18]
jae 0x1002c070
mov eax, edi
jmp 0x1002c07f
xorps xmm3, xmm3
mov edx, 0xff
movss xmm2, dword [esp + 0xd4]
movss xmm4, dword [esp]
movss xmm0, dword [esi + 4]
ucomiss xmm4, xmm0
mov edi, dword [esp + 0x104]
jae 0x1002c131
mov dword [esp + 0x148], ebp
mov dword [esp + 0x104], edi
mov dword [esp + 0xf0], ebx
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x110], eax
test eax, eax
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xa0], edi
je 0x1002d660
movss xmm0, dword [esp]
subss xmm0, dword [esp + 0x24]
movss dword [esp + 0xcc], xmm0
mov eax, dword [esp + 0x110]
jmp 0x1002c322
mov ecx, ebp
movss xmm0, dword [esi + 0x18]
add esi, 0x14
ucomiss xmm4, xmm0
mov ebp, ecx
jb 0x1002c0b7
movss xmm1, dword [esi + 0xc]
ucomiss xmm0, xmm1
jne 0x1002c13d
jnp 0x1002c120
test ebp, ebp
je 0x1002c1f0
mov ecx, dword [ebp]
subss xmm1, xmm0
movss xmm0, dword [esi + 8]
subss xmm0, dword [esi]
divss xmm0, xmm1
mov eax, ebp
movss dword [ebp + 8], xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x1002c16a
jnp 0x1002c176
movss xmm1, dword [0x100581a0]
divss xmm1, xmm0
mov ebp, eax
movss dword [eax + 0xc], xmm1
movss xmm1, dword [esp + 0x24]
subss xmm1, dword [esi + 4]
mulss xmm0, xmm1
addss xmm0, dword [esi]
subss xmm0, xmm2
movss dword [eax + 4], xmm0
xor eax, eax
cmp dword [esi + 0x10], 0
sete al
movss xmm0, dword [eax*4 + 0x10058720]
movss dword [ebp + 0x10], xmm0
movss xmm0, dword [esi + 4]
movss dword [ebp + 0x14], xmm0
movss xmm0, dword [esi + 0xc]
movss dword [ebp + 0x18], xmm0
mov dword [ebp], 0
mov eax, dword [esp + 0x1ac]
mov dword [ebp], eax
mov dword [esp + 0x1ac], ebp
jmp 0x1002c122
test edi, edi
je 0x1002c21d
mov ebp, edi
lea eax, [edi - 1]
xor ecx, ecx
mov edi, dword [esp + 0xb0]
test edi, edi
je 0x1002c272
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add ebp, edx
dec ebp
mov edx, 0xff
add ebp, edi
mov edi, eax
jmp 0x1002c148
push 0xdac4
call fcn.10009f30
add esp, 4
test eax, eax
je 0x1002c284
mov ecx, dword [esp + 0xb0]
mov dword [eax], ecx
mov ebp, eax
add ebp, 0xdaa4
movss xmm0, dword [esi + 4]
movss xmm1, dword [esi + 0xc]
xor ecx, ecx
mov dword [esp + 0xb0], eax
mov edi, 0x7cf
xorps xmm3, xmm3
mov edx, 0xff
movss xmm2, dword [esp + 0xd4]
movss xmm4, dword [esp]
jmp 0x1002c148
mov dword [esp + 0xb0], 0
mov edi, eax
jmp 0x1002c122
xor ecx, ecx
xor edi, edi
xorps xmm3, xmm3
mov edx, 0xff
movss xmm2, dword [esp + 0xd4]
movss xmm4, dword [esp]
jmp 0x1002c122
xorps xmm1, xmm1
cvtsi2ss xmm1, ebx
subss xmm6, xmm1
subss xmm5, xmm1
addss xmm5, xmm6
mulss xmm5, dword [0x100588c0]
addss xmm5, dword [0x100581a0]
mulss xmm5, dword [eax + 0x10]
subss xmm4, xmm0
mulss xmm5, xmm4
mov ecx, dword [esp + 0xc]
addss xmm5, dword [ecx + ebx*4]
movss dword [ecx + ebx*4], xmm5
mulss xmm4, dword [eax + 0x10]
mov ecx, dword [esp + 0x9c]
addss xmm4, dword [ecx + ebx*4]
movss dword [ecx + ebx*4], xmm4
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0xec]
nop word cs:[eax + eax]
mov eax, dword [eax]
test eax, eax
xorps xmm3, xmm3
mov edx, 0xff
je 0x1002d660
movss xmm2, dword [eax + 4]
movss xmm4, dword [eax + 8]
ucomiss xmm4, xmm3
movups xmmword [esp + 0x5c], xmm2
jne 0x1002c410
jp 0x1002c410
xorps xmm0, xmm0
movss xmm1, dword [esp + 0xa4]
ucomiss xmm1, xmm2
jbe 0x1002c310
movups xmm1, xmmword [esp + 0x5c]
ucomiss xmm1, xmm0
jae 0x1002c53f
movss xmm0, dword [esp]
ucomiss xmm0, dword [esp + 0x24]
jne 0x1002c36d
jnp 0x1002c310
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [esp + 0x24]
ucomiss xmm1, xmm0
ja 0x1002c310
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, dword [esp]
ja 0x1002c310
movss xmm3, dword [esp + 0x24]
ucomiss xmm1, xmm3
movups xmm2, xmmword [esp + 0x5c]
jbe 0x1002c3c1
movups xmm4, xmmword [esp + 0x5c]
movaps xmm3, xmm4
subss xmm3, xmm4
movaps xmm2, xmm1
subss xmm2, dword [esp + 0x24]
mulss xmm2, xmm3
divss xmm2, dword [esp + 0xcc]
addss xmm2, xmm4
movaps xmm3, xmm1
movss xmm6, dword [esp]
ucomiss xmm6, xmm0
pxor xmm5, xmm5
jbe 0x1002d451
movups xmm7, xmmword [esp + 0x5c]
movaps xmm1, xmm7
subss xmm1, xmm2
movaps xmm4, xmm0
subss xmm4, xmm6
mulss xmm4, xmm1
movaps xmm1, xmm6
subss xmm1, xmm3
divss xmm4, xmm1
addss xmm7, xmm4
movups xmmword [esp + 0x5c], xmm7
ucomiss xmm5, xmm2
jae 0x1002d45d
jmp 0x1002d56c
movaps xmm0, xmm4
addss xmm0, xmm2
movups xmmword [esp + 0x48], xmm0
movss xmm0, dword [eax + 0x14]
movaps xmm1, xmm0
movss xmm6, dword [esp + 0x24]
subss xmm1, xmm6
movss dword [esp + 0x44], xmm4
mulss xmm1, xmm4
addss xmm1, xmm2
cmpltss xmm6, xmm0
andps xmm1, xmm6
andnps xmm6, xmm2
orps xmm6, xmm1
ucomiss xmm6, xmm3
jb 0x1002c510
movss xmm4, dword [eax + 0x18]
movaps xmm1, xmm4
subss xmm1, dword [esp + 0x24]
mulss xmm1, dword [esp + 0x44]
addss xmm1, dword [esp + 0x5c]
movaps xmm5, xmm4
cmpltss xmm5, dword [esp]
movaps xmm2, xmm5
andps xmm5, xmm1
movups xmm1, xmmword [esp + 0x48]
andnps xmm2, xmm1
orps xmm5, xmm2
ucomiss xmm5, xmm3
jb 0x1002c510
movss xmm1, dword [esp + 0xa4]
ucomiss xmm1, xmm6
jbe 0x1002c510
movss xmm1, dword [esp + 0xa4]
ucomiss xmm1, xmm5
jbe 0x1002c510
movss xmm3, dword [esp + 0x24]
maxss xmm0, xmm3
cvttss2si ebx, xmm6
minss xmm4, dword [esp]
cvttss2si ebp, xmm5
cmp ebx, ebp
je 0x1002c2a3
movss xmm7, dword [eax + 0xc]
ucomiss xmm6, xmm5
jbe 0x1002d2bc
subss xmm0, xmm3
movss xmm2, dword [esp]
movaps xmm1, xmm2
subss xmm1, xmm0
subss xmm4, xmm3
movaps xmm0, xmm2
subss xmm0, xmm4
xorps xmm7, xmmword [0x10058730]
mov ecx, ebx
movaps xmm4, xmm1
movaps xmm2, xmm6
movaps xmm6, xmm3
movups xmm1, xmmword [esp + 0x48]
jmp 0x1002d2ce
cmp dword [esp + 0x70], 0x7ffffffe
ja 0x1002c310
movups xmm0, xmmword [esp + 0x48]
subss xmm0, dword [esp + 0x5c]
movups xmmword [esp + 0x19c], xmm0
lea ecx, [eax + 0x10]
mov dword [esp + 0x20], ecx
xor edx, edx
jmp 0x1002c64f
movss xmm0, dword [esp]
ucomiss xmm0, dword [esp + 0x24]
jne 0x1002c551
jnp 0x1002c310
cvttss2si ecx, dword [esp + 0x5c]
movss xmm4, dword [eax + 0x18]
movss xmm0, dword [esp + 0x24]
ucomiss xmm0, xmm4
ja 0x1002d4d2
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, dword [esp]
ja 0x1002d4d2
movss xmm3, dword [esp + 0x24]
ucomiss xmm1, xmm3
movups xmm5, xmmword [esp + 0x5c]
movaps xmm0, xmm5
jbe 0x1002c5b1
movaps xmm2, xmm5
subss xmm2, xmm5
movaps xmm0, xmm1
subss xmm0, dword [esp + 0x24]
mulss xmm0, xmm2
divss xmm0, dword [esp + 0xcc]
addss xmm0, xmm5
movaps xmm3, xmm1
movss xmm6, dword [esp]
ucomiss xmm6, xmm4
movaps xmm2, xmm5
movaps xmm5, xmm6
jbe 0x1002c5ea
movups xmm5, xmmword [esp + 0x5c]
movaps xmm1, xmm5
subss xmm1, xmm0
movaps xmm2, xmm4
subss xmm2, xmm6
mulss xmm2, xmm1
movaps xmm1, xmm6
subss xmm1, xmm3
divss xmm2, xmm1
addss xmm2, xmm5
movaps xmm5, xmm4
xorps xmm1, xmm1
cvtsi2ss xmm1, ecx
ucomiss xmm1, xmm0
jb 0x1002d487
ucomiss xmm1, xmm2
jb 0x1002d487
subss xmm5, xmm3
mulss xmm5, dword [eax + 0x10]
mov edx, dword [esp + 0xc]
addss xmm5, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm5
jmp 0x1002d4d2
subss xmm1, xmm0
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
nop dword [eax]
lea ebx, [ecx - 1]
mov edx, ecx
cmp ebx, dword [esp + 0x70]
je 0x1002c310
xorps xmm5, xmm5
cvtsi2ss xmm5, edx
lea ecx, [edx + 1]
xorps xmm6, xmm6
cvtsi2ss xmm6, ecx
movaps xmm0, xmm5
movups xmm3, xmmword [esp + 0x5c]
subss xmm0, xmm3
movaps xmm7, xmm0
movss xmm4, dword [esp + 0x44]
divss xmm7, xmm4
movss xmm1, dword [esp + 0x24]
addss xmm7, xmm1
movss dword [esp + 0x34], xmm7
movaps xmm7, xmm6
subss xmm7, xmm3
movaps xmm2, xmm7
divss xmm7, xmm4
addss xmm7, xmm1
movss dword [esp + 0x7c], xmm7
movss dword [esp + 0x10], xmm5
ucomiss xmm5, xmm3
movss dword [esp + 4], xmm6
jbe 0x1002c7c0
movups xmm4, xmmword [esp + 0x48]
ucomiss xmm4, xmm6
jbe 0x1002c7c0
movss xmm6, dword [esp + 0x34]
ucomiss xmm6, xmm1
movss xmm7, dword [esp + 0x7c]
jne 0x1002c6db
jnp 0x1002cb60
movss xmm3, dword [eax + 0x18]
movss xmm1, dword [esp + 0x24]
ucomiss xmm1, xmm3
ja 0x1002cb60
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, xmm6
ja 0x1002cb60
movss xmm6, dword [esp + 0x24]
ucomiss xmm1, xmm6
movups xmm2, xmmword [esp + 0x5c]
movaps xmm4, xmm6
jbe 0x1002c73b
movaps xmm6, xmm1
movss xmm2, dword [esp + 0x24]
subss xmm6, xmm2
mulss xmm0, xmm6
movss xmm6, dword [esp + 0x34]
subss xmm6, xmm2
divss xmm0, xmm6
addss xmm0, dword [esp + 0x5c]
movaps xmm2, xmm0
movaps xmm4, xmm1
movss xmm6, dword [esp + 0x34]
ucomiss xmm6, xmm3
movss xmm5, dword [esp + 0x10]
movaps xmm1, xmm6
jbe 0x1002c779
movss xmm0, dword [esp + 0x10]
movaps xmm1, xmm0
subss xmm1, xmm2
movaps xmm5, xmm3
subss xmm5, xmm6
mulss xmm5, xmm1
movaps xmm1, xmm6
subss xmm1, xmm4
divss xmm5, xmm1
addss xmm5, xmm0
movaps xmm1, xmm3
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm2
jb 0x1002cb0a
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm5
jb 0x1002cb0a
subss xmm1, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
jmp 0x1002cb60
movss xmm5, dword [esp + 0x10]
ucomiss xmm5, dword [esp + 0x48]
jbe 0x1002c8d0
ucomiss xmm3, xmm6
jbe 0x1002c8d0
movss xmm5, dword [esp + 0x7c]
ucomiss xmm5, xmm1
jne 0x1002c7eb
jnp 0x1002cf30
movss xmm3, dword [eax + 0x18]
movss xmm1, dword [esp + 0x24]
ucomiss xmm1, xmm3
ja 0x1002cf30
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, xmm5
ja 0x1002cf30
movss xmm5, dword [esp + 0x24]
ucomiss xmm1, xmm5
movups xmm7, xmmword [esp + 0x5c]
jbe 0x1002c848
movaps xmm5, xmm1
movss xmm0, dword [esp + 0x24]
subss xmm5, xmm0
mulss xmm2, xmm5
movss xmm5, dword [esp + 0x7c]
subss xmm5, xmm0
divss xmm2, xmm5
addss xmm2, dword [esp + 0x5c]
movaps xmm7, xmm2
movaps xmm5, xmm1
movss xmm4, dword [esp + 0x7c]
ucomiss xmm4, xmm3
movss xmm0, dword [esp + 4]
movaps xmm6, xmm0
movaps xmm1, xmm4
jbe 0x1002c883
movaps xmm1, xmm0
subss xmm1, xmm7
movaps xmm6, xmm3
subss xmm6, xmm4
mulss xmm6, xmm1
movaps xmm1, xmm4
subss xmm1, xmm5
divss xmm6, xmm1
addss xmm6, xmm0
movaps xmm1, xmm3
movss xmm3, dword [esp + 0x10]
ucomiss xmm3, xmm7
jb 0x1002cece
movss xmm3, dword [esp + 0x10]
ucomiss xmm3, xmm6
jb 0x1002cece
subss xmm1, xmm5
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
movss xmm5, dword [esp + 0x7c]
jmp 0x1002cf30
movss xmm5, dword [esp + 0x10]
ucomiss xmm5, xmm3
jbe 0x1002c8e7
movups xmm4, xmmword [esp + 0x48]
ucomiss xmm4, dword [esp + 0x10]
ja 0x1002c903
movss xmm5, dword [esp + 0x10]
ucomiss xmm5, dword [esp + 0x48]
jbe 0x1002c9f8
ucomiss xmm3, dword [esp + 0x10]
jbe 0x1002c9f8
movss xmm2, dword [esp + 0x34]
ucomiss xmm2, xmm1
jne 0x1002c914
jnp 0x1002d12b
movss xmm5, dword [eax + 0x18]
movss xmm1, dword [esp + 0x24]
ucomiss xmm1, xmm5
ja 0x1002d12b
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, xmm2
ja 0x1002d12b
movss xmm3, dword [esp + 0x24]
ucomiss xmm1, xmm3
movups xmm6, xmmword [esp + 0x5c]
movaps xmm4, xmm3
jbe 0x1002c974
movaps xmm3, xmm1
movss xmm6, dword [esp + 0x24]
subss xmm3, xmm6
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x34]
subss xmm3, xmm6
divss xmm0, xmm3
addss xmm0, dword [esp + 0x5c]
movaps xmm6, xmm0
movaps xmm4, xmm1
movss xmm1, dword [esp + 0x34]
ucomiss xmm1, xmm5
movss xmm3, dword [esp + 0x10]
jbe 0x1002c9b5
movss xmm0, dword [esp + 0x10]
movaps xmm1, xmm0
subss xmm1, xmm6
movaps xmm3, xmm5
movss xmm2, dword [esp + 0x34]
subss xmm3, xmm2
mulss xmm3, xmm1
movaps xmm1, xmm2
subss xmm1, xmm4
divss xmm3, xmm1
addss xmm3, xmm0
movaps xmm1, xmm5
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm6
jb 0x1002d0d7
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm3
jb 0x1002d0d7
subss xmm1, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
movss xmm2, dword [esp + 0x34]
jmp 0x1002d12b
ucomiss xmm6, xmm3
jbe 0x1002ca07
movups xmm0, xmmword [esp + 0x48]
ucomiss xmm0, xmm6
ja 0x1002ca1b
ucomiss xmm6, dword [esp + 0x48]
jbe 0x1002cdab
ucomiss xmm3, xmm6
jbe 0x1002cdab
movss xmm7, dword [esp + 0x7c]
ucomiss xmm7, xmm1
jne 0x1002ca2c
jnp 0x1002cc90
movss xmm5, dword [eax + 0x18]
movss xmm0, dword [esp + 0x24]
ucomiss xmm0, xmm5
ja 0x1002cc90
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, xmm7
ja 0x1002cc90
movss xmm3, dword [esp + 0x24]
ucomiss xmm1, xmm3
movups xmm0, xmmword [esp + 0x5c]
movaps xmm4, xmm3
jbe 0x1002ca8c
movaps xmm0, xmm1
movss xmm3, dword [esp + 0x24]
subss xmm0, xmm3
mulss xmm2, xmm0
movss xmm0, dword [esp + 0x7c]
subss xmm0, xmm3
divss xmm2, xmm0
addss xmm2, dword [esp + 0x5c]
movaps xmm0, xmm2
movaps xmm4, xmm1
movss xmm1, dword [esp + 0x7c]
ucomiss xmm1, xmm5
movss xmm3, dword [esp + 4]
movaps xmm6, xmm1
jbe 0x1002cac7
movss xmm6, dword [esp + 4]
movaps xmm7, xmm6
subss xmm7, xmm0
movaps xmm3, xmm5
subss xmm3, xmm1
mulss xmm3, xmm7
subss xmm1, xmm4
divss xmm3, xmm1
addss xmm3, xmm6
movaps xmm6, xmm5
movss xmm1, dword [esp + 0x10]
ucomiss xmm1, xmm0
jb 0x1002d25f
movss xmm1, dword [esp + 0x10]
ucomiss xmm1, xmm3
jb 0x1002d25f
subss xmm6, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm6, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm6, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm6
movss xmm7, dword [esp + 0x7c]
jmp 0x1002cc90
ucomiss xmm2, dword [esp + 4]
jb 0x1002cb18
ucomiss xmm5, dword [esp + 4]
jae 0x1002cb60
subss xmm1, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm0, dword [esp + 0x10]
subss xmm2, xmm0
subss xmm5, xmm0
addss xmm5, xmm2
mulss xmm5, dword [0x100588c0]
addss xmm5, dword [0x100581a0]
mulss xmm5, xmm1
mov ebx, dword [esp + 0xc]
addss xmm5, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm5
nop dword [eax + eax]
ucomiss xmm6, xmm7
jne 0x1002cb6b
jnp 0x1002cc90
movss xmm3, dword [eax + 0x18]
ucomiss xmm6, xmm3
ja 0x1002cc90
movss xmm5, dword [eax + 0x14]
ucomiss xmm5, xmm7
ja 0x1002cc90
ucomiss xmm5, xmm6
movaps xmm4, xmm6
jbe 0x1002cbbe
movss xmm0, dword [esp + 4]
movaps xmm1, xmm0
movss xmm2, dword [esp + 0x10]
subss xmm1, xmm2
movaps xmm6, xmm5
subss xmm6, xmm4
mulss xmm6, xmm1
movaps xmm1, xmm7
subss xmm1, xmm4
divss xmm6, xmm1
addss xmm6, xmm2
jmp 0x1002cbcd
movss xmm6, dword [esp + 0x10]
movaps xmm5, xmm4
movss xmm0, dword [esp + 4]
ucomiss xmm7, xmm3
movaps xmm1, xmm7
jbe 0x1002cc0a
movss xmm2, dword [esp + 4]
movaps xmm1, xmm2
subss xmm1, xmm6
movaps xmm0, xmm3
subss xmm0, dword [esp + 0x7c]
mulss xmm0, xmm1
movss xmm1, dword [esp + 0x7c]
subss xmm1, xmm5
divss xmm0, xmm1
addss xmm0, xmm2
movss xmm7, dword [esp + 0x7c]
movaps xmm1, xmm3
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm6
jb 0x1002cc3c
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm0
jb 0x1002cc3c
subss xmm1, xmm5
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
jmp 0x1002cc90
ucomiss xmm6, dword [esp + 4]
jb 0x1002cc4a
ucomiss xmm0, dword [esp + 4]
jae 0x1002cc90
subss xmm1, xmm5
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm2, dword [esp + 0x10]
subss xmm6, xmm2
subss xmm0, xmm2
addss xmm0, xmm6
mulss xmm0, dword [0x100588c0]
addss xmm0, dword [0x100581a0]
mulss xmm0, xmm1
mov ebx, dword [esp + 0xc]
addss xmm0, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm0
nop word [eax + eax]
ucomiss xmm7, dword [esp]
jne 0x1002cc9c
jnp 0x1002c640
movss xmm3, dword [eax + 0x18]
ucomiss xmm7, xmm3
ja 0x1002c640
movss xmm0, dword [eax + 0x14]
ucomiss xmm0, dword [esp]
ja 0x1002c640
ucomiss xmm0, xmm7
jbe 0x1002ccf1
movups xmm1, xmmword [esp + 0x48]
movaps xmm2, xmm7
movss xmm7, dword [esp + 4]
subss xmm1, xmm7
movaps xmm5, xmm0
subss xmm5, xmm2
mulss xmm5, xmm1
movss xmm6, dword [esp]
movaps xmm1, xmm6
subss xmm1, xmm2
divss xmm5, xmm1
addss xmm5, xmm7
jmp 0x1002ccff
movss xmm5, dword [esp + 4]
movaps xmm0, xmm7
movss xmm6, dword [esp]
ucomiss xmm6, xmm3
movaps xmm1, xmm6
movups xmm6, xmmword [esp + 0x48]
jbe 0x1002cd3a
movups xmm2, xmmword [esp + 0x48]
movaps xmm1, xmm2
subss xmm1, xmm5
movaps xmm6, xmm3
movss xmm7, dword [esp]
subss xmm6, xmm7
mulss xmm6, xmm1
movaps xmm1, xmm7
subss xmm1, xmm0
divss xmm6, xmm1
addss xmm6, xmm2
movaps xmm1, xmm3
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm5
jb 0x1002cd54
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm6
jae 0x1002c61f
ucomiss xmm5, dword [esp + 4]
jb 0x1002cd66
ucomiss xmm6, dword [esp + 4]
jae 0x1002c640
subss xmm1, xmm0
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm0, dword [esp + 0x10]
subss xmm5, xmm0
subss xmm6, xmm0
addss xmm6, xmm5
mulss xmm6, dword [0x100588c0]
addss xmm6, dword [0x100581a0]
mulss xmm6, xmm1
mov ebx, dword [esp + 0xc]
addss xmm6, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm6
jmp 0x1002c640
movss xmm0, dword [esp]
ucomiss xmm0, xmm1
jne 0x1002cdbb
jnp 0x1002c640
movss xmm6, dword [eax + 0x18]
movss xmm0, dword [esp + 0x24]
ucomiss xmm0, xmm6
ja 0x1002c640
movss xmm0, dword [eax + 0x14]
ucomiss xmm0, dword [esp]
ja 0x1002c640
movaps xmm1, xmm0
movss xmm7, dword [esp + 0x24]
subss xmm1, xmm7
mulss xmm1, dword [esp + 0x19c]
divss xmm1, dword [esp + 0xcc]
movaps xmm5, xmm7
cmpltss xmm5, xmm0
andps xmm1, xmm5
movss xmm3, dword [0x10058570]
andnps xmm5, xmm3
orps xmm5, xmm1
addss xmm5, dword [esp + 0x5c]
maxss xmm0, xmm7
movss xmm1, dword [esp]
ucomiss xmm1, xmm6
movups xmm3, xmmword [esp + 0x48]
jbe 0x1002ce5d
movups xmm2, xmmword [esp + 0x48]
movaps xmm1, xmm2
subss xmm1, xmm5
movaps xmm3, xmm6
movss xmm7, dword [esp]
subss xmm3, xmm7
mulss xmm3, xmm1
movaps xmm1, xmm7
subss xmm1, xmm0
divss xmm3, xmm1
addss xmm3, xmm2
movaps xmm1, xmm6
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm5
jb 0x1002ce77
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm3
jae 0x1002c61f
ucomiss xmm5, dword [esp + 4]
jb 0x1002ce89
ucomiss xmm3, dword [esp + 4]
jae 0x1002c640
subss xmm1, xmm0
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm0, dword [esp + 0x10]
subss xmm5, xmm0
subss xmm3, xmm0
addss xmm3, xmm5
mulss xmm3, dword [0x100588c0]
addss xmm3, dword [0x100581a0]
mulss xmm3, xmm1
mov ebx, dword [esp + 0xc]
addss xmm3, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm3
jmp 0x1002c640
movaps xmm2, xmm5
ucomiss xmm7, xmm0
movss xmm5, dword [esp + 0x7c]
jb 0x1002cee1
ucomiss xmm6, xmm0
jae 0x1002cf30
subss xmm1, xmm2
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm0, dword [esp + 0x10]
subss xmm7, xmm0
subss xmm6, xmm0
addss xmm6, xmm7
mulss xmm6, dword [0x100588c0]
addss xmm6, dword [0x100581a0]
mulss xmm6, xmm1
mov ebx, dword [esp + 0xc]
addss xmm6, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm6
nop word cs:[eax + eax]
movss xmm7, dword [esp + 0x34]
ucomiss xmm5, xmm7
jne 0x1002cf41
jnp 0x1002d070
movaps xmm2, xmm5
movss xmm3, dword [eax + 0x18]
ucomiss xmm5, xmm3
ja 0x1002d070
movss xmm5, dword [eax + 0x14]
ucomiss xmm5, xmm7
ja 0x1002d070
ucomiss xmm5, xmm2
jbe 0x1002cf97
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 4]
subss xmm1, xmm0
movaps xmm6, xmm5
subss xmm6, xmm2
mulss xmm6, xmm1
movss xmm7, dword [esp + 0x34]
movaps xmm1, xmm7
subss xmm1, xmm2
divss xmm6, xmm1
addss xmm6, xmm0
jmp 0x1002cfa6
movss xmm6, dword [esp + 4]
movaps xmm5, xmm2
movss xmm7, dword [esp + 0x34]
ucomiss xmm7, xmm3
movss xmm0, dword [esp + 0x10]
movaps xmm1, xmm7
jbe 0x1002cfe4
movss xmm2, dword [esp + 0x10]
movaps xmm1, xmm2
subss xmm1, xmm6
movaps xmm0, xmm3
movss xmm7, dword [esp + 0x34]
subss xmm0, xmm7
mulss xmm0, xmm1
movaps xmm1, xmm7
subss xmm1, xmm5
divss xmm0, xmm1
addss xmm0, xmm2
movaps xmm1, xmm3
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm6
jb 0x1002d01c
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm0
jb 0x1002d01c
subss xmm1, xmm5
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm1, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm1
movss xmm7, dword [esp + 0x34]
jmp 0x1002d070
ucomiss xmm6, dword [esp + 4]
movss xmm7, dword [esp + 0x34]
jb 0x1002d030
ucomiss xmm0, dword [esp + 4]
jae 0x1002d070
subss xmm1, xmm5
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm2, dword [esp + 0x10]
subss xmm6, xmm2
subss xmm0, xmm2
addss xmm0, xmm6
mulss xmm0, dword [0x100588c0]
addss xmm0, dword [0x100581a0]
mulss xmm0, xmm1
mov ebx, dword [esp + 0xc]
addss xmm0, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm0
ucomiss xmm7, dword [esp]
jne 0x1002d07c
jnp 0x1002c640
movss xmm3, dword [eax + 0x18]
ucomiss xmm7, xmm3
ja 0x1002c640
movss xmm4, dword [eax + 0x14]
ucomiss xmm4, dword [esp]
ja 0x1002c640
ucomiss xmm4, xmm7
jbe 0x1002d0c9
movups xmm1, xmmword [esp + 0x48]
movss xmm0, dword [esp + 0x10]
subss xmm1, xmm0
movaps xmm6, xmm4
subss xmm6, xmm7
mulss xmm6, xmm1
movss xmm5, dword [esp]
movaps xmm1, xmm5
subss xmm1, xmm7
jmp 0x1002d17f
movss xmm6, dword [esp + 0x10]
movaps xmm4, xmm7
jmp 0x1002d192
ucomiss xmm6, dword [esp + 4]
movss xmm2, dword [esp + 0x34]
jb 0x1002d0eb
ucomiss xmm3, dword [esp + 4]
jae 0x1002d12b
subss xmm1, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm1, dword [ebx]
movss xmm0, dword [esp + 0x10]
subss xmm6, xmm0
subss xmm3, xmm0
addss xmm3, xmm6
mulss xmm3, dword [0x100588c0]
addss xmm3, dword [0x100581a0]
mulss xmm3, xmm1
mov ebx, dword [esp + 0xc]
addss xmm3, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm3
ucomiss xmm2, dword [esp]
jne 0x1002d137
jnp 0x1002c640
movss xmm3, dword [eax + 0x18]
ucomiss xmm2, xmm3
ja 0x1002c640
movss xmm4, dword [eax + 0x14]
ucomiss xmm4, dword [esp]
ja 0x1002c640
ucomiss xmm4, xmm2
jbe 0x1002d189
movups xmm1, xmmword [esp + 0x48]
movss xmm0, dword [esp + 0x10]
subss xmm1, xmm0
movaps xmm6, xmm4
subss xmm6, xmm2
mulss xmm6, xmm1
movss xmm5, dword [esp]
movaps xmm1, xmm5
subss xmm1, xmm2
divss xmm6, xmm1
addss xmm6, xmm0
jmp 0x1002d197
movss xmm6, dword [esp + 0x10]
movaps xmm4, xmm2
movss xmm5, dword [esp]
ucomiss xmm5, xmm3
movups xmm0, xmmword [esp + 0x48]
jbe 0x1002d1cf
movups xmm2, xmmword [esp + 0x48]
movaps xmm1, xmm2
subss xmm1, xmm6
movaps xmm0, xmm3
movss xmm7, dword [esp]
subss xmm0, xmm7
mulss xmm0, xmm1
movaps xmm1, xmm7
subss xmm1, xmm4
divss xmm0, xmm1
addss xmm0, xmm2
movaps xmm5, xmm3
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm6
movss xmm3, dword [esp + 4]
jb 0x1002d20a
movss xmm2, dword [esp + 0x10]
ucomiss xmm2, xmm0
jb 0x1002d20a
subss xmm5, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm5, dword [ebx]
mov ebx, dword [esp + 0xc]
addss xmm5, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm5
jmp 0x1002c640
ucomiss xmm6, xmm3
jb 0x1002d21a
ucomiss xmm0, dword [esp + 4]
jae 0x1002c640
subss xmm5, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm5, dword [ebx]
movss xmm2, dword [esp + 0x10]
subss xmm6, xmm2
subss xmm0, xmm2
addss xmm0, xmm6
mulss xmm0, dword [0x100588c0]
addss xmm0, dword [0x100581a0]
mulss xmm0, xmm5
mov ebx, dword [esp + 0xc]
addss xmm0, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm0
jmp 0x1002c640
ucomiss xmm0, dword [esp + 4]
movss xmm7, dword [esp + 0x7c]
jb 0x1002d277
ucomiss xmm3, dword [esp + 4]
jae 0x1002cc90
subss xmm6, xmm4
mov ebx, dword [esp + 0x20]
mulss xmm6, dword [ebx]
movss xmm1, dword [esp + 0x10]
subss xmm0, xmm1
subss xmm3, xmm1
addss xmm3, xmm0
mulss xmm3, dword [0x100588c0]
addss xmm3, dword [0x100581a0]
mulss xmm3, xmm6
mov ebx, dword [esp + 0xc]
addss xmm3, dword [ebx + edx*4]
movss dword [ebx + edx*4], xmm3
jmp 0x1002cc90
mov ecx, ebp
mov ebp, ebx
movaps xmm2, xmm5
movaps xmm5, xmm6
movups xmm1, xmmword [esp + 0x5c]
movaps xmm6, xmm3
movaps xmm3, xmm7
lea ebx, [ebp + 1]
xorps xmm7, xmm7
cvtsi2ss xmm7, ebx
subss xmm7, xmm1
movups xmmword [esp + 0x10], xmm3
mulss xmm7, xmm3
xorps xmm1, xmm1
cvtsi2ss xmm1, ebp
addss xmm7, xmm6
movss xmm3, dword [eax + 0x10]
subss xmm5, xmm1
movaps xmm6, xmm7
subss xmm6, xmm0
movss dword [esp + 0x34], xmm3
mulss xmm6, xmm3
movss xmm1, dword [0x100581a0]
addss xmm5, xmm1
mulss xmm5, dword [0x100588c0]
addss xmm5, xmm1
mulss xmm5, xmm6
mov edx, dword [esp + 0xc]
addss xmm5, dword [edx + ebp*4]
movss dword [edx + ebp*4], xmm5
mov edi, ecx
sub edi, ebx
jle 0x1002d3d5
mov dword [esp + 0x7c], edi
movups xmm5, xmmword [esp + 0x10]
movss xmm1, dword [esp + 0x34]
mulss xmm5, xmm1
movaps xmm3, xmm5
mulss xmm3, dword [0x10058020]
mov edx, ebp
not edx
add edx, ecx
lea edi, [ecx - 2]
mov dword [esp + 0x48], edi
test dl, 1
je 0x1002d38f
movaps xmm1, xmm3
addss xmm1, xmm6
mov edx, dword [esp + 0xc]
addss xmm1, dword [edx + ebp*4 + 4]
movss dword [edx + ebp*4 + 4], xmm1
addss xmm6, xmm5
lea ebx, [ebp + 2]
cmp dword [esp + 0x48], ebp
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x7c]
je 0x1002d3d9
nop dword [eax]
movaps xmm1, xmm3
addss xmm1, xmm6
addss xmm1, dword [edx + ebx*4]
movss dword [edx + ebx*4], xmm1
addss xmm6, xmm5
movaps xmm1, xmm3
addss xmm1, xmm6
addss xmm1, dword [edx + ebx*4 + 4]
movss dword [edx + ebx*4 + 4], xmm1
addss xmm6, xmm5
add ebx, 2
cmp ecx, ebx
jne 0x1002d3a0
jmp 0x1002d3d9
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
cvtsi2ss xmm1, edi
movups xmm3, xmmword [esp + 0x10]
mulss xmm3, xmm1
addss xmm3, xmm7
xorps xmm1, xmm1
cvtsi2ss xmm1, ecx
subss xmm2, xmm1
movaps xmm1, xmm4
subss xmm1, xmm3
addss xmm2, dword [0x100581f0]
mulss xmm2, dword [0x100588c0]
addss xmm2, dword [0x100581a0]
movss xmm3, dword [esp + 0x34]
mulss xmm2, xmm3
mulss xmm1, xmm2
addss xmm1, xmm6
addss xmm1, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm1
subss xmm4, xmm0
mulss xmm4, xmm3
mov edx, dword [esp + 0x9c]
addss xmm4, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm4
jmp 0x1002c2f7
movaps xmm0, xmm6
ucomiss xmm5, xmm2
jb 0x1002d56c
ucomiss xmm5, dword [esp + 0x5c]
jb 0x1002d56c
subss xmm0, xmm3
mulss xmm0, dword [eax + 0x10]
mov ecx, dword [esp + 0x9c]
addss xmm0, dword [ecx - 4]
movss dword [ecx - 4], xmm0
jmp 0x1002c310
lea edx, [ecx + 1]
xorps xmm4, xmm4
cvtsi2ss xmm4, edx
ucomiss xmm0, xmm4
jb 0x1002d49b
ucomiss xmm2, xmm4
jae 0x1002d4d2
subss xmm5, xmm3
mulss xmm5, dword [eax + 0x10]
subss xmm0, xmm1
subss xmm2, xmm1
addss xmm2, xmm0
mulss xmm2, dword [0x100588c0]
addss xmm2, dword [0x100581a0]
mulss xmm2, xmm5
mov edx, dword [esp + 0xc]
addss xmm2, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm2
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [esp + 0x24]
ucomiss xmm1, xmm0
ja 0x1002c310
movss xmm1, dword [eax + 0x14]
ucomiss xmm1, dword [esp]
ja 0x1002c310
movss xmm3, dword [esp + 0x24]
ucomiss xmm1, xmm3
movups xmm2, xmmword [esp + 0x5c]
jbe 0x1002d52e
movups xmm4, xmmword [esp + 0x5c]
movaps xmm3, xmm4
subss xmm3, xmm4
movaps xmm2, xmm1
subss xmm2, dword [esp + 0x24]
mulss xmm2, xmm3
divss xmm2, dword [esp + 0xcc]
addss xmm2, xmm4
movaps xmm3, xmm1
lea edx, [ecx + 1]
movss xmm5, dword [esp]
ucomiss xmm5, xmm0
jbe 0x1002d5c0
movups xmm6, xmmword [esp + 0x5c]
movaps xmm1, xmm6
subss xmm1, xmm2
movaps xmm4, xmm0
subss xmm4, xmm5
mulss xmm4, xmm1
movaps xmm1, xmm5
subss xmm1, xmm3
divss xmm4, xmm1
addss xmm6, xmm4
movups xmmword [esp + 0x5c], xmm6
jmp 0x1002d5c3
ucomiss xmm2, dword [0x100581a0]
jb 0x1002d587
movups xmm1, xmmword [esp + 0x5c]
ucomiss xmm1, dword [0x100581a0]
jae 0x1002c310
subss xmm0, xmm3
mulss xmm0, dword [eax + 0x10]
addss xmm2, dword [esp + 0x5c]
mulss xmm2, dword [0x100588c0]
addss xmm2, dword [0x100581a0]
mulss xmm2, xmm0
mov ecx, dword [esp + 0x9c]
addss xmm2, dword [ecx - 4]
movss dword [ecx - 4], xmm2
jmp 0x1002c310
movaps xmm0, xmm5
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
ucomiss xmm1, xmm2
jb 0x1002d5f5
ucomiss xmm1, dword [esp + 0x5c]
jb 0x1002d5f5
subss xmm0, xmm3
mulss xmm0, dword [eax + 0x10]
mov edx, dword [esp + 0x9c]
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
jmp 0x1002c310
lea edx, [ecx + 2]
xorps xmm4, xmm4
cvtsi2ss xmm4, edx
ucomiss xmm2, xmm4
jb 0x1002d612
movups xmm5, xmmword [esp + 0x5c]
ucomiss xmm5, xmm4
jae 0x1002c310
subss xmm0, xmm3
mulss xmm0, dword [eax + 0x10]
subss xmm2, xmm1
movups xmm3, xmmword [esp + 0x5c]
subss xmm3, xmm1
addss xmm3, xmm2
mulss xmm3, dword [0x100588c0]
addss xmm3, dword [0x100581a0]
mulss xmm3, xmm0
mov edx, dword [esp + 0x9c]
addss xmm3, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm3
jmp 0x1002c310
mov dword [esp + 0x10], esi
cmp dword [esp + 0x70], 0x7ffffffe
movaps xmm2, xmmword [0x10058560]
movss xmm3, dword [0x10058514]
movss xmm4, dword [0x10058020]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xc]
ja 0x1002d6cf
xor eax, eax
xorps xmm0, xmm0
nop word cs:[eax + eax]
addss xmm0, dword [ebp + eax*4]
movss xmm1, dword [esi + eax*4]
addss xmm1, xmm0
andps xmm1, xmm2
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si ecx, xmm1
cmp ecx, 0xff
cmovge ecx, edx
mov byte [edi + eax], cl
inc eax
cmp ebx, eax
jne 0x1002d6a0
mov edi, dword [esp + 0x110]
test edi, edi
mov ebp, dword [esp + 0x148]
mov esi, dword [esp + 0x10]
je 0x1002bfb0
mov ecx, edi
lea eax, [esp + 0x1ac]
nop word cs:[eax + eax]
movss xmm0, dword [ecx + 8]
addss xmm0, dword [ecx + 4]
movss dword [ecx + 4], xmm0
mov eax, dword [eax]
mov ecx, dword [eax]
test ecx, ecx
jne 0x1002d700
jmp 0x1002bfb0
test ecx, ecx
je 0x1002d731
mov esi, dword [ecx]
push ecx
call fcn.1000ab70
add esp, 4
mov ecx, esi
test esi, esi
jne 0x1002d720
lea eax, [esp + 0x1d4]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov esi, dword [esp + 0x90]
je 0x1002d750
push ecx
call fcn.1000ab70
add esp, 4
push dword [esp + 0x8c]
call fcn.1000ab70
add esp, 4
mov edi, dword [esp + 0x74]
push edi
call fcn.1000ab70
add esp, 4
push dword [esp + 0x94]
call fcn.1000ab70
add esp, 4
nop dword [eax + eax]
mov ecx, dword [esp + 0x120]
lea eax, [ecx + ecx*8]
lea eax, [eax + eax*2]
add eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x124]
add eax, ecx
add eax, 8
mov dword [esp + 0x70], eax
push dword [esp + 0x1c8]
call fcn.1000ab70
add esp, 4
mov ebx, dword [esp + 0x78]
cmp bl, 2
jb 0x1002dbf7
mov ecx, dword [esp + 0x70]
movzx edx, word [ecx - 2]
movzx esi, word [ecx - 4]
movzx eax, word [ecx]
movzx edi, word [ecx + 2]
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x24], edx
test edx, edx
je 0x1002dbf0
mov edx, esi
add eax, dword [esp + 0xd0]
imul edi, dword [esp + 0x58]
add edi, eax
mov eax, dword [esp + 0x138]
add eax, esi
mov dword [esp + 0x34], eax
and eax, 0xfffffffe
mov dword [esp + 0x7c], eax
mov eax, esi
neg eax
mov dword [esp + 0x5c], eax
xor ebp, ebp
mov dword [esp + 0x10], esi
jmp 0x1002d845
add edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x48]
inc ebp
cmp ebp, dword [esp + 0x24]
mov ebx, esi
je 0x1002dbf0
push ebx
push 0
lea eax, [esp + 0x1dc]
push eax
call fcn.1003c390
add esp, 0xc
lea eax, [ebx - 2]
cmp eax, 3
mov dword [esp + 0x48], ebp
ja case.default.0x1002d86c
mov edx, dword [esp + 0x10]
jmp dword [eax*4 + 0x1005acf0]
xor ebp, ebp
mov ecx, 0
cmp edx, ebx
jb 0x1002db4a
xor ecx, ecx
mov esi, 0
cmp edx, dword [esp + 0x78]
je 0x1002d901
xor ecx, ecx
xor edx, edx
nop word cs:[eax + eax]
movzx ebx, byte [edi + edx]
mov eax, edx
and eax, 6
movzx ebp, byte [esp + eax + 0x1d4]
lea esi, [edx + 2]
mov eax, esi
and eax, 6
mov byte [esp + eax + 0x1d4], bl
sub ebx, ebp
add ebx, ecx
mov eax, ebx
shr eax, 1
mov byte [edi + edx], al
lea eax, [edx + 1]
movzx ecx, byte [edi + edx + 1]
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
lea ebp, [edx + 3]
and ebp, 7
mov byte [esp + ebp + 0x1d4], cl
sub ecx, eax
add ecx, ebx
mov eax, ecx
shr eax, 1
mov byte [edi + edx + 1], al
mov eax, dword [esp + 0x7c]
mov edx, esi
cmp eax, esi
jne 0x1002d8a0
mov eax, dword [esp + 0x34]
mov ebp, eax
test al, 1
mov edx, dword [esp + 0x10]
je 0x1002db4a
movzx edx, byte [edi + esi]
mov eax, esi
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
lea ebx, [esi + 2]
and ebx, 7
mov byte [esp + ebx + 0x1d4], dl
sub edx, eax
add ecx, edx
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
mov byte [edi + esi], al
mov ebp, dword [esp + 0x34]
jmp 0x1002db4a
xor ebp, ebp
mov ecx, 0
mov edx, dword [esp + 0x10]
cmp edx, ebx
jb 0x1002db4a
xor ecx, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x78]
nop dword [eax + eax]
movzx eax, byte [edi + ebx]
mov edx, ebx
and edx, 7
movzx edx, byte [esp + edx + 0x1d4]
lea esi, [ebx + ebp]
and esi, 7
mov byte [esp + esi + 0x1d4], al
sub eax, edx
add ecx, eax
mov eax, ecx
xor edx, edx
div ebp
mov byte [edi + ebx], al
inc ebx
cmp dword [esp + 0x34], ebx
jne 0x1002d970
mov ebp, dword [esp + 0x34]
jmp 0x1002db46
xor ebp, ebp
mov ecx, 0
cmp edx, ebx
jb 0x1002db4a
xor ecx, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x34]
nop word [eax + eax]
movzx eax, byte [edi + ebx]
mov edx, ebx
and edx, 7
movzx edx, byte [esp + edx + 0x1d4]
lea esi, [ebx + 3]
and esi, 7
mov byte [esp + esi + 0x1d4], al
sub eax, edx
add ecx, eax
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
mov byte [edi + ebx], dl
inc ebx
cmp ebp, ebx
jne 0x1002d9d0
jmp 0x1002db46
xor ebp, ebp
mov ecx, 0
cmp edx, ebx
jb 0x1002db4a
xor ecx, ecx
mov eax, 0
cmp edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
je 0x1002da9e
xor ecx, ecx
xor eax, eax
nop word cs:[eax + eax]
movzx edx, byte [edi + eax]
mov esi, eax
and esi, 6
movzx esi, byte [esp + esi + 0x1d4]
lea ebx, [eax + 4]
and ebx, 6
mov byte [esp + ebx + 0x1d4], dl
sub edx, esi
add edx, ecx
mov ecx, edx
shr ecx, 2
mov byte [edi + eax], cl
lea esi, [eax + 1]
movzx ecx, byte [edi + eax + 1]
and esi, 7
movzx esi, byte [esp + esi + 0x1d4]
lea ebx, [eax + 5]
and ebx, 7
mov byte [esp + ebx + 0x1d4], cl
sub ecx, esi
add ecx, edx
mov edx, ecx
shr edx, 2
mov byte [edi + eax + 1], dl
add eax, 2
cmp ebp, eax
jne 0x1002da40
mov edx, dword [esp + 0x34]
mov ebp, edx
test dl, 1
mov edx, dword [esp + 0x10]
je 0x1002db4a
movzx edx, byte [edi + eax]
mov esi, eax
and esi, 7
movzx esi, byte [esp + esi + 0x1d4]
lea ebx, [eax + 4]
and ebx, 7
mov byte [esp + ebx + 0x1d4], dl
sub edx, esi
add ecx, edx
mov edx, ecx
shr edx, 2
mov byte [edi + eax], dl
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
jmp 0x1002db4a
xor ebp, ebp
mov ecx, 0
cmp edx, ebx
jb 0x1002db4a
xor ecx, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x34]
nop word cs:[eax + eax]
movzx eax, byte [edi + ebx]
mov edx, ebx
and edx, 7
movzx edx, byte [esp + edx + 0x1d4]
lea esi, [ebx + 5]
and esi, 7
mov byte [esp + esi + 0x1d4], al
sub eax, edx
add ecx, eax
mov eax, ecx
mov edx, 0xcccccccd
mul edx
shr edx, 2
mov byte [edi + ebx], dl
inc ebx
cmp ebp, ebx
jne 0x1002db10
mov edx, dword [esp + 0x10]
cmp ebp, edx
mov esi, dword [esp + 0x78]
jge 0x1002d830
mov eax, edx
sub eax, ebp
test al, 1
jne 0x1002db70
mov ebx, ebp
jmp 0x1002db8d
mov eax, ebp
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div dword [esp + 0x78]
mov byte [edi + ebp], al
lea ebx, [ebp + 1]
not ebp
cmp ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
je 0x1002d830
nop dword [eax]
mov eax, ebx
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div esi
mov byte [edi + ebx], al
lea eax, [ebx + 1]
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div esi
mov edx, dword [esp + 0x10]
mov byte [edi + ebx + 1], al
add ebx, 2
cmp edx, ebx
jne 0x1002dba0
jmp 0x1002d830
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x11c]
mov eax, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x94], eax
movzx edx, word [esp + 0x9a]
rol dx, 8
mov ebx, dword [esp + 8]
cmp bl, 2
pxor xmm1, xmm1
jb 0x1002b51f
mov word [esp + 0x9a], dx
mov ecx, dword [esp + 0x70]
movzx edx, word [ecx - 2]
movzx edi, word [ecx - 4]
movzx eax, word [ecx]
movzx ecx, word [ecx + 2]
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1d4], 0
mov dword [esp], edi
test edi, edi
je 0x1002b510
add eax, dword [esp + 0xd0]
imul ecx, dword [esp + 0x58]
add ecx, eax
mov dword [esp + 0x24], ecx
add esi, edx
mov eax, edx
neg eax
mov dword [esp + 4], eax
xor edi, edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], edx
jmp 0x1002dca4
inc dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
inc edi
cmp edi, dword [esp]
mov ebx, ebp
je 0x1002b510
push ebx
push 0
lea eax, [esp + 0x1dc]
push eax
call fcn.1003c390
add esp, 0xc
lea eax, [ebx - 2]
cmp eax, 3
mov dword [esp + 0x5c], edi
ja case.default.0x1002dcc7
mov edx, dword [esp + 0x34]
jmp dword [eax*4 + 0x1005ad00]
xor edi, edi
mov ecx, 0
cmp edx, ebx
pxor xmm1, xmm1
jb 0x1002dec2
xor ecx, ecx
mov eax, dword [esp + 0x24]
xor edx, edx
mov ebp, dword [esp + 0x58]
nop dword [eax]
movzx ebx, byte [eax]
mov esi, edx
and esi, 7
movzx esi, byte [esp + esi + 0x1d4]
lea edi, [edx + 2]
and edi, 7
mov byte [esp + edi + 0x1d4], bl
sub ebx, esi
mov edi, dword [esp + 0x10]
add ecx, ebx
mov ebx, ecx
shr ebx, 1
mov byte [eax], bl
inc edx
add eax, ebp
cmp edi, edx
jne 0x1002dcf0
jmp 0x1002debe
xor edi, edi
mov ecx, 0
mov edx, dword [esp + 0x34]
cmp edx, ebx
pxor xmm1, xmm1
jb 0x1002dec2
xor ecx, ecx
mov esi, dword [esp + 0x24]
xor edi, edi
mov ebp, dword [esp + 0x58]
nop word cs:[eax + eax]
movzx eax, byte [esi]
mov edx, edi
and edx, 7
movzx edx, byte [esp + edx + 0x1d4]
mov ebx, dword [esp + 8]
add ebx, edi
and ebx, 7
mov byte [esp + ebx + 0x1d4], al
sub eax, edx
add ecx, eax
mov eax, ecx
xor edx, edx
div dword [esp + 8]
mov byte [esi], al
inc edi
add esi, ebp
cmp dword [esp + 0x10], edi
jne 0x1002dd60
jmp 0x1002deba
xor edi, edi
mov ecx, 0
cmp edx, ebx
pxor xmm1, xmm1
jb 0x1002dec2
xor ecx, ecx
mov esi, dword [esp + 0x24]
xor edi, edi
mov ebp, dword [esp + 0x58]
nop
movzx ebx, byte [esi]
mov eax, edi
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
mov edx, ebx
sub edx, eax
add ecx, edx
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
lea eax, [edi + 3]
and eax, 7
mov byte [esp + eax + 0x1d4], bl
shr edx, 1
mov byte [esi], dl
inc edi
add esi, ebp
cmp dword [esp + 0x10], edi
jne 0x1002ddc0
jmp 0x1002deba
xor edi, edi
mov ecx, 0
cmp edx, ebx
pxor xmm1, xmm1
jb 0x1002dec2
xor ecx, ecx
mov eax, dword [esp + 0x24]
xor edx, edx
mov ebp, dword [esp + 0x58]
nop
movzx ebx, byte [eax]
mov esi, edx
and esi, 7
movzx esi, byte [esp + esi + 0x1d4]
lea edi, [edx + 4]
and edi, 7
mov byte [esp + edi + 0x1d4], bl
sub ebx, esi
mov edi, dword [esp + 0x10]
add ecx, ebx
mov ebx, ecx
shr ebx, 2
mov byte [eax], bl
inc edx
add eax, ebp
cmp edi, edx
jne 0x1002de20
jmp 0x1002debe
xor edi, edi
mov ecx, 0
cmp edx, ebx
pxor xmm1, xmm1
jb 0x1002dec2
xor ecx, ecx
mov esi, dword [esp + 0x24]
xor edi, edi
mov ebp, dword [esp + 0x58]
nop dword [eax + eax]
movzx ebx, byte [esi]
mov eax, edi
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
mov edx, ebx
sub edx, eax
add ecx, edx
mov eax, ecx
mov edx, 0xcccccccd
mul edx
lea eax, [edi + 5]
and eax, 7
mov byte [esp + eax + 0x1d4], bl
shr edx, 2
mov byte [esi], dl
inc edi
add esi, ebp
cmp dword [esp + 0x10], edi
jne 0x1002de80
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
cmp edi, edx
mov ebp, dword [esp + 8]
jge 0x1002dc90
mov eax, edx
sub eax, edi
test al, 1
jne 0x1002dee0
mov esi, edi
jmp 0x1002df08
mov eax, edi
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div dword [esp + 8]
mov edx, edi
imul edx, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov byte [esi + edx], al
lea esi, [edi + 1]
not edi
cmp edi, dword [esp + 4]
mov ebp, dword [esp + 8]
je 0x1002dc90
lea edx, [esi + 1]
mov edi, dword [esp + 0x58]
imul edx, edi
mov dword [esp + 0x48], edx
imul edi, esi
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x24]
nop word cs:[eax + eax]
mov eax, esi
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div ebp
mov edx, dword [esp + 0x7c]
mov byte [ebx + edx], al
lea eax, [esi + 1]
and eax, 7
movzx eax, byte [esp + eax + 0x1d4]
sub ecx, eax
mov eax, ecx
xor edx, edx
div ebp
mov edi, dword [esp + 0x34]
mov edx, ebp
mov ebp, dword [esp + 0x48]
mov byte [ebx + ebp], al
mov ebp, edx
mov edx, edi
mov eax, dword [esp + 0xb8]
add esi, 2
add ebx, eax
cmp edi, esi
jne 0x1002df40
jmp 0x1002dc90
mov ecx, dword [esp + 0xe0]
add eax, ecx
add eax, 0x78
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xf8]
imul eax, ecx, 0x6c
mov edx, dword [esp + 0x128]
movss xmm2, dword [edx + eax + 0x3c]
movups xmmword [esp + 0x24], xmm2
ucomiss xmm2, dword [0x100581a0]
jne 0x1002dfdb
jnp 0x1002b267
movups xmm1, xmmword [esp + 0x24]
shufps xmm1, xmm1, 0
movups xmmword [esp + 0x24], xmm1
xor ecx, ecx
movaps xmm7, xmmword [0x10058490]
movaps xmm0, xmmword [0x1005abe0]
movaps xmm1, xmmword [str._b_t_n_v]
movups xmmword [esp + 0x10], xmm1
movaps xmm4, xmmword [0x1005abc0]
movups xmmword [esp + 0x34], xmm4
movaps xmm6, xmmword [0x1005ac20]
nop dword [eax + eax]
movups xmmword [esp + 0x48], xmm0
movups xmmword [esp + 0x7c], xmm7
movups xmm3, xmmword [esp + 0x48]
movaps xmm4, xmmword [0x1005abf0]
andps xmm3, xmm4
movaps xmm1, xmmword [0x1005ac00]
orps xmm3, xmm1
movdqu xmm5, xmmword [esp + 0x48]
psrld xmm5, 0x10
movdqa xmm2, xmmword [0x1005ac10]
por xmm5, xmm2
subps xmm5, xmm6
addps xmm5, xmm3
movaps xmm3, xmm7
andps xmm3, xmm4
orps xmm3, xmm1
movaps xmm6, xmm7
psrld xmm6, 0x10
por xmm6, xmm2
subps xmm6, xmmword [0x1005ac20]
addps xmm6, xmm3
movups xmm7, xmmword [esp + 0x34]
movaps xmm3, xmm7
andps xmm3, xmm4
orps xmm3, xmm1
psrld xmm7, 0x10
por xmm7, xmm2
subps xmm7, xmmword [0x1005ac20]
addps xmm7, xmm3
movups xmm3, xmmword [esp + 0x10]
movaps xmm0, xmm3
movups xmmword [esp + 0x10], xmm3
andps xmm0, xmm4
orps xmm0, xmm1
psrld xmm3, 0x10
por xmm3, xmm2
subps xmm3, xmmword [0x1005ac20]
addps xmm3, xmm0
movups xmm0, xmmword [esp + 0x24]
mulps xmm3, xmm0
mulps xmm7, xmm0
mulps xmm6, xmm0
mulps xmm5, xmm0
cvttps2dq xmm2, xmm5
movdqa xmm0, xmm2
psrad xmm0, 0x1f
movaps xmm1, xmmword [0x1005ac30]
subps xmm5, xmm1
cvttps2dq xmm5, xmm5
pand xmm5, xmm0
por xmm5, xmm2
cvttps2dq xmm0, xmm6
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm6, xmm1
cvttps2dq xmm6, xmm6
pand xmm6, xmm2
por xmm6, xmm0
cvttps2dq xmm0, xmm7
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm7, xmm1
cvttps2dq xmm7, xmm7
pand xmm7, xmm2
por xmm7, xmm0
cvttps2dq xmm0, xmm3
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm3, xmm1
cvttps2dq xmm1, xmm3
pand xmm1, xmm2
movdqa xmm2, xmmword [0x1005ac40]
por xmm1, xmm0
movdqa xmm0, xmm1
movdqa xmm4, xmmword [0x10058730]
pxor xmm0, xmm4
movdqa xmm3, xmm2
pcmpgtd xmm3, xmm0
pand xmm1, xmm3
pandn xmm3, xmmword [0x1005ac50]
por xmm3, xmm1
movdqa xmm0, xmm7
pxor xmm0, xmm4
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm0
pand xmm7, xmm1
pandn xmm1, xmmword [0x1005ac50]
por xmm1, xmm7
packuswb xmm3, xmm1
movdqa xmm0, xmm6
pxor xmm0, xmm4
movdqa xmm7, xmm2
pcmpgtd xmm7, xmm0
pand xmm6, xmm7
pandn xmm7, xmmword [0x1005ac50]
por xmm7, xmm6
movaps xmm6, xmmword [0x1005ac20]
movdqa xmm0, xmm5
pxor xmm0, xmm4
movdqa xmm1, xmm2
movdqa xmm2, xmmword [0x1005ac60]
pcmpgtd xmm1, xmm0
pand xmm5, xmm1
pandn xmm1, xmmword [0x1005ac50]
por xmm1, xmm5
packuswb xmm7, xmm1
packuswb xmm7, xmm3
movdqu xmm0, xmmword [esp + 0x48]
movdqu xmmword [esp + ecx + 0x1d4], xmm7
movdqu xmm7, xmmword [esp + 0x7c]
add ecx, 0x10
paddd xmm7, xmm2
paddd xmm0, xmm2
movdqu xmm1, xmmword [esp + 0x10]
paddd xmm1, xmm2
movdqu xmmword [esp + 0x10], xmm1
movdqu xmm1, xmmword [esp + 0x34]
paddd xmm1, xmm2
movdqu xmmword [esp + 0x34], xmm1
cmp ecx, 0x100
jne 0x1002e020
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xe0]
mov eax, dword [eax + ecx + 0x7c]
test eax, eax
pxor xmm1, xmm1
movaps xmm0, xmmword [0x10058730]
je 0x1002b260
mov edx, ecx
mov ecx, dword [esp + 0x6c]
add ecx, edx
add ecx, 0x7c
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
mov edi, ecx
jmp 0x1002e2a2
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov edi, dword [esp + 0x34]
add edi, 0x10
mov edx, eax
shl edx, 4
add edx, ecx
cmp edi, edx
je 0x1002b260
cmp dword [edi + 0xc], 0
je 0x1002e290
movzx esi, word [edi + 6]
test esi, esi
je 0x1002e290
movzx eax, word [edi + 4]
movzx ecx, word [edi + 8]
mov dword [esp + 0x34], edi
movzx ebx, word [edi + 0xa]
add ecx, dword [esp + 0xd0]
imul ebx, dword [esp + 0x58]
add ebx, ecx
mov ebp, eax
and ebp, 3
mov dword [esp + 0x10], eax
mov edi, eax
and edi, 0xfffffffc
jmp 0x1002e2ee
lea eax, [esi - 1]
add ebx, dword [esp + 0x58]
cmp esi, 1
mov esi, eax
jle 0x1002e280
cmp dword [esp + 0x10], 0
je 0x1002e2e0
xor ecx, ecx
cmp word [esp + 0x10], 4
jb 0x1002e359
xor ecx, ecx
nop word cs:[eax + eax]
movzx eax, byte [ebx + ecx]
movzx eax, byte [esp + eax + 0x1d4]
mov byte [ebx + ecx], al
movzx eax, byte [ebx + ecx + 1]
movzx eax, byte [esp + eax + 0x1d4]
mov byte [ebx + ecx + 1], al
movzx eax, byte [ebx + ecx + 2]
movzx eax, byte [esp + eax + 0x1d4]
mov byte [ebx + ecx + 2], al
movzx eax, byte [ebx + ecx + 3]
movzx eax, byte [esp + eax + 0x1d4]
mov byte [ebx + ecx + 3], al
add ecx, 4
cmp edi, ecx
jne 0x1002e310
test ebp, ebp
je 0x1002e2e0
add ecx, ebx
xor edx, edx
nop word cs:[eax + eax]
movzx eax, byte [ecx + edx]
movzx eax, byte [esp + eax + 0x1d4]
mov byte [ecx + edx], al
inc edx
cmp ebp, edx
jne 0x1002e370
jmp 0x1002e2e0
push dword [esp + 0xdc]
call fcn.1000ab70
add esp, 4
push dword [esp + 0xa8]
call fcn.1000ab70
add esp, 4
push dword [esp + 0xc8]
call fcn.1000ab70
mov eax, dword [esp + 0x3f4]
add esp, 4
cmp dword [eax + 0x48], 0
jle 0x1002e724
xor ecx, ecx
jmp 0x1002e3e5
mov ecx, dword [esp + 4]
inc ecx
mov eax, dword [esp + 0x3f0]
cmp ecx, dword [eax + 0x48]
jge 0x1002e724
mov edi, dword [eax + 0x50]
imul ebx, ecx, 0x6c
mov eax, ecx
shl eax, 7
mov dword [esp + 4], ecx
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], ecx
lea esi, [eax + ecx]
mov ebp, dword [edi + ebx + 0x68]
cmp byte [edi + ebx + 0x34], 0
je 0x1002e414
mov ecx, ebp
call fcn.1002f0c0
mov dword [esp + 0x34], ebp
movss xmm0, dword [edi + ebx + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x1c]
movzx eax, byte [ecx + edx + 4]
shl eax, 8
movzx esi, byte [ecx + edx + 5]
cwde
or eax, esi
movzx esi, byte [ecx + edx + 6]
shl esi, 8
movzx edx, byte [ecx + edx + 7]
movsx ecx, si
or ecx, edx
movss xmm1, dword [0x10058550]
test ax, ax
jle 0x1002e45b
movss xmm1, dword [0x100581a0]
mov esi, eax
sub esi, ecx
lea edx, [edi + ebx]
movss xmm2, dword [0x10058550]
test cx, cx
jle 0x1002e477
movss xmm2, dword [0x100581a0]
xorps xmm3, xmm3
cvtsi2ss xmm3, esi
cvtsi2ss xmm4, eax
divss xmm0, xmm3
mulss xmm4, xmm0
addss xmm4, xmm1
cvttps2dq xmm1, xmm4
cvtdq2ps xmm1, xmm1
xorps xmm3, xmm3
cvtsi2ss xmm3, ecx
mulss xmm3, xmm0
addss xmm3, xmm2
cvttps2dq xmm0, xmm3
cvtdq2ps xmm0, xmm0
sub esp, 0x14
mov dword [esp + 8], edx
mov esi, dword [esp + 0x48]
mov dword [esp + 4], esi
mov eax, dword [esp + 0x404]
mov dword [esp], eax
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm1
call fcn.1002f490
mov edx, esi
add esp, 0x14
movss xmm0, dword [esi + 0x48]
addss xmm0, dword [0x10058020]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + esi + 0x84]
test eax, eax
jle 0x1002e3d0
lea ecx, [edi + ebx]
add ecx, 0x34
mov dword [esp + 0x24], ecx
movss xmm1, dword [edi + ebx + 0x28]
movss dword [esp + 8], xmm1
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edi + ebx + 0x2c]
movups xmmword [esp + 0xb8], xmm0
mov ecx, dword [esp + 0x6c]
lea edi, [ecx + esi]
add edi, 0x84
xor ebx, ebx
mov dword [esp], edi
jmp 0x1002e552
mov edi, dword [esp]
mov eax, dword [edi]
mov ebx, dword [esp + 0x5c]
inc ebx
cmp ebx, eax
jge 0x1002e3d0
mov ecx, dword [edi - 4]
lea esi, [ebx + ebx*2]
mov ebp, dword [ecx + esi*8 + 0xc]
mov dword [esp + 0x48], ebp
test ebp, ebp
jle 0x1002e549
mov dword [esp + 0x5c], ebx
lea eax, [ecx + esi*8]
add eax, 0xc
mov dword [esp + 0x10], eax
xor edi, edi
xor ebx, ebx
jmp 0x1002e6b3
movss xmm0, dword [eax + edi + 8]
xorps xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x48], xmm0
movss xmm3, dword [eax + edi + 0xc]
addss xmm3, xmm1
mov edx, dword [esp + 0x3f0]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [edx + 0x1c]
movss xmm2, dword [eax + edi + 0x14]
addss xmm2, xmm1
movss xmm7, dword [0x100581a0]
movaps xmm5, xmm7
divss xmm5, xmm0
xorps xmm6, xmm6
cvtsi2ss xmm6, dword [edx + 0x18]
movzx edx, si
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movzx edx, word [eax + edi + 2]
cvtsi2ss xmm4, edx
divss xmm7, xmm6
mulss xmm0, xmm7
movss dword [esp + 0x7c], xmm0
mulss xmm4, xmm5
movzx edx, word [eax + edi + 4]
xorps xmm6, xmm6
cvtsi2ss xmm6, edx
mulss xmm6, xmm7
movzx edx, word [eax + edi + 6]
xorps xmm7, xmm7
cvtsi2ss xmm7, edx
mulss xmm7, xmm5
movss xmm5, dword [eax + edi + 0x18]
addss xmm5, xmm1
movups xmm1, xmmword [esp + 0xb8]
addss xmm5, xmm1
movss xmm0, dword [esp + 8]
addss xmm2, xmm0
addss xmm3, xmm1
movss xmm1, dword [esp + 0x48]
addss xmm1, xmm0
movss xmm0, dword [eax + edi + 0x10]
sub esp, 0x28
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x20], xmm7
movss dword [esp + 0x1c], xmm6
movss dword [esp + 0x18], xmm4
movss xmm0, dword [esp + 0xa4]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x10], xmm5
movss dword [esp + 0xc], xmm2
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm1
movzx eax, cx
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
call fcn.1002f590
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
inc ebx
add edi, 0x1c
cmp ebx, dword [esp + 0x48]
jge 0x1002e540
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
movzx esi, word [eax + edi]
test si, si
jne 0x1002e6e0
cmp word [eax + edi + 4], 0
jne 0x1002e6e0
cmp word [eax + edi + 2], 0
jne 0x1002e6e0
cmp word [eax + edi + 6], 0
je 0x1002e6a5
nop dword [eax + eax]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx - 8]
add ecx, ebx
mov ebp, dword [esp + 0x24]
cmp byte [ebp], 0
je 0x1002e580
movzx ebp, cx
cmp dword [edx + 0x28], ebp
jle 0x1002e580
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 0x30]
cmp word [edx + ebp*2], 0xffff
mov edx, dword [esp + 0x34]
je 0x1002e580
cmp dword [edx + 0x18], 0
jne 0x1002e6a5
jmp 0x1002e580
push dword [esp + 0xfc]
mov esi, eax
call fcn.1000ab70
add esp, 4
push dword [esp + 0xf4]
call fcn.1000ab70
add esp, 4
push dword [esp + 0x6c]
call fcn.1000ab70
add esp, 4
push esi
call fcn.1002f750
add esp, 4
mov bl, 1
mov ecx, dword [esp + 0x3d8]
xor ecx, esp
call fcn.10038f79
mov eax, ebx
add esp, 0x3dc
pop esi
pop edi
pop ebx
pop ebp
ret