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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xb24
mov ecx, dword [ebp + 8]
pxor xmm1, xmm1
mov dword [esp + 0x268], ecx
mov eax, dword [0x4f6e34]
xor eax, esp
mov dword [esp + 0xb1c], eax
mov edx, dword [ecx + 0x50]
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x264], eax
movdqu xmmword [esp + 0xa60], xmm1
movq qword [esp + 0x20], xmm1
movups xmm0, xmmword [0x490020]
movups xmmword [esp + 0xa70], xmm0
mov dword [esp + 0x1b8], 0x1e01
cmp dword [esp + 0x1c8], 0
jle 0x444a6e
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ecx + 0x34]
mov dword [esp + 0x1cc], eax
xor eax, eax
mov dword [esp + 0x1c], ebx
xor ecx, ecx
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x264]
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x268]
mov dword [esp + eax*4 + 0x20], 0
lea edx, [edi + ecx]
test ebx, ebx
jg 0x4409d6
inc eax
add ecx, 0x2908
cmp eax, esi
jb 0x440927
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x1c8], 1
jle 0x4409b5
mov dword [esp + 0x1b4], 0x1e01
mov ecx, 2
cmp dword [esp + 0x1c8], 2
jg 0x440971
xor edi, edi
jmp 0x440997
xor edi, edi
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x10], edx
inc ecx
cmp ecx, dword [esp + 0x1c8]
jl 0x440bd6
mov edi, dword [esp + 0x1bc]
pxor xmm1, xmm1
xor esi, esi
mov dword [esp + 0x1bc], edi
xor eax, eax
mov ecx, dword [esp + 0x264]
mov ebx, dword [esp + 0x1c8]
jmp 0x4412d7
xor edi, edi
lea edx, [esp + 0x1b4]
mov dword [edx], 0
xor esi, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [edx + 8], edi
jmp 0x4412ba
mov esi, dword [esp + 0x264]
xor edi, edi
shr esi, 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1b4], 0x1e01
mov dword [esp + 0x34], esi
jmp 0x4409fe
mov dword [esp + eax*4 + 0x20], 0
mov edx, dword [esp + 0x1cc]
cmp dword [esp + 0x34], 0
lea ebx, [edx + eax*8]
je 0x444a64
xor ecx, ecx
lea esi, [esp + eax*8 + 0xa60]
mov dword [esp + 0x18], esi
lea esi, [esp + eax*8 + 0xa70]
mov dword [esp + 0x14], esi
xor edx, edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov ebx, dword [eax + ecx*8]
add edi, ebx
mov dword [esi + ecx*8], ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + ecx*8 + 4]
add edx, eax
mov dword [esp + 0x1bc], edi
xor edi, edi
mov dword [ebx + ecx*8], edi
mov dword [esi + ecx*8 + 4], eax
mov dword [ebx + ecx*8 + 4], edi
inc ecx
mov edi, dword [esp + 0x1bc]
cmp ecx, dword [esp + 0x34]
jb 0x440a35
mov ebx, dword [esp + 0x40]
add edi, edx
mov eax, dword [esp + 0x30]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x264]
jae 0x440ab5
mov ecx, dword [esp + 0x1cc]
lea esi, [ecx + edx*4]
mov ecx, dword [esi + eax*8 - 4]
lea esi, [esp + edx*4 + 0xa60]
mov dword [esi + eax*8 - 4], ecx
lea edx, [esp + edx*4 + 0xa70]
mov dword [edx + eax*8 - 4], 0
add edi, ecx
mov dword [esp + 0x28], 0
lea ecx, [eax + eax*8]
mov edx, dword [esp + eax*4 + 0x20]
lea esi, [esp + ecx*8 + 0x9d0]
mov dword [esp + 0x48], esi
lea esi, [esp + ecx*8 + 0x9d8]
mov dword [esp + 0x50], esi
lea esi, [esp + ecx*8 + 0x9d4]
mov dword [esp + 0x4c], esi
lea esi, [esp + ecx*8 + 0x9dc]
mov dword [esp + 0x2c], esi
lea esi, [esp + ecx*8 + 0x9cc]
shl ecx, 9
add ecx, dword [ebp + 0xc]
mov dword [esp + 0x38], esi
cmp dword [esp + 0x1c], 0
jl 0x4449c7
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
lea esi, [ebx*4]
mov edi, dword [esp + 0x48]
add edx, dword [eax + ebx*4]
lea eax, [esi + esi*8]
mov dword [edi + eax], 0x43ee10
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x268]
mov dword [edi + eax], esi
imul edi, ebx, 0x1484
mov esi, dword [esp + 0x3c]
lea esi, [esi + edi + 0x134]
mov dword [ecx + eax], esi
mov esi, dword [esp + 0x4c]
lea edi, [ebx + ebx*8]
shl edi, 8
add edi, dword [esp + 0x44]
mov dword [esi + eax], edi
mov edi, dword [ecx + eax]
cmp dword [edi + 0x12b4], 2
je 0x440b8f
mov esi, dword [esp + 0x38]
mov dword [esi + eax], 0x440060
jmp 0x440b9a
mov esi, dword [esp + 0x38]
mov dword [esi + eax], 0x43f400
inc ebx
cmp ebx, dword [esp + 0x264]
jb 0x440b27
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x1bc]
mov dword [esp + eax*4 + 0x20], edx
inc eax
add dword [esp + 0x3c], 0x2908
cmp eax, dword [esp + 0x1c8]
jb 0x4409f6
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x1bc], edi
cmp dword [esp + 0x264], 0
jle 0x44097e
mov eax, dword [esp + 0x1cc]
xor edx, edx
movdqu xmm1, xmmword [0x490070]
lea esi, [ecx + ecx*8]
movss xmm0, dword [0x490098]
lea edi, [esp + esi*8 + 0x9cc]
lea ebx, [eax + ecx*8]
imul eax, ecx, 0x138
mov dword [esp + 0x58], ebx
lea ebx, [esp + eax + 0x4ec]
mov dword [esp + 0x38], edi
lea edi, [esp + eax + 0x75c]
mov dword [esp + 0x3c], ebx
add eax, dword [esp + 0x10]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
cmp dword [eax + edx*4], 0
jle 0x441171
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
lea ebx, [edx + ecx]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x44], 0xffffffff
lea ecx, [edi + eax]
mov dword [esp + 0x68], ecx
lea edx, [esi + eax]
mov esi, dword [esp + 0x28]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
mov dword [esp + 0x74], edi
add eax, esi
mov esi, dword [ecx + 0x1458]
mov dword [esp + 0x70], esi
xor esi, esi
mov edi, dword [ecx + 0x1300]
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], esi
xor ebx, ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], edx
movss xmm1, dword [0x490098]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
pxor xmm0, xmm0
mov eax, dword [esp + 0x74]
mov edi, dword [ecx + ebx*4 + 0x1308]
mov ecx, dword [esp + 0x88]
sub edx, ecx
inc edx
cmp edx, edi
lea ecx, [eax + ecx*4]
mov dword [esp + 0x84], edi
cmovae edx, edi
mov eax, edx
shr eax, 2
mov dword [esp + 0x80], edx
and edx, 3
mov dword [esp + 0x7c], ecx
lea edi, [eax - 1]
test eax, eax
je 0x440d56
movss xmm2, dword [ecx]
mov eax, edi
movss xmm3, dword [ecx + 4]
dec edi
movss xmm5, dword [ecx + 8]
maxss xmm2, xmm0
movss xmm4, dword [ecx + 0xc]
add ecx, 0x10
movaps xmm0, xmm4
maxss xmm3, xmm2
maxss xmm5, xmm3
comiss xmm0, xmm5
ja 0x440d52
movaps xmm0, xmm5
test eax, eax
ja 0x440d22
cmp edx, 3
je 0x440d67
cmp edx, 2
je 0x440d76
cmp edx, 1
je 0x440d85
jmp 0x440d93
movss xmm2, dword [ecx + 8]
movaps xmm3, xmm0
movaps xmm0, xmm2
maxss xmm0, xmm3
movss xmm2, dword [ecx + 4]
movaps xmm3, xmm0
movaps xmm0, xmm2
maxss xmm0, xmm3
movss xmm2, dword [ecx]
movaps xmm3, xmm0
movaps xmm0, xmm2
maxss xmm0, xmm3
movss xmm2, dword [0x51fa40]
mulss xmm2, xmm0
cmpless xmm2, xmm1
movd ecx, xmm2
mov edi, ecx
and ecx, 0xffffff81
and edi, 0xffffff80
add ecx, 0xff
add edi, 0xc0
movss xmm3, dword [edi*4 + 0x51f840]
lea eax, [edi - 0x20]
mulss xmm3, xmm0
comiss xmm1, xmm3
jb 0x440dd3
mov ecx, edi
add edi, 0x20
comiss xmm1, xmm3
jae 0x440ddd
mov eax, edi
movss xmm4, dword [eax*4 + 0x51f840]
lea edx, [eax - 0x10]
mulss xmm4, xmm0
comiss xmm1, xmm4
jb 0x440df4
mov ecx, eax
add eax, 0x10
comiss xmm1, xmm4
jae 0x440dfe
mov edx, eax
movss xmm5, dword [edx*4 + 0x51f840]
lea edi, [edx - 8]
mulss xmm5, xmm0
comiss xmm1, xmm5
jb 0x440e15
mov ecx, edx
add edx, 8
comiss xmm1, xmm5
jae 0x440e1f
mov edi, edx
movss xmm6, dword [edi*4 + 0x51f840]
lea edx, [edi - 4]
mulss xmm6, xmm0
comiss xmm1, xmm6
jb 0x440e36
mov ecx, edi
add edi, 4
comiss xmm1, xmm6
jae 0x440e40
mov edx, edi
movss xmm7, dword [edx*4 + 0x51f840]
mulss xmm7, xmm0
movzx eax, dl
comiss xmm1, xmm7
mov edi, dword [esp + 0x64]
jae 0x440e5b
mov eax, ecx
lea ecx, [edx - 2]
add edx, 2
movzx ecx, cl
movzx edx, dl
comiss xmm1, xmm7
jae 0x440e6e
mov ecx, edx
movss xmm2, dword [ecx*4 + 0x51f840]
lea edx, [ecx - 1]
mulss xmm2, xmm0
comiss xmm1, xmm2
jb 0x440e85
mov eax, ecx
inc ecx
movzx edx, dl
movzx ecx, cl
comiss xmm1, xmm2
jae 0x440e93
mov edx, ecx
mulss xmm0, dword [edx*4 + 0x51f840]
comiss xmm1, xmm0
mov ecx, dword [edi + 0x14]
jae 0x440ea6
mov edx, eax
cmp ecx, edx
mov eax, dword [esp + 0x68]
cmovl ecx, edx
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + ebx*4], edx
mov eax, dword [edi + ecx*4 + 0x18]
cmp eax, edx
cmovl eax, edx
mov dword [edi + ecx*4 + 0x18], eax
inc ecx
xor edi, edi
cmp ecx, 2
cmova ecx, edi
mov dword [esp + 0x5c], ecx
cmp ebx, dword [esp + 0x60]
jge 0x440f59
cmp dword [esp + 0x84], 2
jbe 0x440f59
mov eax, dword [esp + 0x78]
cmp byte [ebx + eax + 0x145c], 0
jne 0x440efe
mov edx, 0xff
mov esi, edx
jmp 0x440f66
push edx
push dword [esp + 0x84]
mov eax, dword [esp + 0x3c]
push dword [eax + ebx*4]
push dword [esp + 0x88]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x98]
lea edi, [edx + ecx*4]
push edi
mov eax, dword [esp + 0x78]
call dword [eax + 4]
movss xmm1, dword [0x490098]
add esp, 0x14
movzx edx, al
cmp edx, esi
cmovge esi, edx
cmp edx, dword [esp + 0x44]
jle 0x440f66
cmp edx, 0xff
mov eax, dword [esp + 0x44]
cmovl eax, edx
mov dword [esp + 0x44], eax
jmp 0x440f66
cmp edx, esi
cmovge esi, edx
and esi, 0xff
mov edx, esi
mov eax, dword [esp + 0x6c]
mov dword [eax + ebx*4], edx
inc ebx
mov edx, dword [esp + 0x88]
add edx, dword [esp + 0x84]
mov dword [esp + 0x88], edx
cmp edx, dword [esp + 0x70]
jbe 0x440cd8
mov edx, eax
cmp ebx, 0x27
jge 0x4410ae
mov eax, ebx
neg eax
add eax, 0x27
cmp eax, 4
jl 0x4449ba
mov ecx, dword [esp + 0x68]
lea edi, [ecx + ebx*4]
mov dword [esp + 0x30], edi
and edi, 0xf
je 0x440fc0
neg edi
add edi, 0x10
shr edi, 2
lea ecx, [edi + 4]
cmp eax, ecx
jl 0x4449ba
mov ecx, eax
sub ecx, edi
and ecx, 3
neg ecx
add ecx, eax
mov dword [esp + 0x48], ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x40], ecx
test edi, edi
jbe 0x44100e
mov dword [esp + 0x18], ebx
xor ecx, ecx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov dword [edx + ecx*4], esi
mov dword [ebx + ecx*4], 0
inc ecx
cmp ecx, edi
jb 0x440ff7
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
lea ecx, [ebx + edi]
lea ecx, [edx + ecx*4]
test cl, 0xf
je 0x44104d
movd xmm0, esi
mov dword [esp + 0x1c], esi
pxor xmm1, xmm1
mov dword [esp + 0x6c], edx
pshufd xmm0, xmm0, 0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
movdqu xmmword [ecx + edi*4], xmm0
movdqu xmmword [esi + edi*4], xmm1
add edi, 4
cmp edi, edx
jb 0x44103a
jmp 0x44107f
movd xmm0, esi
mov dword [esp + 0x1c], esi
pxor xmm1, xmm1
mov dword [esp + 0x6c], edx
pshufd xmm0, xmm0, 0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
movdqu xmmword [ecx + edi*4], xmm0
movdqu xmmword [esi + edi*4], xmm1
add edi, 4
cmp edi, edx
jb 0x44106e
mov dword [esp + 0x48], edx
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
cmp eax, dword [esp + 0x48]
jbe 0x4410ae
mov edi, dword [esp + 0x68]
lea ecx, [edx + ebx*4]
lea ebx, [edi + ebx*4]
mov edi, dword [esp + 0x48]
mov dword [ecx + edi*4], esi
mov dword [ebx + edi*4], 0
inc edi
cmp edi, eax
jb 0x44109f
cmp dword [esp + 0x44], 0
jl 0x44114a
mov eax, edx
movzx esi, byte [esp + 0x44]
and eax, 0xf
je 0x4410e4
xor ecx, ecx
neg eax
add eax, 0x10
shr eax, 2
mov ebx, dword [esp + 0x44]
cmp dword [edx + ecx*4], 0xff
jne 0x4410df
mov dword [edx + ecx*4], ebx
inc ecx
cmp ecx, eax
jb 0x4410d3
mov ecx, eax
neg ecx
add ecx, 3
and ecx, 3
movd xmm0, dword [esp + 0x44]
neg ecx
pshufd xmm0, xmm0, 0
add ecx, 0x27
movdqu xmm4, xmmword [0x490070]
movdqu xmm1, xmmword [edx + eax*4]
movdqa xmm3, xmm4
pcmpeqd xmm3, xmm1
movdqa xmm2, xmm3
pand xmm3, xmm0
pandn xmm2, xmm1
por xmm3, xmm2
movdqu xmmword [edx + eax*4], xmm3
add eax, 4
cmp eax, ecx
jb 0x441106
cmp ecx, 0x27
jae 0x44114a
mov eax, dword [esp + 0x44]
cmp dword [edx + ecx*4], 0xff
jne 0x441144
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, 0x27
jb 0x441138
push esi
push dword [esp + 0x6c]
push edx
mov eax, dword [esp + 0x70]
push eax
call dword [eax]
mov eax, dword [esp + 0x74]
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x4449a4
mov eax, dword [esp + 0x54]
inc eax
add dword [esp + 0x4c], 0x24
add dword [esp + 0x50], 0x9c
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x264]
jl 0x440c46
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, dword [esp + 0x1c8]
jl 0x440bd6
xor esi, esi
lea edx, [esp + 0x1b4]
pxor xmm1, xmm1
mov dword [edx], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x268]
lea eax, [esi + esi*8]
mov edi, dword [esp + 0x1cc]
xor ebx, ebx
lea edx, [ecx + 0x134]
mov dword [esp + 0x2c], edx
lea edx, [esp + eax*8 + 0x9cc]
mov dword [esp + 0x1c], edx
lea eax, [edi + esi*8]
mov dword [esp + 0x28], eax
lea edi, [esp + esi*8 + 0xa70]
mov dword [esp + 0x30], edi
imul edi, esi, 0x2908
lea ecx, [ecx + edi + 0x134]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x28]
lea edi, [ebx*4]
lea edi, [edi + edi*8]
add edi, dword [esp + 0x1c]
cmp dword [edx + ebx*4], 0
jle 0x44125f
push 0x900
mov edx, dword [edi + 0x10]
push 0
add edx, 0x900
push edx
call fcn.00449a20
add esp, 0xc
mov eax, edi
call fcn.00444aa0
push 0
push dword [edi + 0x10]
push dword [edi + 0xc]
call fcn.004334d0
mov edx, eax
add esp, 0xc
mov eax, dword [edi + 0x10]
mov dword [eax + 0x12a0], edx
imul edi, ebx, 0x1484
push dword [esp + 0x2c]
push ebx
push esi
push dword [esp + 0x274]
add edi, dword [esp + 0x28]
call fcn.00435070
add esp, 0x10
mov eax, dword [esp + 0x268]
cmp dword [eax + 0x28], 1
je 0x44498f
mov eax, dword [edi + 0x12a0]
add eax, dword [edi + 0x12ec]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov dword [edi + ebx*4], eax
inc ebx
add dword [edx], eax
cmp ebx, dword [esp + 0x264]
jl 0x44120c
pxor xmm1, xmm1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x264]
mov ebx, dword [esp + 0x1c8]
inc esi
add eax, dword [edx]
cmp esi, ebx
jge 0x4412fb
lea edx, [esp + esi*4 + 0x1b4]
mov dword [edx], 0
test ecx, ecx
jle 0x4412d0
nop word [eax + eax]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
jmp 0x4411c1
mov edi, dword [esp + 0x1bc]
cmp eax, edi
jg 0x4413a9
xor ecx, ecx
mov ebx, 1
mov edx, dword [esp + 0x264]
shr edx, 1
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x1bc], edi
cmp dword [esp + ecx*4 + 0x1b4], 0x1e00
cmovg ebx, eax
cmp dword [esp + 0x264], 0
jle 0x44138c
test edx, edx
je 0x444985
mov edi, eax
lea esi, [esp + ecx*8 + 0xa70]
cmp dword [esi + edi*8], 0xfff
cmovg ebx, eax
cmp dword [esi + edi*8 + 4], 0xfff
cmovg ebx, eax
inc edi
cmp edi, edx
jb 0x441350
lea edi, [edi + edi + 1]
lea esi, [edi - 1]
cmp esi, dword [esp + 0x264]
jae 0x44138c
lea esi, [esp + edi*4 + 0xa70]
cmp dword [esi + ecx*8 - 4], 0xfff
cmovg ebx, eax
inc ecx
cmp ecx, dword [esp + 0x1c8]
jb 0x441327
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1bc]
test ebx, ebx
jne 0x444a7b
xor ebx, ebx
mov esi, dword [esp + 0x264]
xor ecx, ecx
shr esi, 1
mov dword [esp + 0x1bc], edi
mov dword [esp + ecx*4 + 0x20], 0
xor edx, edx
cmp dword [esp + 0x264], 0
jle 0x44168f
test esi, esi
je 0x4423ae
mov dword [esp + 0x2c], esi
lea edi, [esp + ecx*8 + 0xa70]
mov dword [esp + 0x28], edi
lea edi, [esp + ecx*8 + 0xa60]
xor eax, eax
mov edx, dword [esp + ecx*4 + 0x20]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov esi, edi
mov edi, dword [esp + 0x28]
mov ebx, 0xfff
mov ecx, dword [edi + eax*8]
cmp ecx, 0xfff
mov edi, dword [edi + eax*8 + 4]
cmovge ecx, ebx
cmp edi, 0xfff
mov dword [esi + eax*8], ecx
cmovge edi, ebx
add edx, ecx
mov dword [esi + eax*8 + 4], edi
inc eax
add edx, edi
cmp eax, dword [esp + 0x2c]
jb 0x441403
mov ecx, dword [esp + 0x18]
lea edi, [eax + eax + 1]
mov esi, dword [esp + 0x2c]
lea eax, [edi - 1]
mov ebx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x20], edx
cmp eax, dword [esp + 0x264]
jae 0x441488
mov dword [esp + 0x2c], esi
lea esi, [esp + edi*4 + 0xa70]
mov eax, dword [esi + ecx*8 - 4]
mov esi, 0xfff
cmp eax, 0xfff
lea edi, [esp + edi*4 + 0xa60]
cmovge eax, esi
add edx, eax
mov dword [edi + ecx*8 - 4], eax
mov dword [esp + ecx*4 + 0x20], edx
mov esi, dword [esp + 0x2c]
cmp edx, 0x1e00
jle 0x44168f
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x1c], ebx
xor eax, eax
mov edi, dword [esp + 0x264]
lea edx, [esp + ecx*8 + 0xa60]
pxor xmm0, xmm0
mov ebx, dword [edx + eax*4]
test ebx, ebx
jle 0x44239f
pxor xmm2, xmm2
cvtsi2sd xmm2, ebx
sqrtsd xmm2, xmm2
sqrtsd xmm2, xmm2
cvtsd2ss xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
addss xmm0, xmm2
inc eax
cmp eax, edi
jl 0x4414b2
mov ebx, dword [esp + 0x1c]
pxor xmm2, xmm2
comiss xmm0, xmm2
jbe 0x441569
test esi, esi
je 0x442381
xor eax, eax
movss xmm3, dword [esp + eax*8 + 0x10]
movss xmm2, dword [0x490094]
mulss xmm3, xmm2
movaps xmm4, xmm2
divss xmm3, xmm0
movss xmm5, dword [esp + eax*8 + 0x14]
mulss xmm5, xmm4
cvttss2si edi, xmm3
divss xmm5, xmm0
mov dword [edx + eax*8], edi
cvttss2si edi, xmm5
mov dword [edx + eax*8 + 4], edi
inc eax
cmp eax, esi
jb 0x4414f7
lea edx, [eax + eax + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x264]
jae 0x4415a0
movss xmm3, dword [esp + edx*4 + 0xc]
lea edx, [esp + edx*4 + 0xa60]
movss xmm2, dword [0x490094]
mulss xmm3, xmm2
divss xmm3, xmm0
cvttss2si eax, xmm3
mov dword [edx + ecx*8 - 4], eax
jmp 0x4415a0
test esi, esi
je 0x442395
xor eax, eax
xor edi, edi
mov dword [edx + eax*8], edi
mov dword [edx + eax*8 + 4], edi
inc eax
cmp eax, esi
jb 0x441575
lea edx, [eax + eax + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x264]
jae 0x4415a0
lea eax, [esp + edx*4 + 0xa60]
mov dword [eax + ecx*8 - 4], 0
cmp dword [esp + 0x264], 1
jle 0x44162f
mov edi, dword [esp + ecx*8 + 0xa70]
add edi, 0x20
mov eax, dword [esp + ecx*8 + 0xa60]
cmp eax, edi
jle 0x4415de
mov edx, dword [esp + ecx*8 + 0xa64]
add edx, eax
mov eax, edi
sub edx, edi
mov dword [esp + ecx*8 + 0xa64], edx
mov dword [esp + ecx*8 + 0xa60], edi
mov edi, dword [esp + ecx*8 + 0xa74]
add edi, 0x20
mov edx, dword [esp + ecx*8 + 0xa64]
cmp edx, edi
jle 0x441605
add eax, edx
sub eax, edi
mov dword [esp + ecx*8 + 0xa60], eax
mov dword [esp + ecx*8 + 0xa64], edi
mov edx, 0xfff
cmp eax, 0xfff
cmovge eax, edx
mov dword [esp + ecx*8 + 0xa60], eax
mov eax, dword [esp + ecx*8 + 0xa64]
cmp eax, 0xfff
cmovl edx, eax
mov dword [esp + ecx*8 + 0xa64], edx
mov dword [esp + ecx*4 + 0x20], 0
xor eax, eax
test esi, esi
je 0x44238b
mov eax, dword [esp + ecx*4 + 0x20]
xor edi, edi
lea edx, [esp + ecx*8 + 0xa60]
add eax, dword [edx + edi*8]
add eax, dword [edx + edi*8 + 4]
inc edi
cmp edi, esi
jb 0x44164e
mov dword [esp + ecx*4 + 0x20], eax
lea edi, [edi + edi + 1]
lea edx, [edi - 1]
cmp edx, dword [esp + 0x264]
jae 0x44167d
lea edx, [esp + edi*4 + 0xa60]
add eax, dword [edx + ecx*8 - 4]
mov dword [esp + ecx*4 + 0x20], eax
inc ecx
add ebx, eax
cmp ecx, dword [esp + 0x1c8]
jl 0x4413bd
jmp 0x44169f
inc ecx
add ebx, edx
cmp ecx, dword [esp + 0x1c8]
jl 0x4413bd
mov edi, dword [esp + 0x1bc]
cmp ebx, edi
jg 0x444583
xor eax, eax
mov edx, 1
mov dword [esp + 0x2c], esi
xor ecx, ecx
mov dword [esp + 0x1bc], edi
cmp dword [esp + 0x264], 0
jle 0x441751
cmp dword [esp + 0x2c], 0
je 0x44456c
xor esi, esi
lea edi, [esp + ecx*8 + 0xa60]
mov dword [esp + 0x10], edi
xor ebx, ebx
mov dword [esp + 0x14], ecx
xor edi, edi
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + ebx*8]
cmp eax, 0xfff
cmovg edx, edi
add esi, eax
cmp dword [ecx + ebx*8 + 4], 0xfff
cmovg edx, edi
add esi, dword [ecx + ebx*8 + 4]
inc ebx
cmp ebx, dword [esp + 0x2c]
jb 0x4416f8
add ebx, ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp ebx, dword [esp + 0x264]
jae 0x441744
xor edi, edi
lea ebx, [esp + ebx*4 + 0xa60]
cmp dword [ebx + ecx*8], 0xfff
cmovg edx, edi
add esi, dword [ebx + ecx*8]
xor ebx, ebx
cmp esi, 0x1e00
cmovg edx, ebx
add eax, esi
inc ecx
cmp ecx, dword [esp + 0x1c8]
jb 0x4416c2
mov edi, dword [esp + 0x1bc]
mov esi, dword [esp + 0x2c]
cmp eax, edi
jg 0x441798
test edx, edx
je 0x441798
cmp dword [esp + 0x264], 0
jg 0x4418e9
mov eax, 1
cmp dword [esp + 0x1c8], 1
ja 0x44194b
jmp 0x4423c6
mov eax, dword [esp + 0x264]
xor ebx, ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1bc], edi
shl eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x264]
test eax, eax
jle 0x44192b
cmp eax, 0x18
jle 0x44180a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1cc]
lea edx, [esp + ebx*8 + 0xa60]
push esi
lea eax, [edi + ebx*8]
push eax
push edx
call fcn.004499d0
add esp, 0xc
inc ebx
cmp ebx, dword [esp + 0x1c8]
jae 0x4418da
cmp dword [esp + 0x264], 0x18
jg 0x4417d2
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x264]
cmp eax, 4
jl 0x4423e4
lea edi, [esp + ebx*8 + 0xa60]
mov esi, edi
and esi, 0xf
mov edx, esi
neg edx
add edx, 0x10
shr edx, 2
test esi, esi
cmovne esi, edx
lea ecx, [esi + 4]
cmp eax, ecx
jl 0x4423e4
mov edx, eax
sub edx, esi
mov ecx, dword [esp + 0x1cc]
and edx, 3
neg edx
add edx, eax
lea ecx, [ecx + ebx*8]
test esi, esi
jbe 0x441878
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + ebx*4]
mov dword [edi + ebx*4], eax
inc ebx
cmp ebx, esi
jb 0x441862
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x1c], edx
lea edx, [ecx + esi*4]
test dl, 0xf
mov edx, dword [esp + 0x1c]
je 0x44189b
movdqu xmm0, xmmword [ecx + esi*4]
movdqu xmmword [edi + esi*4], xmm0
add esi, 4
cmp esi, edx
jb 0x441888
jmp 0x4418ac
movdqu xmm0, xmmword [ecx + esi*4]
movdqu xmmword [edi + esi*4], xmm0
add esi, 4
cmp esi, edx
jb 0x44189b
cmp edx, eax
jae 0x4418cc
mov esi, dword [esp + 0x1cc]
lea ecx, [esp + ebx*8 + 0xa60]
lea esi, [esi + ebx*8]
mov edi, dword [esi + edx*4]
mov dword [ecx + edx*4], edi
inc edx
cmp edx, eax
jb 0x4418c1
inc ebx
cmp ebx, dword [esp + 0x1c8]
jb 0x4417ba
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1bc]
pxor xmm1, xmm1
mov eax, dword [esp + 0x264]
lea ebx, [eax*4]
cmp ebx, 0x18
jle 0x4423eb
mov eax, dword [esp + 0x268]
mov edx, dword [esp + 0x264]
shl edx, 4
push edx
push 0
lea ecx, [eax + 0x5354]
push ecx
call fcn.00449a20
add esp, 0xc
pxor xmm1, xmm1
xor eax, eax
jmp 0x44194b
mov esi, dword [esp + 0x2c]
xor eax, eax
inc eax
mov edi, dword [esp + 0x1bc]
pxor xmm1, xmm1
cmp dword [esp + 0x1c8], 1
jbe 0x4423c6
mov dword [esp + 0x1bc], edi
mov edx, dword [esp + 0x264]
test edx, edx
jle 0x441a15
test esi, esi
je 0x44248c
imul edi, eax, 0x2908
xor ebx, ebx
add edi, dword [esp + 0x268]
xor ecx, ecx
xor edx, edx
inc ebx
mov dword [ecx + edi + 0x13e4], edx
mov dword [ecx + edi + 0x2868], edx
add ecx, 0x2908
cmp ebx, esi
jb 0x44197c
mov edx, dword [esp + 0x264]
lea ebx, [ebx + ebx + 1]
lea ecx, [ebx - 1]
cmp ecx, edx
jae 0x4419c5
imul ebx, ebx, 0x1484
imul ecx, eax, 0x2908
add ebx, dword [esp + 0x268]
mov dword [ebx + ecx - 0xa0], 0
inc eax
cmp eax, dword [esp + 0x1c8]
jb 0x441959
xor eax, eax
lea edx, [esp + 0x9cc]
mov ecx, dword [edx - 0x800]
xor esi, esi
mov dword [edx - 0x770], ecx
xor ebx, ebx
lea ecx, [edx + 0xa4]
mov dword [edx - 0x818], 0
mov dword [edx - 0x76c], ebx
mov dword [edx - 0x774], ecx
mov dword [edx - 0x778], edx
mov dword [edx - 0x77c], eax
jmp 0x441ab5
inc eax
cmp eax, dword [esp + 0x1c8]
jb 0x441959
xor eax, eax
lea edx, [esp + 0x1b4]
mov edi, dword [edx + 8]
xor esi, esi
mov dword [edx], 0
mov dword [edx + 0x9c], eax
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x264]
mov ebx, dword [esp + 0x1c8]
inc esi
add eax, dword [edx]
cmp esi, ebx
jge 0x442345
lea edx, [esp + esi*4 + 0x1b4]
mov dword [edx], 0
test ecx, ecx
jle 0x441a52
mov edi, dword [esp + 0x1cc]
lea ecx, [esi*8]
mov dword [esp + 0x250], eax
lea eax, [esi + esi*8]
mov dword [esp + 0x260], ecx
lea edx, [esp + eax*8 + 0x9cc]
mov dword [esp + 0x254], edx
lea eax, [edi + esi*8]
mov dword [esp + 0x25c], eax
lea edx, [esp + esi*8 + 0xa70]
mov dword [esp + 0x258], edx
xor ebx, ebx
mov edi, dword [esp + 0x25c]
lea eax, [ebx*4]
mov ecx, dword [esp + 0x258]
lea edx, [eax + eax*8]
add edx, dword [esp + 0x254]
mov dword [esp + 0x28c], edx
mov dword [ecx + ebx*4], 0
cmp dword [edi + ebx*4], 0
jg 0x441b59
imul ecx, esi, 0x2908
imul edi, ebx, 0x1484
mov edx, dword [esp + 0x268]
add ecx, edx
lea eax, [edx + 0x134]
push eax
push ebx
push esi
push edx
lea edi, [ecx + edi + 0x134]
call fcn.00435070
add esp, 0x10
mov eax, dword [esp + 0x268]
cmp dword [eax + 0x28], 1
je 0x442496
mov edx, dword [esp + 0x258]
mov eax, dword [edi + 0x12a0]
add eax, dword [edi + 0x12ec]
mov dword [edx + ebx*4], eax
lea edx, [esp + esi*4 + 0x1b4]
inc ebx
add dword [edx], eax
cmp ebx, dword [esp + 0x264]
jge 0x441a3d
jmp 0x441ab5
imul edx, esi, 0x138
imul ecx, ebx, 0x9c
lea eax, [esp + edx + 0x4ec]
add eax, ecx
lea edx, [esp + edx + 0x75c]
add edx, ecx
mov dword [esp + 0x284], edx
mov edx, dword [esp + 0x28c]
mov dword [esp + 0x26c], eax
mov edx, dword [edx + 0x10]
mov dword [esp + 0x290], edx
mov edx, dword [edx + 0x12ac]
mov dword [esp + 0x270], edx
and eax, 0xf
mov edx, eax
mov ecx, edx
je 0x441c07
xor edi, edi
mov edx, eax
neg edx
add edx, 0x10
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c0], esi
shr edx, 2
mov dword [esp + 0x280], eax
mov ebx, dword [esp + 0x270]
mov esi, dword [esp + 0x26c]
mov eax, dword [esi + edi*4]
cmp eax, ebx
cmovge eax, ebx
mov dword [esi + edi*4], eax
inc edi
cmp edi, edx
jb 0x441bdb
mov dword [esp + 0x270], ebx
mov eax, dword [esp + 0x280]
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
mov edi, edx
neg edi
add edi, 3
and edi, 3
movd xmm0, dword [esp + 0x270]
neg edi
mov dword [esp + 0x1c0], esi
add edi, 0x27
pshufd xmm1, xmm0, 0
mov esi, dword [esp + 0x26c]
movdqu xmm2, xmmword [esi + edx*4]
movdqa xmm0, xmm1
movdqa xmm3, xmm2
pxor xmm0, xmm2
pcmpgtd xmm3, xmm1
pand xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [esi + edx*4], xmm3
add edx, 4
cmp edx, edi
jb 0x441c32
mov esi, dword [esp + 0x1c0]
cmp edi, 0x27
jae 0x441ca9
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c0], esi
mov esi, dword [esp + 0x270]
mov ebx, dword [esp + 0x26c]
mov edx, dword [ebx + edi*4]
cmp edx, esi
cmovge edx, esi
mov dword [ebx + edi*4], edx
inc edi
cmp edi, 0x27
jb 0x441c83
mov dword [esp + 0x270], esi
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
mov edx, dword [esp + 0x260]
lea edx, [esp + edx + 0xa60]
mov edx, dword [edx + ebx*4]
mov dword [esp + 0x288], edx
test eax, eax
je 0x441d0d
xor edx, edx
xor edi, edi
mov ecx, eax
neg ecx
add ecx, 0x10
mov dword [esp + 0x1c4], ebx
shr ecx, 2
mov dword [esp + 0x1c0], esi
mov ebx, dword [esp + 0x26c]
mov esi, dword [ebx + edi*4]
inc edi
neg esi
add esi, 0xff
cmp esi, edx
cmovge edx, esi
cmp edi, ecx
jb 0x441ce8
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
jmp 0x441d0f
xor edx, edx
mov edi, ecx
movd xmm0, edx
neg edi
add edi, 3
and edi, 3
neg edi
pshufd xmm0, xmm0, 0
add edi, 0x27
movdqu xmm4, xmmword [0x490070]
mov edx, dword [esp + 0x26c]
movdqa xmm2, xmm4
psubd xmm2, xmmword [edx + ecx*4]
add ecx, 4
movdqa xmm3, xmm2
pxor xmm2, xmm0
pcmpgtd xmm3, xmm0
pand xmm3, xmm2
pxor xmm0, xmm3
cmp ecx, edi
jb 0x441d36
movdqa xmm2, xmm0
movdqa xmm3, xmm0
psrldq xmm2, 8
pcmpgtd xmm3, xmm2
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movdqa xmm0, xmm3
movdqa xmm4, xmm3
psrldq xmm0, 4
pcmpgtd xmm4, xmm0
pxor xmm3, xmm0
pand xmm4, xmm3
pxor xmm4, xmm0
movd dword [esp + 0x27c], xmm4
cmp edi, 0x27
jae 0x441ddb
mov dword [esp + 0x1c0], esi
mov ecx, dword [esp + 0x27c]
mov esi, dword [esp + 0x26c]
mov edx, dword [esi + edi*4]
inc edi
neg edx
add edx, 0xff
cmp edx, ecx
cmovge ecx, edx
cmp edi, 0x27
jb 0x441db7
mov dword [esp + 0x27c], ecx
mov esi, dword [esp + 0x1c0]
mov edx, dword [esp + 0x27c]
mov edi, edx
shr edi, 0x1f
xor ecx, ecx
add edi, edx
movd xmm0, edx
pshufd xmm3, xmm0, 0
mov dword [esp + 0x1c0], esi
sar edi, 1
mov dword [esp + 0x294], 0xffffffff
movdqu xmmword [esp + 0x310], xmm3
movdqu xmmword [esp + 0x1d0], xmm1
mov dword [esp + 0x298], ecx
mov dword [esp + 0x29c], edx
mov dword [esp + 0x1c4], ebx
mov ebx, eax
mov esi, dword [esp + 0x270]
jmp 0x441e65
mov edx, dword [esp + 0x298]
mov ecx, dword [esp + 0x29c]
lea edi, [edx + ecx]
mov edx, edi
shr edx, 0x1f
add edi, edx
mov edx, dword [esp + 0x28c]
sar edi, 1
mov edx, dword [edx + 0x10]
mov dword [esp + 0x290], edx
cmp dword [esp + 0x27c], 0
jle 0x44437f
mov eax, edi
xor edx, edx
imul eax, esi
pxor xmm0, xmm0
test ebx, ebx
je 0x441fbb
movd xmm1, edi
movd xmm2, eax
pshufd xmm3, xmm1, 0
movdqa xmm1, xmm3
pshufd xmm2, xmm2, 0
psrlq xmm1, 0x20
mov dword [esp + 0x274], edi
movdqu xmmword [esp + 0x320], xmm1
movdqu xmmword [esp + 0x340], xmm2
movdqu xmmword [esp + 0x330], xmm3
movdqu xmmword [esp + 0x350], xmm0
mov dword [esp + 0x280], ebx
mov ebx, eax
mov dword [esp + 0x270], esi
mov esi, edx
mov edi, dword [esp + 0x26c]
movdqu xmm0, xmmword [edi + esi*4]
movdqu xmm1, xmmword [esp + 0x330]
movdqu xmmword [esp + 0x360], xmm0
pmuludq xmm1, xmm0
psrlq xmm0, 0x20
pmuludq xmm0, xmmword [esp + 0x320]
pand xmm1, xmmword [0x490060]
psllq xmm0, 0x20
por xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x340]
psubd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x310]
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x360]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x350]
movdqa xmm6, xmm5
movdqu xmmword [esp + esi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add esi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x350], xmm7
cmp esi, 0x24
jb 0x441ee5
jmp 0x4420eb
movd xmm1, edi
movd xmm2, eax
pshufd xmm3, xmm1, 0
movdqa xmm1, xmm3
pshufd xmm2, xmm2, 0
psrlq xmm1, 0x20
mov dword [esp + 0x274], edi
movdqu xmmword [esp + 0x370], xmm1
movdqu xmmword [esp + 0x390], xmm2
movdqu xmmword [esp + 0x380], xmm3
movdqu xmmword [esp + 0x350], xmm0
mov dword [esp + 0x280], ebx
mov ebx, eax
mov dword [esp + 0x270], esi
mov esi, edx
mov edi, dword [esp + 0x26c]
movdqu xmm0, xmmword [edi + esi*4]
movdqu xmm1, xmmword [esp + 0x380]
movdqu xmmword [esp + 0x3a0], xmm0
pmuludq xmm1, xmm0
psrlq xmm0, 0x20
pmuludq xmm0, xmmword [esp + 0x370]
pand xmm1, xmmword [0x490060]
psllq xmm0, 0x20
por xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x390]
psubd xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x310]
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x3a0]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x350]
movdqa xmm6, xmm5
movdqu xmmword [esp + esi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add esi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x350], xmm7
cmp esi, 0x24
jb 0x44201a
movdqa xmm0, xmm7
mov eax, ebx
mov edi, dword [esp + 0x274]
mov ebx, dword [esp + 0x280]
mov esi, dword [esp + 0x270]
mov dword [esp + 0x280], ebx
mov ecx, edi
mov ebx, dword [esp + 0x26c]
movdqa xmm1, xmm0
mov dword [esp + 0x270], esi
movdqa xmm2, xmm0
mov dword [esp + 0x278], eax
mov esi, dword [ebx + 0x90]
imul ecx, esi
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
neg ecx
movdqa xmm0, xmm2
add ecx, eax
movdqa xmm3, xmm2
mov eax, ecx
cdq
mov ecx, dword [esp + 0x27c]
idiv ecx
add esi, eax
mov edx, 0xff
cmp esi, 0xff
psrldq xmm0, 4
cmovge esi, edx
pcmpgtd xmm3, xmm0
mov eax, esi
pxor xmm2, xmm0
sar eax, 0x1f
pand xmm3, xmm2
mov ebx, dword [ebx + 0x94]
not eax
mov dword [esp + 0x274], edi
pxor xmm3, xmm0
imul edi, ebx
and eax, esi
movd esi, xmm3
neg edi
cmp eax, esi
mov dword [esp + 0xb10], eax
cmovge esi, eax
add edi, dword [esp + 0x278]
mov eax, edi
mov edi, 0xff
cdq
idiv ecx
add ebx, eax
cmp ebx, 0xff
mov eax, dword [esp + 0x278]
cmovge ebx, edi
mov edx, ebx
sar edx, 0x1f
not edx
and edx, ebx
mov ebx, dword [esp + 0x26c]
cmp edx, esi
mov dword [esp + 0xb14], edx
cmovge esi, edx
mov edi, dword [ebx + 0x98]
mov edx, dword [esp + 0x274]
imul edx, edi
sub eax, edx
cdq
idiv ecx
add edi, eax
mov ecx, 0xff
cmp edi, 0xff
mov ebx, dword [esp + 0x280]
cmovl ecx, edi
mov eax, ecx
sar eax, 0x1f
not eax
and eax, ecx
cmp eax, esi
mov edi, dword [esp + 0x274]
cmovge esi, eax
mov dword [esp + 0x2a4], esi
mov dword [esp + 0xb18], eax
mov esi, dword [esp + 0x270]
push dword [esp + 0x2a4]
push dword [esp + 0x288]
lea edx, [esp + 0xa88]
push edx
mov edx, dword [edx - 0x7f4]
push edx
mov ecx, dword [esp + 0x2a0]
mov ecx, dword [ecx + 0x129c]
mov dword [esp + 0x2b0], ecx
call dword [edx]
mov edx, dword [esp + 0x29c]
push dword [edx + 0x10]
push dword [edx + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x444185
mov eax, dword [esp + 0x28c]
call fcn.00444aa0
push 0
mov edx, dword [esp + 0x290]
push dword [edx + 0x10]
push dword [edx + 0xc]
call fcn.004334d0
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x280], ebx
mov edx, dword [eax + 0x10]
mov dword [edx + 0x12a0], ecx
mov edx, dword [eax + 0x10]
mov ecx, dword [esp + 0x2a0]
mov eax, dword [esp + 0x294]
mov ebx, dword [edx + 0x12ec]
add ebx, dword [edx + 0x12a0]
mov dword [edx + 0x129c], ecx
mov ecx, dword [esp + 0x288]
cmp ebx, ecx
mov edx, dword [esp + 0x29c]
cmovle eax, edi
mov dword [esp + 0x294], eax
lea eax, [edi - 1]
cmovle edx, eax
lea eax, [edi + 1]
mov ebx, dword [esp + 0x298]
cmovg ebx, eax
mov dword [esp + 0x298], ebx
mov dword [esp + 0x29c], edx
cmp ebx, edx
mov ebx, dword [esp + 0x280]
jle 0x441e3a
jmp 0x4424ab
mov edi, dword [esp + 0x1bc]
cmp eax, edi
jg 0x444551
mov ecx, dword [esp + 0xb1c]
mov dword [esp + 0xb1c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x44454c
add esp, 0xb24
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 1
jmp 0x441536
mov edi, 1
jmp 0x441662
mov edx, 1
jmp 0x441585
pxor xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
jmp 0x4414db
mov edi, 1
cmp dword [esp + 0x264], 0
ja 0x441457
jmp 0x44168f
xor eax, eax
mov dword [esp + 0x1bc], edi
xor esi, esi
mov ecx, dword [esp + 0x264]
mov ebx, dword [esp + 0x1c8]
jmp 0x441a5d
xor edx, edx
jmp 0x4418ac
cmp ebx, 4
jl 0x442488
mov ecx, dword [esp + 0x268]
lea ecx, [ecx + 4]
and ecx, 0xf
mov eax, ecx
neg eax
add eax, 0x10
shr eax, 2
test ecx, ecx
cmovne ecx, eax
lea edx, [ecx + 4]
cmp ebx, edx
jl 0x442488
mov edx, ebx
sub edx, ecx
and edx, 3
neg edx
add edx, ebx
test ecx, ecx
jbe 0x44244d
mov dword [esp + 0x1bc], edi
xor eax, eax
mov edi, dword [esp + 0x268]
mov dword [edi + eax*4 + 0x5354], 0
inc eax
cmp eax, ecx
jb 0x442436
mov edi, dword [esp + 0x1bc]
mov eax, dword [esp + 0x268]
movdqu xmmword [eax + ecx*4 + 0x5354], xmm1
add ecx, 4
cmp ecx, edx
jb 0x442454
cmp edx, ebx
jae 0x441927
mov eax, dword [esp + 0x268]
mov dword [eax + edx*4 + 0x5354], 0
inc edx
cmp edx, ebx
jb 0x442473
jmp 0x441927
xor edx, edx
jmp 0x442464
mov ebx, 1
jmp 0x4419a0
push edi
push dword [esp + 0x26c]
call fcn.004337b0
add esp, 8
jmp 0x441b27
mov dword [esp + 0x270], esi
mov eax, ebx
movdqu xmm2, xmmword [0x490060]
movdqu xmm3, xmmword [esp + 0x310]
movdqu xmm1, xmmword [esp + 0x1d0]
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
cmp dword [esp + 0x294], 0
jl 0x442aee
cmp edi, dword [esp + 0x294]
je 0x441ae8
cmp dword [esp + 0x27c], 0
jle 0x44292f
xor edi, edi
pxor xmm0, xmm0
test eax, eax
je 0x44263b
movd xmm4, dword [esp + 0x294]
pshufd xmm5, xmm4, 0
movdqa xmm4, xmm5
psrlq xmm4, 0x20
mov dword [esp + 0x1c0], esi
movdqu xmmword [esp + 0x230], xmm4
movdqu xmmword [esp + 0x220], xmm5
movdqu xmmword [esp + 0x200], xmm0
movdqu xmmword [esp + 0x310], xmm3
movdqu xmmword [esp + 0x1d0], xmm1
mov esi, dword [esp + 0x26c]
movdqu xmm0, xmmword [esi + edi*4]
movdqu xmm1, xmmword [esp + 0x1d0]
movdqu xmmword [esp + 0x240], xmm0
psubd xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x220]
pmuludq xmm0, xmm1
psrlq xmm1, 0x20
pmuludq xmm1, xmmword [esp + 0x230]
pand xmm0, xmmword [0x490060]
psllq xmm1, 0x20
por xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x310]
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x240]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x200]
movdqa xmm6, xmm5
movdqu xmmword [esp + edi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add edi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x200], xmm7
cmp edi, 0x24
jb 0x442565
jmp 0x44275e
movd xmm4, dword [esp + 0x294]
pshufd xmm5, xmm4, 0
movdqa xmm4, xmm5
psrlq xmm4, 0x20
mov dword [esp + 0x1c0], esi
movdqu xmmword [esp + 0x1f0], xmm4
movdqu xmmword [esp + 0x1e0], xmm5
movdqu xmmword [esp + 0x200], xmm0
movdqu xmmword [esp + 0x310], xmm3
movdqu xmmword [esp + 0x1d0], xmm1
mov esi, dword [esp + 0x26c]
movdqu xmm0, xmmword [esi + edi*4]
movdqu xmm1, xmmword [esp + 0x1d0]
movdqu xmmword [esp + 0x210], xmm0
psubd xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x1e0]
pmuludq xmm0, xmm1
psrlq xmm1, 0x20
pmuludq xmm1, xmmword [esp + 0x1f0]
pand xmm0, xmmword [0x490060]
psllq xmm1, 0x20
por xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x310]
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x210]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x200]
movdqa xmm6, xmm5
movdqu xmmword [esp + edi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add edi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x200], xmm7
cmp edi, 0x24
jb 0x44268d
movdqa xmm0, xmm7
mov esi, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x26c]
movdqa xmm1, xmm0
mov dword [esp + 0x1c4], ebx
movdqa xmm2, xmm0
mov ebx, dword [esp + 0x270]
mov eax, ebx
mov dword [esp + 0x1c0], esi
mov esi, dword [ecx + 0x90]
sub eax, esi
imul eax, dword [esp + 0x294]
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
cdq
mov edi, dword [esp + 0x27c]
movdqa xmm0, xmm2
idiv edi
add esi, eax
mov edx, 0xff
cmp esi, 0xff
movdqa xmm3, xmm2
psrldq xmm0, 4
cmovge esi, edx
pcmpgtd xmm3, xmm0
mov eax, esi
pxor xmm2, xmm0
sar eax, 0x1f
pand xmm3, xmm2
mov ecx, dword [ecx + 0x94]
not eax
pxor xmm3, xmm0
sub ebx, ecx
and eax, esi
movd esi, xmm3
imul ebx, dword [esp + 0x294]
cmp eax, esi
mov dword [esp + 0xb10], eax
cmovge esi, eax
mov eax, ebx
cdq
idiv edi
add ecx, eax
mov edx, 0xff
cmp ecx, 0xff
mov eax, dword [esp + 0x270]
cmovge ecx, edx
mov ebx, ecx
sar ebx, 0x1f
not ebx
and ebx, ecx
mov ecx, dword [esp + 0x26c]
cmp ebx, esi
mov dword [esp + 0xb14], ebx
cmovge esi, ebx
mov ebx, dword [ecx + 0x98]
sub eax, ebx
imul eax, dword [esp + 0x294]
cdq
idiv edi
add ebx, eax
mov edi, 0xff
cmp ebx, 0xff
cmovl edi, ebx
mov eax, edi
sar eax, 0x1f
not eax
and eax, edi
cmp eax, esi
mov ebx, dword [esp + 0x1c4]
cmovge esi, eax
mov dword [esp + 0x148], esi
mov dword [esp + 0xb18], eax
mov esi, dword [esp + 0x1c0]
push dword [esp + 0x148]
push dword [esp + 0x288]
lea eax, [esp + 0xa88]
push eax
mov edi, dword [eax - 0x7f4]
push edi
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x129c]
mov dword [eax - 0x93c], ecx
call dword [edi]
mov eax, edi
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x442916
mov eax, edi
call fcn.00444aa0
push 0
mov eax, edi
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.004334d0
mov ecx, eax
add esp, 0xc
mov edx, edi
mov eax, dword [edx + 0x10]
mov dword [eax + 0x12a0], ecx
mov edi, dword [edx + 0x10]
mov ecx, dword [esp + 0x144]
mov dword [edi + 0x129c], ecx
jmp 0x441ae8
mov eax, edi
push 0x4900f0
push dword [eax + 0xc]
call fcn.0041fef0
add esp, 8
push 0xffffffffffffffff
call fcn.0047356c
mov ecx, dword [esp + 0x26c]
pxor xmm1, xmm1
movdqu xmm0, xmmword [ecx]
movdqu xmm2, xmmword [ecx + 0x10]
movdqu xmm4, xmmword [ecx + 0x20]
movdqu xmm6, xmmword [ecx + 0x30]
movdqa xmm3, xmm0
movdqa xmm5, xmm2
movdqu xmmword [esp + 0xa80], xmm0
pcmpgtd xmm3, xmm1
pxor xmm0, xmm1
movdqa xmm7, xmm4
pand xmm3, xmm0
movdqa xmm0, xmm6
pxor xmm3, xmm1
movdqu xmmword [esp + 0xa90], xmm2
pcmpgtd xmm5, xmm3
pxor xmm2, xmm3
pand xmm5, xmm2
pxor xmm5, xmm3
movdqu xmmword [esp + 0xaa0], xmm4
pcmpgtd xmm7, xmm5
pxor xmm4, xmm5
pand xmm7, xmm4
pxor xmm7, xmm5
movdqu xmmword [esp + 0xab0], xmm6
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
movdqu xmm6, xmmword [ecx + 0x40]
movdqu xmm1, xmmword [ecx + 0x50]
movdqu xmm3, xmmword [ecx + 0x60]
movdqu xmm5, xmmword [ecx + 0x70]
pxor xmm0, xmm7
movdqa xmm2, xmm6
movdqu xmmword [esp + 0xac0], xmm6
pcmpgtd xmm2, xmm0
pxor xmm6, xmm0
movdqa xmm4, xmm1
pand xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmmword [esp + 0xad0], xmm1
pcmpgtd xmm4, xmm2
pxor xmm1, xmm2
pand xmm4, xmm1
pxor xmm4, xmm2
movdqa xmm2, xmm5
movdqu xmmword [esp + 0xae0], xmm3
pcmpgtd xmm0, xmm4
pxor xmm3, xmm4
pand xmm0, xmm3
pxor xmm0, xmm4
movdqu xmm1, xmmword [ecx + 0x80]
movdqu xmmword [esp + 0xaf0], xmm5
pcmpgtd xmm2, xmm0
pxor xmm5, xmm0
movdqa xmm3, xmm1
pand xmm2, xmm5
pxor xmm2, xmm0
movdqu xmmword [esp + 0xb00], xmm1
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm4, xmm3
movdqa xmm6, xmm3
psrldq xmm4, 8
pcmpgtd xmm6, xmm4
pxor xmm3, xmm4
pand xmm6, xmm3
pxor xmm6, xmm4
movdqa xmm7, xmm6
movdqa xmm0, xmm6
psrldq xmm7, 4
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
pxor xmm0, xmm7
mov edx, dword [ecx + 0x90]
mov eax, dword [ecx + 0x94]
mov edi, dword [ecx + 0x98]
movd ecx, xmm0
cmp edx, ecx
mov dword [esp + 0xb10], edx
cmovge ecx, edx
cmp eax, ecx
mov dword [esp + 0xb14], eax
cmovge ecx, eax
cmp edi, ecx
mov dword [esp + 0xb18], edi
cmovge ecx, edi
mov dword [esp + 0x148], ecx
jmp 0x442899
mov edx, dword [esp + 0x270]
movdqa xmm1, xmm3
psrlq xmm1, 0x20
mov edi, eax
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1a4], 0xffffffff
lea ecx, [edx + 0xff]
shr ecx, 0x1f
movdqu xmmword [esp + 0x2b0], xmm1
movdqu xmmword [esp + 0x310], xmm3
mov dword [esp + 0x1c4], ebx
mov esi, dword [esp + 0x27c]
lea edx, [edx + ecx + 0xff]
sar edx, 1
mov ecx, 0xff
mov dword [esp + 0x1a8], ecx
mov ebx, edx
jmp 0x442b67
mov edx, dword [esp + 0x270]
lea ebx, [edx + ecx]
mov ecx, ebx
shr ecx, 0x1f
add ebx, ecx
sar ebx, 1
test esi, esi
jle 0x4441b2
mov ecx, ebx
xor eax, eax
imul ecx, esi
pxor xmm0, xmm0
test edi, edi
je 0x442c8e
movd xmm1, ecx
pshufd xmm1, xmm1, 0
mov dword [esp + 0x280], edi
movdqu xmmword [esp + 0x2f0], xmm1
movdqu xmmword [esp + 0x2d0], xmm0
mov dword [esp + 0x14c], ebx
mov ebx, ecx
mov dword [esp + 0x27c], esi
mov esi, eax
mov edi, dword [esp + 0x26c]
movdqu xmm2, xmmword [edi + esi*4]
movdqu xmm1, xmmword [esp + 0x310]
movdqa xmm3, xmm1
movdqu xmmword [esp + 0x300], xmm2
pmuludq xmm3, xmm2
psrlq xmm2, 0x20
pmuludq xmm2, xmmword [esp + 0x2b0]
pand xmm3, xmmword [0x490060]
psllq xmm2, 0x20
movdqu xmm0, xmmword [esp + 0x2f0]
por xmm3, xmm2
psubd xmm0, xmm3
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x300]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x2d0]
movdqa xmm6, xmm5
movdqu xmmword [esp + esi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add esi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x2d0], xmm7
cmp esi, 0x24
jb 0x442bbd
jmp 0x442d95
movd xmm1, ecx
pshufd xmm1, xmm1, 0
mov dword [esp + 0x280], edi
movdqu xmmword [esp + 0x2c0], xmm1
movdqu xmmword [esp + 0x2d0], xmm0
mov dword [esp + 0x14c], ebx
mov ebx, ecx
mov dword [esp + 0x27c], esi
mov esi, eax
mov edi, dword [esp + 0x26c]
movdqu xmm1, xmmword [esp + 0x310]
movdqu xmm2, xmmword [edi + esi*4]
movdqa xmm3, xmm1
movdqu xmmword [esp + 0x2e0], xmm2
pmuludq xmm3, xmm2
psrlq xmm2, 0x20
pmuludq xmm2, xmmword [esp + 0x2b0]
pand xmm3, xmmword [0x490060]
psllq xmm2, 0x20
movdqu xmm0, xmmword [esp + 0x2c0]
por xmm3, xmm2
psubd xmm0, xmm3
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x2e0]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x2d0]
movdqa xmm6, xmm5
movdqu xmmword [esp + esi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add esi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x2d0], xmm7
cmp esi, 0x24
jb 0x442cc9
movdqa xmm0, xmm7
mov ecx, ebx
mov ebx, dword [esp + 0x14c]
mov esi, dword [esp + 0x27c]
mov edi, dword [esp + 0x280]
mov dword [esp + 0x14c], ebx
mov eax, esi
mov ebx, dword [esp + 0x26c]
movdqa xmm1, xmm0
mov dword [esp + 0x280], edi
movdqa xmm2, xmm0
psrldq xmm1, 8
mov edi, dword [ebx + 0x90]
pcmpgtd xmm2, xmm1
imul eax, edi
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
neg eax
pcmpgtd xmm3, xmm0
add eax, ecx
pxor xmm2, xmm0
cdq
idiv esi
add edi, eax
mov edx, 0xff
cmp edi, 0xff
pand xmm3, xmm2
pxor xmm3, xmm0
cmovge edi, edx
mov eax, edi
sar eax, 0x1f
not eax
and eax, edi
movd edi, xmm3
cmp eax, edi
mov dword [esp + 0xb10], eax
cmovge edi, eax
mov eax, esi
mov ebx, dword [ebx + 0x94]
imul eax, ebx
neg eax
add eax, ecx
cdq
idiv esi
add ebx, eax
cmp ebx, 0xff
mov dword [esp + 0x1a0], ecx
mov ecx, 0xff
cmovge ebx, ecx
mov eax, ebx
sar eax, 0x1f
mov ecx, dword [esp + 0x26c]
not eax
and eax, ebx
mov ebx, esi
cmp eax, edi
mov ecx, dword [ecx + 0x98]
mov dword [esp + 0xb14], eax
cmovge edi, eax
imul ebx, ecx
mov eax, dword [esp + 0x1a0]
sub eax, ebx
cdq
idiv esi
add ecx, eax
mov edx, 0xff
cmp ecx, 0xff
mov ebx, dword [esp + 0x14c]
cmovge ecx, edx
mov eax, ecx
sar eax, 0x1f
not eax
and eax, ecx
cmp eax, edi
mov dword [esp + 0xb18], eax
cmovge edi, eax
mov dword [esp + 0x1b0], edi
mov edi, dword [esp + 0x280]
push dword [esp + 0x1b0]
push dword [esp + 0x288]
lea ecx, [esp + 0xa88]
push ecx
mov eax, dword [ecx - 0x7f4]
push eax
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x129c]
mov dword [esp + 0x1bc], ecx
call dword [eax]
mov ecx, dword [esp + 0x29c]
push dword [ecx + 0x10]
push dword [ecx + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x444185
mov eax, dword [esp + 0x28c]
call fcn.00444aa0
push 0
mov ecx, dword [esp + 0x290]
push dword [ecx + 0x10]
push dword [ecx + 0xc]
call fcn.004334d0
add esp, 0xc
mov dword [esp + 0x27c], esi
lea edx, [ebx - 1]
mov esi, dword [esp + 0x28c]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 0x12a0], eax
mov esi, dword [esi + 0x10]
mov ecx, dword [esp + 0x1ac]
mov eax, dword [esi + 0x12ec]
add eax, dword [esi + 0x12a0]
mov dword [esi + 0x129c], ecx
mov esi, dword [esp + 0x288]
cmp eax, esi
mov ecx, dword [esp + 0x1a4]
cmovle ecx, ebx
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esp + 0x1a8]
cmovle ecx, edx
lea edx, [ebx + 1]
mov esi, dword [esp + 0x270]
cmovg esi, edx
mov dword [esp + 0x270], esi
mov dword [esp + 0x1a8], ecx
cmp esi, ecx
mov esi, dword [esp + 0x27c]
jle 0x442b54
mov dword [esp + 0x27c], esi
mov edx, ebx
movdqu xmm1, xmmword [esp + 0x2b0]
mov eax, edi
movdqu xmm3, xmmword [esp + 0x310]
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
movdqu xmm2, xmmword [0x490060]
cmp dword [esp + 0x1a4], 0
jl 0x4435c6
cmp edx, dword [esp + 0x1a4]
je 0x441ae8
cmp dword [esp + 0x27c], 0
jle 0x443407
xor edi, edi
pxor xmm0, xmm0
test eax, eax
je 0x44313e
movd xmm4, dword [esp + 0x1a4]
pshufd xmm4, xmm4, 0
mov dword [esp + 0x1c0], esi
movdqu xmmword [esp + 0x180], xmm4
movdqu xmmword [esp + 0x160], xmm0
movdqu xmmword [esp + 0x2b0], xmm1
movdqu xmmword [esp + 0x310], xmm3
mov esi, dword [esp + 0x26c]
movdqu xmm1, xmmword [esi + edi*4]
movdqu xmm2, xmmword [esp + 0x180]
movdqu xmmword [esp + 0x190], xmm1
psubd xmm2, xmm1
movdqu xmm1, xmmword [esp + 0x310]
movdqa xmm0, xmm1
pmuludq xmm0, xmm2
psrlq xmm2, 0x20
pmuludq xmm2, xmmword [esp + 0x2b0]
pand xmm0, xmmword [0x490060]
psllq xmm2, 0x20
por xmm0, xmm2
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x190]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x160]
movdqa xmm6, xmm5
movdqu xmmword [esp + edi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add edi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x160], xmm7
cmp edi, 0x24
jb 0x44306d
jmp 0x44324a
movd xmm4, dword [esp + 0x1a4]
pshufd xmm4, xmm4, 0
mov dword [esp + 0x1c0], esi
movdqu xmmword [esp + 0x150], xmm4
movdqu xmmword [esp + 0x160], xmm0
movdqu xmmword [esp + 0x2b0], xmm1
movdqu xmmword [esp + 0x310], xmm3
mov esi, dword [esp + 0x26c]
movdqu xmm1, xmmword [esi + edi*4]
movdqu xmm2, xmmword [esp + 0x150]
movdqu xmmword [esp + 0x170], xmm1
psubd xmm2, xmm1
movdqu xmm1, xmmword [esp + 0x310]
movdqa xmm0, xmm1
pmuludq xmm0, xmm2
psrlq xmm2, 0x20
pmuludq xmm2, xmmword [esp + 0x2b0]
pand xmm0, xmmword [0x490060]
psllq xmm2, 0x20
por xmm0, xmm2
call fcn.0044d860
movdqu xmm3, xmmword [esp + 0x170]
paddd xmm3, xmm0
pxor xmm4, xmm4
movdqu xmm1, xmmword [0x490070]
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm1
pxor xmm1, xmm3
pand xmm2, xmm1
pxor xmm3, xmm2
movdqa xmm5, xmm3
pxor xmm3, xmm4
pcmpgtd xmm5, xmm4
pand xmm5, xmm3
pxor xmm5, xmm4
movdqu xmm7, xmmword [esp + 0x160]
movdqa xmm6, xmm5
movdqu xmmword [esp + edi*4 + 0xa80], xmm5
pcmpgtd xmm6, xmm7
pxor xmm5, xmm7
add edi, 4
pand xmm6, xmm5
pxor xmm7, xmm6
movdqu xmmword [esp + 0x160], xmm7
cmp edi, 0x24
jb 0x44317e
movdqa xmm0, xmm7
mov esi, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x26c]
movdqa xmm1, xmm0
mov edi, dword [esp + 0x27c]
mov eax, edi
mov dword [esp + 0x1c0], esi
movdqa xmm2, xmm0
mov esi, dword [ecx + 0x90]
imul eax, esi
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
mov dword [esp + 0x1c4], ebx
neg eax
mov ebx, dword [esp + 0x1a4]
movdqa xmm0, xmm2
imul ebx, edi
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
add eax, ebx
cdq
idiv edi
add esi, eax
mov edx, 0xff
cmp esi, 0xff
mov ecx, dword [ecx + 0x94]
cmovge esi, edx
mov eax, esi
sar eax, 0x1f
not eax
and eax, esi
movd esi, xmm3
cmp eax, esi
mov dword [esp + 0xb10], eax
cmovge esi, eax
mov eax, edi
imul eax, ecx
neg eax
add eax, ebx
cdq
idiv edi
add ecx, eax
cmp ecx, 0xff
mov dword [esp + 0x1a4], ebx
mov ebx, 0xff
cmovge ecx, ebx
mov eax, ecx
sar eax, 0x1f
mov edx, dword [esp + 0x26c]
not eax
and eax, ecx
mov ecx, edi
cmp eax, esi
mov ebx, dword [edx + 0x98]
mov dword [esp + 0xb14], eax
cmovge esi, eax
imul ecx, ebx
mov eax, dword [esp + 0x1a4]
sub eax, ecx
cdq
idiv edi
add ebx, eax
mov edi, 0xff
cmp ebx, 0xff
cmovl edi, ebx
mov eax, edi
sar eax, 0x1f
not eax
and eax, edi
cmp eax, esi
mov ebx, dword [esp + 0x1c4]
cmovge esi, eax
mov dword [esp + 0x124], esi
mov dword [esp + 0xb18], eax
mov esi, dword [esp + 0x1c0]
push dword [esp + 0x124]
push dword [esp + 0x288]
lea eax, [esp + 0xa88]
push eax
mov edi, dword [eax - 0x7f4]
push edi
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x129c]
mov dword [eax - 0x960], ecx
call dword [edi]
mov eax, edi
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x442916
mov eax, edi
call fcn.00444aa0
push 0
mov eax, edi
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.004334d0
mov ecx, eax
add esp, 0xc
mov edx, edi
mov eax, dword [edx + 0x10]
mov dword [eax + 0x12a0], ecx
mov edi, dword [edx + 0x10]
mov ecx, dword [esp + 0x120]
mov dword [edi + 0x129c], ecx
jmp 0x441ae8
mov ecx, dword [esp + 0x26c]
pxor xmm1, xmm1
movdqu xmm0, xmmword [ecx]
movdqu xmm2, xmmword [ecx + 0x10]
movdqu xmm4, xmmword [ecx + 0x20]
movdqu xmm6, xmmword [ecx + 0x30]
movdqa xmm3, xmm0
movdqa xmm5, xmm2
movdqu xmmword [esp + 0xa80], xmm0
pcmpgtd xmm3, xmm1
pxor xmm0, xmm1
movdqa xmm7, xmm4
pand xmm3, xmm0
movdqa xmm0, xmm6
pxor xmm3, xmm1
movdqu xmmword [esp + 0xa90], xmm2
pcmpgtd xmm5, xmm3
pxor xmm2, xmm3
pand xmm5, xmm2
pxor xmm5, xmm3
movdqu xmmword [esp + 0xaa0], xmm4
pcmpgtd xmm7, xmm5
pxor xmm4, xmm5
pand xmm7, xmm4
pxor xmm7, xmm5
movdqu xmmword [esp + 0xab0], xmm6
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
movdqu xmm6, xmmword [ecx + 0x40]
movdqu xmm1, xmmword [ecx + 0x50]
movdqu xmm3, xmmword [ecx + 0x60]
movdqu xmm5, xmmword [ecx + 0x70]
pxor xmm0, xmm7
movdqa xmm2, xmm6
movdqu xmmword [esp + 0xac0], xmm6
pcmpgtd xmm2, xmm0
pxor xmm6, xmm0
movdqa xmm4, xmm1
pand xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmmword [esp + 0xad0], xmm1
pcmpgtd xmm4, xmm2
pxor xmm1, xmm2
pand xmm4, xmm1
pxor xmm4, xmm2
movdqa xmm2, xmm5
movdqu xmmword [esp + 0xae0], xmm3
pcmpgtd xmm0, xmm4
pxor xmm3, xmm4
pand xmm0, xmm3
pxor xmm0, xmm4
movdqu xmm1, xmmword [ecx + 0x80]
movdqu xmmword [esp + 0xaf0], xmm5
pcmpgtd xmm2, xmm0
pxor xmm5, xmm0
movdqa xmm3, xmm1
pand xmm2, xmm5
pxor xmm2, xmm0
movdqu xmmword [esp + 0xb00], xmm1
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm4, xmm3
movdqa xmm6, xmm3
psrldq xmm4, 8
pcmpgtd xmm6, xmm4
pxor xmm3, xmm4
pand xmm6, xmm3
pxor xmm6, xmm4
movdqa xmm7, xmm6
movdqa xmm0, xmm6
psrldq xmm7, 4
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
pxor xmm0, xmm7
mov edx, dword [ecx + 0x90]
mov eax, dword [ecx + 0x94]
mov edi, dword [ecx + 0x98]
movd ecx, xmm0
cmp edx, ecx
mov dword [esp + 0xb10], edx
cmovge ecx, edx
cmp eax, ecx
mov dword [esp + 0xb14], eax
cmovge ecx, eax
cmp edi, ecx
mov dword [esp + 0xb18], edi
cmovge ecx, edi
mov dword [esp + 0x124], ecx
jmp 0x443386
mov eax, dword [esp + 0x28c]
mov edx, dword [eax + 0x10]
mov eax, 0x400
mov dword [esp + 0x128], edx
mov ecx, dword [edx + 0x12ac]
mov edi, ecx
mov dword [esp + 0x12c], ecx
cmp ecx, 0x200
jg 0x443c60
mov edi, 0x200
mov dword [esp + 0x138], edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x130], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c0], esi
movdqu xmm0, xmmword [0x490070]
mov esi, dword [esp + 0x12c]
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0x284]
movdqu xmm4, xmmword [esp + 0xa80]
movdqu xmm5, xmmword [esp + 0xa90]
lea eax, [esi + edi]
sar eax, 1
mov dword [esp + 0x134], eax
sub eax, dword [esp + 0x130]
movdqu xmm3, xmmword [ecx]
movdqu xmm6, xmmword [ecx + 0x10]
movd xmm7, eax
pshufd xmm1, xmm7, 0
movdqa xmm7, xmm0
paddd xmm4, xmm1
paddd xmm5, xmm1
movdqa xmm2, xmm4
pcmpgtd xmm4, xmm3
pxor xmm2, xmm3
pand xmm4, xmm2
pxor xmm4, xmm3
pxor xmm2, xmm2
movdqa xmm3, xmm4
pxor xmm7, xmm4
pcmpgtd xmm3, xmm0
pand xmm3, xmm7
movdqa xmm7, xmm5
pxor xmm3, xmm4
movdqa xmm4, xmm2
pxor xmm7, xmm6
pcmpgtd xmm5, xmm6
movdqu xmmword [esp + 0x90], xmm3
pxor xmm4, xmm3
pcmpgtd xmm3, xmm2
pand xmm5, xmm7
pand xmm3, xmm4
pxor xmm5, xmm6
pxor xmm3, xmm2
movdqa xmm6, xmm0
movdqa xmm2, xmm5
pxor xmm6, xmm5
pcmpgtd xmm2, xmm0
pand xmm2, xmm6
pxor xmm2, xmm5
movdqa xmm4, xmm2
movdqu xmmword [esp + 0xa0], xmm2
pxor xmm4, xmm3
movdqu xmm7, xmmword [esp + 0xac0]
pcmpgtd xmm2, xmm3
movdqu xmm5, xmmword [ecx + 0x40]
movdqu xmm6, xmmword [ecx + 0x30]
pand xmm2, xmm4
paddd xmm7, xmm1
movdqu xmm4, xmmword [esp + 0xab0]
pxor xmm2, xmm3
movdqa xmm3, xmm7
paddd xmm4, xmm1
pxor xmm3, xmm5
pcmpgtd xmm7, xmm5
movdqu xmmword [esp + 0xb0], xmm3
movdqa xmm3, xmm4
pxor xmm3, xmm6
pcmpgtd xmm4, xmm6
pand xmm4, xmm3
movdqa xmm3, xmm0
movdqu xmmword [esp + 0xc0], xmm7
pxor xmm4, xmm6
movdqu xmm7, xmmword [esp + 0xaa0]
movdqa xmm5, xmm4
movdqu xmm6, xmmword [ecx + 0x20]
paddd xmm7, xmm1
pxor xmm3, xmm4
movdqu xmmword [esp + 0x80], xmm1
movdqa xmm1, xmm7
pxor xmm1, xmm6
pcmpgtd xmm7, xmm6
pand xmm7, xmm1
movdqa xmm1, xmm0
pxor xmm7, xmm6
pcmpgtd xmm5, xmm0
movdqa xmm6, xmm7
pxor xmm1, xmm7
pcmpgtd xmm6, xmm0
pand xmm5, xmm3
pand xmm6, xmm1
pxor xmm5, xmm4
pxor xmm6, xmm7
movdqa xmm3, xmm5
movdqa xmm7, xmm6
movdqu xmmword [esp + 0xd0], xmm6
pxor xmm7, xmm2
pcmpgtd xmm6, xmm2
pand xmm6, xmm7
pxor xmm6, xmm2
movdqa xmm2, xmm0
movdqu xmmword [esp + 0xe0], xmm5
pxor xmm3, xmm6
pcmpgtd xmm5, xmm6
movdqu xmm4, xmmword [ecx + 0x40]
pand xmm5, xmm3
movdqu xmm3, xmmword [esp + 0xc0]
pxor xmm5, xmm6
pand xmm3, xmmword [esp + 0xb0]
pxor xmm3, xmm4
movdqa xmm6, xmm3
pxor xmm2, xmm3
pcmpgtd xmm6, xmm0
pand xmm6, xmm2
pxor xmm6, xmm3
movdqa xmm4, xmm6
movdqu xmmword [esp + 0xf0], xmm6
pxor xmm4, xmm5
pcmpgtd xmm6, xmm5
movdqu xmm3, xmmword [ecx + 0x70]
movdqu xmm2, xmmword [ecx + 0x60]
movdqu xmm7, xmmword [esp + 0xaf0]
pand xmm6, xmm4
movdqu xmm4, xmmword [esp + 0x80]
pxor xmm6, xmm5
paddd xmm7, xmm4
movdqa xmm5, xmm7
pcmpgtd xmm7, xmm3
movdqu xmmword [esp + 0x110], xmm7
pxor xmm5, xmm3
movdqu xmm7, xmmword [esp + 0xae0]
paddd xmm7, xmm4
movdqa xmm1, xmm7
pcmpgtd xmm7, xmm2
pxor xmm1, xmm2
pand xmm7, xmm1
movdqu xmm1, xmmword [esp + 0xad0]
pxor xmm7, xmm2
movdqu xmm2, xmmword [ecx + 0x50]
paddd xmm1, xmm4
movdqa xmm3, xmm7
movdqa xmm4, xmm1
pcmpgtd xmm1, xmm2
pxor xmm4, xmm2
pcmpgtd xmm3, xmm0
pand xmm1, xmm4
pxor xmm1, xmm2
movdqa xmm2, xmm0
movdqa xmm4, xmm1
pxor xmm2, xmm1
pcmpgtd xmm4, xmm0
pand xmm4, xmm2
movdqu xmmword [esp + 0x100], xmm5
movdqa xmm5, xmm0
pxor xmm4, xmm1
pxor xmm5, xmm7
movdqa xmm1, xmm4
movdqa xmm2, xmm4
pxor xmm1, xmm6
pcmpgtd xmm2, xmm6
pand xmm3, xmm5
pand xmm2, xmm1
pxor xmm3, xmm7
pxor xmm2, xmm6
movdqa xmm6, xmm3
movdqa xmm7, xmm3
pxor xmm6, xmm2
pcmpgtd xmm7, xmm2
pand xmm7, xmm6
movdqa xmm1, xmm0
movdqu xmm5, xmmword [ecx + 0x70]
pxor xmm7, xmm2
movdqu xmm2, xmmword [esp + 0x110]
pand xmm2, xmmword [esp + 0x100]
pxor xmm2, xmm5
movdqa xmm6, xmm2
pxor xmm1, xmm2
pcmpgtd xmm6, xmm0
pand xmm6, xmm1
pxor xmm6, xmm2
movdqa xmm5, xmm6
movdqa xmm2, xmm6
pxor xmm5, xmm7
pcmpgtd xmm2, xmm7
pand xmm2, xmm5
movdqu xmm5, xmmword [esp + 0x80]
pxor xmm2, xmm7
movdqu xmm1, xmmword [ecx + 0x80]
paddd xmm5, xmmword [esp + 0xb00]
movdqa xmm7, xmm5
pcmpgtd xmm5, xmm1
pxor xmm7, xmm1
pand xmm5, xmm7
pxor xmm5, xmm1
movdqa xmm1, xmm0
movdqa xmm7, xmm5
pxor xmm1, xmm5
pcmpgtd xmm7, xmm0
pand xmm7, xmm1
pxor xmm7, xmm5
movdqa xmm5, xmm7
movdqa xmm1, xmm7
pxor xmm5, xmm2
pcmpgtd xmm1, xmm2
pand xmm1, xmm5
pxor xmm1, xmm2
movdqa xmm5, xmm1
movdqa xmm2, xmm1
psrldq xmm5, 8
pxor xmm2, xmm5
pcmpgtd xmm1, xmm5
pand xmm1, xmm2
pxor xmm1, xmm5
movdqa xmm5, xmm1
movdqa xmm2, xmm1
mov ebx, dword [esp + 0xb18]
mov edx, dword [esp + 0xb14]
add ebx, eax
psrldq xmm5, 4
add edx, eax
add eax, dword [esp + 0xb10]
pxor xmm2, xmm5
mov dword [esp + 0x140], ebx
pcmpgtd xmm1, xmm5
mov edi, dword [ecx + 0x98]
pand xmm1, xmm2
mov ebx, dword [ecx + 0x94]
pxor xmm1, xmm5
mov ecx, dword [ecx + 0x90]
cmp eax, ecx
movd esi, xmm1
movdqu xmm1, xmmword [esp + 0x90]
movdqu xmmword [esp + 0x450], xmm1
cmovge ecx, eax
mov eax, 0xff
cmp ecx, 0xff
movdqu xmm1, xmmword [esp + 0xa0]
cmovge ecx, eax
cmp ecx, esi
movdqu xmmword [esp + 0x460], xmm1
cmovge esi, ecx
cmp edx, ebx
movdqu xmm2, xmmword [esp + 0xd0]
cmovge ebx, edx
cmp ebx, 0xff
mov edx, dword [esp + 0x140]
cmovge ebx, eax
cmp ebx, esi
movdqu xmm5, xmmword [esp + 0xe0]
cmovge esi, ebx
cmp edx, edi
movdqu xmm1, xmmword [esp + 0xf0]
cmovge edi, edx
cmp edi, 0xff
movdqu xmmword [esp + 0x470], xmm2
cmovge edi, eax
mov eax, dword [esp + 0x128]
cmp edi, esi
movdqu xmmword [esp + 0x480], xmm5
cmovge esi, edi
mov edx, dword [eax + 0x129c]
mov dword [esp + 0x13c], edx
movdqu xmmword [esp + 0x490], xmm1
movdqu xmmword [esp + 0x4a0], xmm4
movdqu xmmword [esp + 0x4b0], xmm3
movdqu xmmword [esp + 0x4c0], xmm6
movdqu xmmword [esp + 0x4d0], xmm7
mov dword [esp + 0x4e0], ecx
mov dword [esp + 0x4e4], ebx
mov dword [esp + 0x4e8], edi
push esi
push dword [esp + 0x288]
lea ecx, [esp + 0x458]
push ecx
mov ebx, dword [ecx - 0x1c4]
push ebx
call dword [ebx]
mov eax, ebx
movdqu xmm0, xmmword [0x490070]
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00436650
movdqu xmm0, xmmword [0x490070]
add esp, 0x18
test eax, eax
jne 0x44419e
mov eax, ebx
call fcn.00444aa0
push 0
mov eax, ebx
movdqu xmm0, xmmword [0x490070]
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.004334d0
movdqu xmm0, xmmword [0x490070]
mov ecx, eax
add esp, 0xc
mov edx, ebx
mov eax, dword [edx + 0x10]
mov dword [eax + 0x12a0], ecx
mov ebx, dword [edx + 0x10]
mov ecx, dword [esp + 0x13c]
mov edx, dword [ebx + 0x12a0]
mov dword [ebx + 0x129c], ecx
test edx, edx
je 0x443c05
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x12ec]
add ecx, edx
cmp ecx, dword [esp + 0x288]
jl 0x443c05
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x400
cmove ecx, edx
lea eax, [edx + 1]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x7c], ecx
jmp 0x443c1a
mov edx, dword [esp + 0x134]
mov dword [esp + 0x7c], edx
lea eax, [edx - 1]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x138]
cmp eax, dword [esp + 0x12c]
jl 0x443c40
mov eax, dword [esp + 0x28c]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x128], edx
jmp 0x443628
mov edi, dword [esp + 0x134]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x130]
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
cmp eax, edi
je 0x441ae8
sub eax, ecx
mov dword [esp + 0x1c4], ebx
mov ebx, dword [esp + 0x284]
movdqu xmm2, xmmword [esp + 0xa80]
movd xmm0, eax
pshufd xmm1, xmm0, 0
movdqu xmm7, xmmword [ebx]
movdqu xmm6, xmmword [ebx + 0x10]
paddd xmm2, xmm1
movdqa xmm4, xmm2
pcmpgtd xmm2, xmm7
pxor xmm4, xmm7
pand xmm2, xmm4
movdqu xmm0, xmmword [0x490070]
pxor xmm2, xmm7
movdqa xmm3, xmm0
movdqa xmm4, xmm2
pxor xmm3, xmm2
pcmpgtd xmm4, xmm0
pand xmm4, xmm3
pxor xmm7, xmm7
pxor xmm4, xmm2
movdqu xmm5, xmmword [esp + 0xa90]
movdqa xmm2, xmm7
movdqu xmmword [esp + 0x20], xmm4
pxor xmm2, xmm4
pcmpgtd xmm4, xmm7
paddd xmm5, xmm1
pand xmm4, xmm2
movdqa xmm2, xmm5
pxor xmm2, xmm6
pcmpgtd xmm5, xmm6
pand xmm5, xmm2
pxor xmm4, xmm7
pxor xmm5, xmm6
movdqa xmm6, xmm0
movdqa xmm2, xmm5
pxor xmm6, xmm5
pcmpgtd xmm2, xmm0
pand xmm2, xmm6
pxor xmm2, xmm5
movdqa xmm5, xmm2
movdqu xmmword [esp + 0x30], xmm2
pxor xmm5, xmm4
pcmpgtd xmm2, xmm4
pand xmm2, xmm5
pxor xmm2, xmm4
movdqu xmm4, xmmword [esp + 0xac0]
movdqu xmm3, xmmword [ebx + 0x40]
movdqu xmm5, xmmword [ebx + 0x30]
paddd xmm4, xmm1
movdqa xmm6, xmm4
pcmpgtd xmm4, xmm3
pxor xmm6, xmm3
movdqu xmm3, xmmword [esp + 0xab0]
pand xmm4, xmm6
movdqu xmm7, xmmword [esp + 0xaa0]
paddd xmm3, xmm1
movdqu xmmword [esp + 0x10], xmm1
paddd xmm7, xmm1
movdqa xmm1, xmm3
pcmpgtd xmm3, xmm5
pxor xmm1, xmm5
pand xmm3, xmm1
movdqa xmm1, xmm0
pxor xmm3, xmm5
movdqa xmm5, xmm7
movdqa xmm6, xmm3
pxor xmm1, xmm3
pcmpgtd xmm6, xmm0
pand xmm6, xmm1
movdqu xmm1, xmmword [ebx + 0x20]
pxor xmm5, xmm1
pcmpgtd xmm7, xmm1
pand xmm7, xmm5
pxor xmm6, xmm3
pxor xmm7, xmm1
movdqa xmm1, xmm0
movdqa xmm5, xmm7
pxor xmm1, xmm7
pcmpgtd xmm5, xmm0
pand xmm5, xmm1
pxor xmm5, xmm7
movdqa xmm7, xmm5
movdqu xmmword [esp + 0x40], xmm5
pxor xmm7, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm7
movdqu xmm3, xmmword [ebx + 0x40]
pxor xmm5, xmm2
movdqa xmm2, xmm6
movdqu xmmword [esp + 0x50], xmm6
pxor xmm2, xmm5
pcmpgtd xmm6, xmm5
pxor xmm4, xmm3
pand xmm6, xmm2
movdqa xmm2, xmm0
pxor xmm6, xmm5
movdqa xmm5, xmm4
pxor xmm2, xmm4
pcmpgtd xmm5, xmm0
pand xmm5, xmm2
pxor xmm5, xmm4
movdqa xmm4, xmm5
movdqu xmmword [esp + 0x60], xmm5
pxor xmm4, xmm6
pcmpgtd xmm5, xmm6
pand xmm5, xmm4
movdqu xmm4, xmmword [esp + 0x10]
pxor xmm5, xmm6
movdqu xmm6, xmmword [esp + 0xaf0]
movdqu xmm2, xmmword [ebx + 0x70]
paddd xmm6, xmm4
movdqa xmm3, xmm6
pcmpgtd xmm6, xmm2
pxor xmm3, xmm2
pand xmm6, xmm3
movdqu xmm3, xmmword [esp + 0xae0]
movdqu xmm2, xmmword [ebx + 0x60]
paddd xmm3, xmm4
movdqa xmm1, xmm3
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
movdqu xmm7, xmmword [esp + 0xad0]
pxor xmm3, xmm2
paddd xmm7, xmm4
movdqa xmm4, xmm0
movdqa xmm2, xmm3
pxor xmm4, xmm3
pcmpgtd xmm2, xmm0
movdqa xmm1, xmm7
pand xmm2, xmm4
movdqu xmm4, xmmword [ebx + 0x50]
pxor xmm1, xmm4
pcmpgtd xmm7, xmm4
pand xmm7, xmm1
movdqa xmm1, xmm0
pxor xmm7, xmm4
pxor xmm2, xmm3
movdqa xmm4, xmm7
pxor xmm1, xmm7
pcmpgtd xmm4, xmm0
movdqa xmm3, xmm0
pand xmm4, xmm1
pxor xmm4, xmm7
movdqa xmm1, xmm4
movdqa xmm7, xmm4
pxor xmm1, xmm5
pcmpgtd xmm7, xmm5
pand xmm7, xmm1
movdqa xmm1, xmm2
pxor xmm7, xmm5
movdqa xmm5, xmm2
pxor xmm5, xmm7
pcmpgtd xmm1, xmm7
pand xmm1, xmm5
pxor xmm1, xmm7
movdqu xmm7, xmmword [ebx + 0x70]
pxor xmm6, xmm7
movdqa xmm5, xmm6
pxor xmm3, xmm6
pcmpgtd xmm5, xmm0
pand xmm5, xmm3
pxor xmm5, xmm6
movdqa xmm6, xmm5
movdqa xmm7, xmm5
pxor xmm6, xmm1
pcmpgtd xmm7, xmm1
movdqu xmm3, xmmword [esp + 0x10]
pand xmm7, xmm6
movdqu xmm6, xmmword [ebx + 0x80]
paddd xmm3, xmmword [esp + 0xb00]
pxor xmm7, xmm1
movdqa xmm1, xmm3
pcmpgtd xmm3, xmm6
pxor xmm1, xmm6
pand xmm3, xmm1
movdqa xmm1, xmm0
pxor xmm3, xmm6
movdqa xmm6, xmm3
pxor xmm1, xmm3
pcmpgtd xmm6, xmm0
pand xmm6, xmm1
pxor xmm6, xmm3
movdqa xmm3, xmm6
movdqa xmm0, xmm6
pxor xmm3, xmm7
pcmpgtd xmm0, xmm7
pand xmm0, xmm3
pxor xmm0, xmm7
movdqa xmm1, xmm0
movdqa xmm7, xmm0
psrldq xmm1, 8
pxor xmm7, xmm1
pcmpgtd xmm0, xmm1
pand xmm0, xmm7
pxor xmm0, xmm1
movdqa xmm1, xmm0
movdqa xmm3, xmm0
mov ecx, dword [esp + 0xb18]
mov edi, dword [esp + 0xb14]
add ecx, eax
psrldq xmm1, 4
add edi, eax
add eax, dword [esp + 0xb10]
pxor xmm3, xmm1
mov dword [esp + 0x70], ecx
pcmpgtd xmm0, xmm1
mov edx, dword [ebx + 0x98]
pand xmm0, xmm3
mov ecx, dword [ebx + 0x94]
pxor xmm0, xmm1
mov ebx, dword [ebx + 0x90]
cmp eax, ebx
mov dword [esp + 0x1c0], esi
cmovge ebx, eax
mov eax, 0xff
cmp ebx, 0xff
movd esi, xmm0
movdqu xmm0, xmmword [esp + 0x20]
movdqu xmmword [esp + 0x3b0], xmm0
cmovge ebx, eax
cmp ebx, esi
movdqu xmm0, xmmword [esp + 0x30]
cmovge esi, ebx
cmp edi, ecx
movdqu xmm1, xmmword [esp + 0x40]
cmovge ecx, edi
cmp ecx, 0xff
mov edi, dword [esp + 0x70]
cmovge ecx, eax
cmp ecx, esi
movdqu xmm3, xmmword [esp + 0x50]
cmovge esi, ecx
cmp edi, edx
movdqu xmm7, xmmword [esp + 0x60]
cmovge edx, edi
mov edi, eax
mov eax, dword [esp + 0x28c]
cmp edx, 0xff
movdqu xmmword [esp + 0x3c0], xmm0
cmovl edi, edx
mov edx, dword [eax + 0x10]
cmp edi, esi
movdqu xmmword [esp + 0x3d0], xmm1
cmovge esi, edi
mov edx, dword [edx + 0x129c]
mov dword [esp + 0x74], edx
movdqu xmmword [esp + 0x3e0], xmm3
movdqu xmmword [esp + 0x3f0], xmm7
movdqu xmmword [esp + 0x400], xmm4
movdqu xmmword [esp + 0x410], xmm2
movdqu xmmword [esp + 0x420], xmm5
movdqu xmmword [esp + 0x430], xmm6
mov dword [esp + 0x440], ebx
lea ebx, [esp + 0x3b0]
mov dword [ebx + 0x94], ecx
mov dword [ebx + 0x98], edi
push esi
push dword [esp + 0x288]
push ebx
push eax
mov ebx, dword [ebx - 0x1ec]
mov esi, dword [esp + 0x1d0]
call dword [eax]
mov eax, dword [esp + 0x29c]
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00436650
add esp, 0x18
test eax, eax
jne 0x444185
mov eax, dword [esp + 0x28c]
call fcn.00444aa0
push 0
mov eax, dword [esp + 0x290]
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.004334d0
mov ecx, eax
add esp, 0xc
mov edx, dword [esp + 0x28c]
mov eax, dword [edx + 0x10]
mov dword [eax + 0x12a0], ecx
mov edi, dword [edx + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [edi + 0x129c], ecx
jmp 0x441ae8
mov eax, dword [esp + 0x28c]
push 0x4900f0
push dword [eax + 0xc]
call fcn.0041fef0
jmp 0x442925
mov eax, ebx
push 0x4900f0
push dword [eax + 0xc]
call fcn.0041fef0
jmp 0x442925
mov eax, dword [esp + 0x26c]
pxor xmm1, xmm1
mov dword [esp + 0x14c], ebx
movdqu xmm0, xmmword [eax]
movdqu xmm2, xmmword [eax + 0x10]
movdqu xmm4, xmmword [eax + 0x20]
movdqu xmm6, xmmword [eax + 0x30]
movdqa xmm3, xmm0
movdqa xmm5, xmm2
movdqu xmmword [esp + 0xa80], xmm0
pcmpgtd xmm3, xmm1
pxor xmm0, xmm1
movdqa xmm7, xmm4
pand xmm3, xmm0
movdqa xmm0, xmm6
pxor xmm3, xmm1
movdqu xmmword [esp + 0xa90], xmm2
pcmpgtd xmm5, xmm3
pxor xmm2, xmm3
pand xmm5, xmm2
pxor xmm5, xmm3
movdqu xmmword [esp + 0xaa0], xmm4
pcmpgtd xmm7, xmm5
pxor xmm4, xmm5
pand xmm7, xmm4
pxor xmm7, xmm5
movdqu xmmword [esp + 0xab0], xmm6
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
movdqu xmm6, xmmword [eax + 0x40]
movdqu xmm1, xmmword [eax + 0x50]
movdqu xmm3, xmmword [eax + 0x60]
movdqu xmm5, xmmword [eax + 0x70]
pxor xmm0, xmm7
movdqa xmm2, xmm6
movdqu xmmword [esp + 0xac0], xmm6
pcmpgtd xmm2, xmm0
pxor xmm6, xmm0
movdqa xmm4, xmm1
pand xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmmword [esp + 0xad0], xmm1
pcmpgtd xmm4, xmm2
pxor xmm1, xmm2
pand xmm4, xmm1
pxor xmm4, xmm2
movdqa xmm2, xmm5
movdqu xmmword [esp + 0xae0], xmm3
pcmpgtd xmm0, xmm4
pxor xmm3, xmm4
pand xmm0, xmm3
pxor xmm0, xmm4
movdqu xmm1, xmmword [eax + 0x80]
movdqu xmmword [esp + 0xaf0], xmm5
pcmpgtd xmm2, xmm0
pxor xmm5, xmm0
movdqa xmm3, xmm1
pand xmm2, xmm5
pxor xmm2, xmm0
movdqu xmmword [esp + 0xb00], xmm1
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm4, xmm3
movdqa xmm6, xmm3
psrldq xmm4, 8
pcmpgtd xmm6, xmm4
pxor xmm3, xmm4
pand xmm6, xmm3
pxor xmm6, xmm4
movdqa xmm7, xmm6
movdqa xmm0, xmm6
psrldq xmm7, 4
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
pxor xmm0, xmm7
mov ecx, dword [eax + 0x90]
mov edx, dword [eax + 0x94]
mov ebx, dword [eax + 0x98]
movd eax, xmm0
cmp ecx, eax
mov dword [esp + 0xb18], ebx
cmovge eax, ecx
cmp edx, eax
mov dword [esp + 0xb10], ecx
cmovge eax, edx
cmp ebx, eax
mov dword [esp + 0xb14], edx
cmovge eax, ebx
mov dword [esp + 0x1b0], eax
mov ebx, dword [esp + 0x14c]
jmp 0x442ed0
mov eax, dword [esp + 0x26c]
pxor xmm1, xmm1
mov dword [esp + 0x274], edi
movdqu xmm0, xmmword [eax]
movdqu xmm2, xmmword [eax + 0x10]
movdqu xmm4, xmmword [eax + 0x20]
movdqu xmm6, xmmword [eax + 0x30]
movdqa xmm3, xmm0
movdqa xmm5, xmm2
movdqu xmmword [esp + 0xa80], xmm0
pcmpgtd xmm3, xmm1
pxor xmm0, xmm1
movdqa xmm7, xmm4
pand xmm3, xmm0
movdqa xmm0, xmm6
pxor xmm3, xmm1
movdqu xmmword [esp + 0xa90], xmm2
pcmpgtd xmm5, xmm3
pxor xmm2, xmm3
pand xmm5, xmm2
pxor xmm5, xmm3
movdqu xmmword [esp + 0xaa0], xmm4
pcmpgtd xmm7, xmm5
pxor xmm4, xmm5
pand xmm7, xmm4
pxor xmm7, xmm5
movdqu xmmword [esp + 0xab0], xmm6
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
movdqu xmm6, xmmword [eax + 0x40]
movdqu xmm1, xmmword [eax + 0x50]
movdqu xmm3, xmmword [eax + 0x60]
movdqu xmm5, xmmword [eax + 0x70]
pxor xmm0, xmm7
movdqa xmm2, xmm6
movdqu xmmword [esp + 0xac0], xmm6
pcmpgtd xmm2, xmm0
pxor xmm6, xmm0
movdqa xmm4, xmm1
pand xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmmword [esp + 0xad0], xmm1
pcmpgtd xmm4, xmm2
pxor xmm1, xmm2
pand xmm4, xmm1
pxor xmm4, xmm2
movdqa xmm2, xmm5
movdqu xmmword [esp + 0xae0], xmm3
pcmpgtd xmm0, xmm4
pxor xmm3, xmm4
pand xmm0, xmm3
pxor xmm0, xmm4
movdqu xmm1, xmmword [eax + 0x80]
movdqu xmmword [esp + 0xaf0], xmm5
pcmpgtd xmm2, xmm0
pxor xmm5, xmm0
movdqa xmm3, xmm1
pand xmm2, xmm5
pxor xmm2, xmm0
movdqu xmmword [esp + 0xb00], xmm1
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm4, xmm3
movdqa xmm6, xmm3
psrldq xmm4, 8
pcmpgtd xmm6, xmm4
pxor xmm3, xmm4
pand xmm6, xmm3
pxor xmm6, xmm4
movdqa xmm7, xmm6
movdqa xmm0, xmm6
psrldq xmm7, 4
pcmpgtd xmm0, xmm7
pxor xmm6, xmm7
pand xmm0, xmm6
pxor xmm0, xmm7
mov ecx, dword [eax + 0x90]
mov edx, dword [eax + 0x94]
mov edi, dword [eax + 0x98]
movd eax, xmm0
cmp ecx, eax
mov dword [esp + 0xb18], edi
cmovge eax, ecx
cmp edx, eax
mov dword [esp + 0xb10], ecx
cmovge eax, edx
cmp edi, eax
mov dword [esp + 0xb14], edx
cmovge eax, edi
mov dword [esp + 0x2a4], eax
mov edi, dword [esp + 0x274]
jmp 0x442247
call fcn.00466f40
push eax
push edi
push 0x490140
push dword [esp + 0x274]
call fcn.0041fef0
add esp, 0x10
jmp 0x442928
cmp dword [esp + 0x264], 0
jbe 0x441751
xor esi, esi
xor ebx, ebx
jmp 0x44172e
movq qword [esp + 0x10], xmm1
mov ecx, dword [esp + 0x1c8]
xor eax, eax
pxor xmm0, xmm0
mov edx, dword [esp + eax*4 + 0x20]
test edx, edx
jle 0x444976
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
sqrtss xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
addss xmm0, xmm2
inc eax
cmp eax, ecx
jl 0x444596
mov eax, dword [esp + 0x1c8]
pxor xmm2, xmm2
shr eax, 1
comiss xmm0, xmm2
jbe 0x44463e
test eax, eax
je 0x44492e
pxor xmm2, xmm2
xor edx, edx
cvtsi2ss xmm2, edi
movss xmm3, dword [esp + edx*8 + 0x10]
movss xmm4, dword [esp + edx*8 + 0x14]
mulss xmm3, xmm2
mulss xmm4, xmm2
divss xmm3, xmm0
divss xmm4, xmm0
cvttss2si ecx, xmm3
cvttss2si ebx, xmm4
mov dword [esp + edx*8 + 0x20], ecx
mov dword [esp + edx*8 + 0x24], ebx
inc edx
cmp edx, eax
jb 0x4445e1
lea ecx, [edx + edx + 1]
lea edx, [ecx - 1]
cmp edx, dword [esp + 0x1c8]
jae 0x44466f
pxor xmm2, xmm2
cvtsi2ss xmm2, edi
mulss xmm2, dword [esp + ecx*4 + 0xc]
divss xmm2, xmm0
cvttss2si edx, xmm2
mov dword [esp + ecx*4 + 0x1c], edx
jmp 0x44466f
test eax, eax
je 0x44496c
xor edx, edx
xor ecx, ecx
mov dword [esp + edx*8 + 0x20], ecx
mov dword [esp + edx*8 + 0x24], ecx
inc edx
cmp edx, eax
jb 0x44464a
lea ecx, [edx + edx + 1]
lea edx, [ecx - 1]
cmp edx, dword [esp + 0x1c8]
jae 0x44466f
mov dword [esp + ecx*4 + 0x1c], 0
cmp dword [esp + 0x1c8], 1
jle 0x44471d
mov ebx, dword [esp + 0x1b4]
add ebx, 0x7d
mov edx, dword [esp + 0x20]
cmp edx, ebx
jle 0x4446a3
mov ecx, dword [esp + 0x24]
add ecx, edx
mov edx, ebx
sub ecx, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x4446a7
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1b8]
add ebx, 0x7d
cmp ecx, ebx
jle 0x4446c1
add ecx, edx
sub ecx, ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
test eax, eax
je 0x444938
xor ecx, ecx
mov edx, 0x1e00
mov ebx, dword [esp + ecx*8 + 0x20]
cmp ebx, 0x1e00
cmovge ebx, edx
mov dword [esp + ecx*8 + 0x20], ebx
mov ebx, dword [esp + ecx*8 + 0x24]
cmp ebx, 0x1e00
cmovge ebx, edx
mov dword [esp + ecx*8 + 0x24], ebx
inc ecx
cmp ecx, eax
jb 0x4446d0
lea edx, [ecx + ecx + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x1c8]
jae 0x44471d
mov eax, 0x1e00
cmp dword [esp + edx*4 + 0x1c], 0x1e00
cmovl eax, dword [esp + edx*4 + 0x1c]
mov dword [esp + edx*4 + 0x1c], eax
mov dword [esp + 0x2c], esi
xor ebx, ebx
mov dword [esp + 0x1bc], edi
mov edx, dword [esp + 0x264]
movq qword [esp + 0x10], xmm1
test edx, edx
jle 0x444910
xor eax, eax
lea ecx, [esp + ebx*8 + 0xa60]
pxor xmm0, xmm0
mov esi, dword [ecx + eax*4]
test esi, esi
jle 0x44495d
pxor xmm2, xmm2
cvtsi2ss xmm2, esi
sqrtss xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
addss xmm0, xmm2
inc eax
cmp eax, edx
jl 0x44474c
pxor xmm2, xmm2
comiss xmm0, xmm2
jbe 0x444805
mov eax, dword [esp + ebx*4 + 0x20]
cmp dword [esp + 0x2c], 0
je 0x444942
pxor xmm2, xmm2
xor esi, esi
cvtsi2ss xmm2, eax
mov edx, dword [esp + 0x2c]
movss xmm3, dword [esp + esi*8 + 0x10]
mulss xmm3, xmm2
divss xmm3, xmm0
movss xmm4, dword [esp + esi*8 + 0x14]
mulss xmm4, xmm2
cvttss2si edi, xmm3
divss xmm4, xmm0
mov dword [ecx + esi*8], edi
cvttss2si edi, xmm4
mov dword [ecx + esi*8 + 4], edi
inc esi
cmp esi, edx
jb 0x44479c
mov dword [esp + 0x2c], edx
lea esi, [esi + esi + 1]
mov edx, dword [esp + 0x264]
lea edi, [esi - 1]
cmp edi, edx
jae 0x444842
pxor xmm2, xmm2
cvtsi2ss xmm2, eax
mulss xmm2, dword [esp + esi*4 + 0xc]
lea esi, [esp + esi*4 + 0xa60]
divss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [esi + ebx*8 - 4], eax
jmp 0x444842
cmp dword [esp + 0x2c], 0
je 0x444953
xor eax, eax
mov esi, dword [esp + 0x2c]
xor edi, edi
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], edi
inc eax
cmp eax, esi
jb 0x444818
mov dword [esp + 0x2c], esi
lea esi, [eax + eax + 1]
lea eax, [esi - 1]
cmp eax, edx
jae 0x444842
lea eax, [esp + esi*4 + 0xa60]
mov dword [eax + ebx*8 - 4], 0
cmp edx, 1
jle 0x444910
mov edi, dword [esp + ebx*8 + 0xa70]
add edi, 0x20
mov eax, dword [esp + ebx*8 + 0xa60]
cmp eax, edi
jle 0x44487b
mov esi, dword [esp + ebx*8 + 0xa64]
add esi, eax
mov eax, edi
sub esi, edi
mov dword [esp + ebx*8 + 0xa64], esi
mov dword [esp + ebx*8 + 0xa60], edi
mov edi, dword [esp + ebx*8 + 0xa74]
add edi, 0x20
mov esi, dword [esp + ebx*8 + 0xa64]
cmp esi, edi
jle 0x4448a2
add eax, esi
sub eax, edi
mov dword [esp + ebx*8 + 0xa60], eax
mov dword [esp + ebx*8 + 0xa64], edi
cmp dword [esp + 0x2c], 0
je 0x44494c
mov eax, dword [esp + 0x2c]
xor edi, edi
mov esi, 0xfff
mov edx, dword [ecx + edi*8]
cmp edx, 0xfff
cmovge edx, esi
mov dword [ecx + edi*8], edx
mov edx, dword [ecx + edi*8 + 4]
cmp edx, 0xfff
cmovge edx, esi
mov dword [ecx + edi*8 + 4], edx
inc edi
cmp edi, eax
jb 0x4448b8
mov dword [esp + 0x2c], eax
lea ecx, [edi + edi + 1]
mov edx, dword [esp + 0x264]
lea eax, [ecx - 1]
cmp eax, edx
jae 0x444910
mov eax, 0xfff
lea ecx, [esp + ecx*4 + 0xa60]
cmp dword [ecx + ebx*8 - 4], 0xfff
cmovl eax, dword [ecx + ebx*8 - 4]
mov dword [ecx + ebx*8 - 4], eax
inc ebx
cmp ebx, dword [esp + 0x1c8]
jl 0x444731
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1bc]
jmp 0x4416ae
mov ecx, 1
jmp 0x444616
mov edx, 1
jmp 0x4446fb
mov esi, 1
jmp 0x4447db
mov ecx, 1
jmp 0x4448ec
mov esi, 1
jmp 0x44482c
pxor xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
jmp 0x44476d
mov ecx, 1
jmp 0x44465b
pxor xmm2, xmm2
movss dword [esp + eax*4 + 0x10], xmm2
jmp 0x4445b8
mov edi, 1
jmp 0x44136e
push edi
push dword [esp + 0x26c]
call fcn.004337b0
add esp, 8
jmp 0x44128f
mov eax, dword [esp + 0x64]
push 0x4900f0
push dword [eax + 0xc]
call fcn.0041fef0
jmp 0x442925
mov dword [esp + 0x48], 0
jmp 0x44108b
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
lea esi, [ebx*4]
mov edi, dword [esp + 0x48]
add edx, dword [eax + ebx*4]
lea eax, [esi + esi*8]
mov dword [edi + eax], 0x43edb0
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x268]
mov dword [edi + eax], esi
imul edi, ebx, 0x1484
mov esi, dword [esp + 0x3c]
lea esi, [esi + edi + 0x134]
mov dword [ecx + eax], esi
mov esi, dword [esp + 0x4c]
lea edi, [ebx + ebx*8]
shl edi, 8
add edi, dword [esp + 0x44]
mov dword [esi + eax], edi
mov edi, dword [ecx + eax]
cmp dword [edi + 0x12b4], 2
je 0x444a4a
mov esi, dword [esp + 0x38]
mov dword [esi + eax], 0x440060
jmp 0x444a55
mov esi, dword [esp + 0x38]
mov dword [esi + eax], 0x43f400
inc ebx
cmp ebx, dword [esp + 0x264]
jb 0x4449e2
jmp 0x440ba4
mov edx, 1
jmp 0x440a7f
mov dword [esp + 0x1b4], 0x1e01
xor eax, eax
mov ecx, dword [esp + 0xb1c]
mov dword [esp + 0xb1c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x44454c
jmp 0x442374