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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2b0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0x14]
pxor xmm4, xmm4
movdqa xmmword [esp + 0x1d0], xmm4
movdqa xmmword [esp + 0x1c0], xmm4
movdqa xmmword [esp + 0xd0], xmm4
movdqa xmmword [esp + 0xc0], xmm4
movdqa xmmword [esp + 0x270], xmm4
movdqa xmmword [esp + 0x260], xmm4
movd xmm0, dword [esi + 4]
movd xmm1, dword [edi + 4]
punpckldq xmm1, xmm0
movd xmm0, dword [esi]
movd xmm2, dword [edi]
punpckldq xmm2, xmm0
por xmm2, xmm1
movd xmm0, dword [esi + 8]
movd xmm1, dword [edi + 8]
punpckldq xmm1, xmm0
movd xmm3, dword [esi + 0xc]
movd xmm0, dword [edi + 0xc]
punpckldq xmm0, xmm3
por xmm0, xmm1
por xmm0, xmm2
movd xmm1, dword [esi + 0x10]
movd xmm2, dword [edi + 0x10]
punpckldq xmm2, xmm1
movd xmm1, dword [esi + 0x14]
movd xmm3, dword [edi + 0x14]
punpckldq xmm3, xmm1
por xmm3, xmm2
movd xmm1, dword [esi + 0x18]
movd xmm2, dword [edi + 0x18]
punpckldq xmm2, xmm1
por xmm2, xmm3
por xmm2, xmm0
movdqa xmmword [esp + 0x1e0], xmm2
movss xmm0, dword [esi + 0x1c]
movss xmm1, dword [edi + 0x1c]
unpcklps xmm1, xmm0
movaps xmmword [esp + 0x40], xmm1
movdqa xmmword [esp + 0x130], xmm4
movdqa xmmword [esp + 0x120], xmm4
mov ebx, dword [ebp + 0xc]
lea ecx, [esp + 0x120]
mov edx, esi
call fcn.005f0530
xorps xmm0, xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
cmp dword [ebp + 0x18], 0
je 0x5f21a0
mov edi, dword [ebx]
mov dword [esp + 0xa0], edi
mov edx, esi
mov esi, dword [ebx + 4]
mov dword [esp + 0xa4], esi
mov eax, ebx
mov ebx, dword [ebx + 8]
mov dword [esp + 0xa8], ebx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xac], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xb0], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 4], ecx
mov dword [esp + 0xb4], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 8], ecx
mov dword [esp + 0xb8], ecx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0x80]
push edx
call fcn.005f3740
add esp, 4
mov eax, dword [ebp + 0x10]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x100], xmm0
movups xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0x110], xmm0
jmp 0x5f2504
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 0x50]
mov edx, edi
call fcn.005f0530
lea ecx, [esp + 0xa0]
mov edx, ebx
lea eax, [esp + 0x50]
push eax
call fcn.005eeab0
add esp, 4
lea ebx, [esp + 0x80]
mov ecx, ebx
mov edx, esi
push edi
call fcn.005f3740
add esp, 4
mov ecx, ebx
mov edx, ebx
call fcn.005f0530
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0x120]
mov eax, 0
sbb eax, eax
mov esi, dword [esp + 0x84]
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x124]
setb al
sub esi, ecx
mov dword [esp + 0xc], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x128]
setb al
mov edi, dword [esp + 0x88]
sub edi, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x12c]
setb al
mov esi, dword [esp + 0x8c]
sub esi, ecx
mov dword [esp + 0x20], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x130]
setb al
mov esi, dword [esp + 0x90]
sub esi, ecx
mov dword [esp + 0x14], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x134]
setb al
mov esi, dword [esp + 0x94]
sub esi, ecx
mov dword [esp + 8], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x138]
setb al
mov esi, dword [esp + 0x98]
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x13c]
setb al
mov esi, dword [esp + 0x9c]
sub esi, ecx
mov dword [esp + 0x10], esi
mov ecx, 0
sbb ecx, eax
xor eax, eax
mov esi, 0xff
test ecx, esi
setne al
mov esi, eax
neg esi
mov ecx, edi
sub ecx, eax
add edx, esi
adc dword [esp + 0xc], esi
setb bl
adc ecx, 0
mov dword [esp + 0x1c], ecx
add bl, 0xff
adc esi, edi
mov esi, dword [esp + 0x20]
adc esi, 0
adc dword [esp + 0x14], 0
adc dword [esp + 8], 0
adc dword [esp + 4], eax
mov edi, dword [esp + 0x10]
adc edi, 0
sub edi, eax
sub edx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x54]
setb al
mov edx, dword [esp + 0xc]
sub edx, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x58]
setb al
mov ebx, dword [esp + 0x1c]
sub ebx, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x5c]
setb al
sub esi, ecx
mov dword [esp + 0x20], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x60]
setb al
sub dword [esp + 0x14], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x64]
setb al
sub dword [esp + 8], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x68]
setb al
sub dword [esp + 4], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x6c]
setb al
sub edi, ecx
mov esi, 0
sbb esi, eax
xor ecx, ecx
mov eax, 0xff
test esi, eax
setne cl
mov eax, ecx
neg eax
mov esi, ebx
sub esi, ecx
add dword [esp + 0x10], eax
adc edx, eax
mov dword [esp + 0xc], edx
setb dl
adc esi, 0
add dl, 0xff
adc eax, ebx
adc dword [esp + 0x20], 0
mov edx, dword [esp + 0x14]
adc edx, 0
mov ebx, dword [esp + 8]
adc ebx, 0
mov eax, dword [esp + 4]
adc eax, ecx
adc edi, 0
sub edi, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edi
lea ebx, [esp + 0x100]
mov ecx, ebx
mov edx, dword [ebp + 0x24]
lea eax, [esp + 0x50]
push eax
call fcn.005eeab0
add esp, 4
mov ecx, ebx
mov edx, ebx
push dword [ebp + 0x10]
call fcn.005eeab0
add esp, 4
mov edi, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc], eax
movaps xmm0, xmmword [esp + 0x1e0]
orps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x1e0], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 0x50]
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x120]
push eax
call fcn.005eeab0
add esp, 4
mov eax, dword [esp + 0x50]
sub eax, edi
mov edi, eax
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, esi
setb al
mov edx, dword [esp + 0x54]
sub edx, ecx
mov dword [esp + 0x20], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx edx, cl
xor ecx, ecx
add edx, ebx
setb cl
mov esi, dword [esp + 0x58]
sub esi, edx
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0x14]
setb cl
mov eax, dword [esp + 0x5c]
sub eax, edx
mov dword [esp + 0x14], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0x10]
setb cl
mov eax, dword [esp + 0x60]
sub eax, edx
mov dword [esp + 0x10], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 4]
setb cl
mov eax, dword [esp + 0x64]
sub eax, edx
mov dword [esp + 0x1c], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 8]
setb cl
mov ebx, dword [esp + 0x68]
sub ebx, edx
mov dword [esp + 4], ebx
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0xc]
setb cl
mov eax, dword [esp + 0x6c]
sub eax, edx
mov dword [esp + 8], eax
mov edx, 0
sbb edx, ecx
xor ecx, ecx
mov eax, 0xff
test edx, eax
setne cl
mov edx, ecx
neg edx
mov ebx, esi
sub ebx, ecx
add edi, edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
adc edi, edx
mov dword [esp + 0x20], edi
setb al
adc ebx, 0
mov dword [esp + 0x34], ebx
add al, 0xff
adc edx, esi
mov esi, dword [esp + 0x14]
adc esi, 0
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
adc edx, 0
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x1c]
adc ebx, 0
mov dword [esp + 0x1c], ebx
adc dword [esp + 4], ecx
mov eax, dword [esp + 8]
adc eax, 0
sub eax, ecx
mov ecx, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], esi
mov dword [esp + 0x200], edx
mov dword [esp + 0x204], ebx
mov eax, dword [esp + 4]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], ecx
lea eax, [esp + 0x80]
lea ecx, [esp + 0x260]
lea edx, [esp + 0x1f0]
push eax
call fcn.005eeab0
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x290], xmm0
movaps xmmword [esp + 0x280], xmm0
lea ebx, [esp + 0x280]
mov ecx, ebx
mov edx, dword [ebp + 0x14]
lea eax, [esp + 0x120]
push eax
call fcn.005eeab0
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x1b0], xmm0
movaps xmmword [esp + 0x1a0], xmm0
lea ecx, [esp + 0x1a0]
mov edx, dword [ebp + 0x20]
push ebx
call fcn.005eeab0
add esp, 4
mov eax, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
sub eax, dword [esp + 0x100]
mov dword [esp + 0x2c], eax
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x104]
setb al
sub edx, ecx
mov dword [esp + 0x3c], edx
mov ecx, 0
sbb ecx, eax
neg cl
mov eax, dword [esp + 0x1a8]
movzx edx, cl
xor ecx, ecx
add edx, dword [esp + 0x108]
setb cl
sub eax, edx
mov dword [esp + 0x24], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0x10c]
setb cl
mov eax, dword [esp + 0x1ac]
sub eax, edx
mov dword [esp + 0x40], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0x110]
setb cl
mov eax, dword [esp + 0x1b0]
sub eax, edx
mov dword [esp + 0x30], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx edx, dl
xor ecx, ecx
add edx, dword [esp + 0x114]
setb cl
mov eax, dword [esp + 0x1b4]
sub eax, edx
mov dword [esp + 0xc], eax
mov edx, 0
sbb edx, ecx
neg dl
movzx esi, dl
xor ecx, ecx
add esi, dword [esp + 0x118]
setb cl
mov eax, dword [esp + 0x1b8]
sub eax, esi
mov dword [esp + 0x18], eax
mov ebx, 0
sbb ebx, ecx
neg bl
movzx esi, bl
xor ebx, ebx
add esi, dword [esp + 0x11c]
setb bl
mov edx, dword [esp + 0x1bc]
sub edx, esi
mov eax, 0
sbb eax, ebx
xor ebx, ebx
mov ecx, 0xff
test eax, ecx
setne bl
mov edi, ebx
neg edi
mov ecx, dword [esp + 0x24]
mov esi, ecx
sub esi, ebx
add dword [esp + 0x2c], edi
adc dword [esp + 0x3c], edi
setb al
adc esi, 0
add al, 0xff
adc edi, ecx
mov eax, dword [esp + 0x40]
adc eax, 0
mov ecx, dword [esp + 0x30]
adc ecx, 0
mov edi, dword [esp + 0xc]
adc edi, 0
adc dword [esp + 0x18], ebx
adc edx, 0
movd xmm0, esi
shrd esi, eax, 0x1f
shrd eax, ecx, 0x1f
mov dword [esp + 0x40], eax
mov eax, edi
shrd ecx, edi, 0x1f
mov edi, ecx
mov dword [esp + 0x30], ecx
sub edx, ebx
mov ecx, dword [esp + 0x18]
shrd eax, ecx, 0x1f
mov dword [esp + 0xc], eax
mov eax, edx
shld edx, ecx, 1
mov dword [esp + 0x38], edx
shr eax, 0x1f
mov dword [esp + 0x230], eax
mov eax, esi
add eax, 0xffffffff
mov dword [esp + 0x18], eax
mov eax, 0
adc al, 0xff
neg al
movzx eax, al
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov eax, 0
sbb eax, eax
neg al
movzx eax, al
mov ebx, edi
sub ebx, eax
mov eax, 0
sbb eax, eax
neg al
movzx edx, al
not edx
add edx, dword [esp + 0xc]
mov ecx, 0
adc cl, 0xff
neg cl
mov edi, dword [esp + 0x38]
add edi, 1
mov eax, 0
adc eax, 0xffffffff
movzx ecx, cl
sub edi, ecx
sbb eax, 0
neg al
movzx eax, al
cmp dword [esp + 0x230], eax
movd xmm1, dword [esp + 0x3c]
mov eax, 0
sbb eax, eax
xor ecx, ecx
test al, al
mov eax, dword [esp + 0x2c]
movd xmm2, eax
sete cl
lea eax, [ecx + eax*2]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
cmovne eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmovne eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
cmovne ebx, dword [esp + 0x30]
cmovne edx, dword [esp + 0xc]
cmovne edi, dword [esp + 0x38]
punpcklqdq xmm2, xmm1
psrlq xmm2, 0x1f
pand xmm2, xmmword [0x8befb0]
punpcklqdq xmm1, xmm0
paddq xmm1, xmm1
por xmm1, xmm2
pshufd xmm0, xmm1, 0xee
movd ecx, xmm1
or ecx, dword [esp + 0x28]
movd eax, xmm0
or ecx, eax
mov esi, dword [esp + 0x20]
or esi, dword [esp + 0x34]
or esi, dword [esp + 0x14]
or esi, dword [esp + 0x10]
or esi, dword [esp + 0x1c]
or esi, dword [esp + 4]
or esi, dword [esp + 8]
or esi, ecx
pshufd xmm0, xmm1, 0xe8
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x210], ecx
movq qword [esp + 0x214], xmm0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x21c], eax
or esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], ebx
or ebx, eax
or ebx, esi
mov dword [esp + 0x228], edx
mov dword [esp + 0x22c], edi
or edi, edx
or edi, ebx
or edi, ecx
jne 0x5f2a75
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [esp + 0x1e0]
paddd xmm0, xmm1
pandn xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
test eax, eax
js 0x5f2a75
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005f38e0
add esp, 0x10
jmp 0x5f3731
mov eax, dword [esp + 0x34]
movd xmm0, eax
shr eax, 0x1f
mov ecx, 0xfffffffe
mov esi, dword [esp + 0x14]
lea edx, [esi + esi]
and edx, ecx
or edx, eax
mov ebx, edx
mov dword [esp + 0x18], edx
movd xmm1, dword [esp + 0x1c]
movd xmm2, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov edx, edi
add edi, edi
and edi, ecx
shr esi, 0x1f
mov ecx, 1
and esi, ecx
movd xmm3, esi
punpcklqdq xmm2, xmm1
shr edx, 0x1f
mov eax, 1
and edx, eax
mov esi, dword [esp + 8]
lea edx, [edx + esi*2]
mov dword [esp + 0x40], edx
shr esi, 0x1f
add ebx, 0xffffffff
mov dword [esp + 0x14], ebx
mov ecx, 0
adc cl, 0xff
neg cl
add eax, edx
mov dword [esp + 4], eax
mov eax, 0xffffffff
adc eax, 0
paddq xmm2, xmm2
pand xmm2, xmmword [0x8befd0]
pshufd xmm1, xmm2, 0xff
movd edx, xmm1
or edx, edi
mov ebx, edx
mov dword [esp + 8], edx
movzx ecx, cl
pshufd xmm1, xmm3, 0x50
punpcklqdq xmm1, xmm2
psrlq xmm1, 0x20
por xmm1, xmm2
movd edx, xmm1
sub edx, ecx
mov dword [esp + 0xc], edx
mov ecx, 0
sbb ecx, ecx
neg cl
pshufd xmm2, xmm1, 0xee
movzx ecx, cl
movd edi, xmm2
sub edi, ecx
mov ecx, 0
sbb ecx, ecx
neg cl
movzx ecx, cl
not ecx
add ecx, ebx
mov ebx, 0
adc bl, 0xff
neg bl
movzx ebx, bl
mov edx, dword [esp + 4]
sub edx, ebx
sbb eax, 0
neg al
movzx eax, al
cmp esi, eax
movd xmm2, dword [esp + 0x20]
mov ebx, 0
sbb ebx, ebx
xor eax, eax
test bl, bl
mov esi, dword [esp + 0x14]
cmovne esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
movd xmm4, ebx
sete al
lea ebx, [eax + ebx*2]
movd xmm3, eax
movd xmm5, edi
cmovne ecx, dword [esp + 8]
cmovne edx, dword [esp + 0x40]
movd xmm6, dword [esp + 0xc]
punpcklqdq xmm4, xmm2
punpcklqdq xmm2, xmm0
psrlq xmm4, 0x1f
paddq xmm2, xmm2
pand xmm4, xmmword [0x8befc0]
por xmm4, xmm2
pshufd xmm0, xmm4, 0xe8
movq qword [esp + 0x244], xmm0
mov dword [esp + 0x240], ebx
mov dword [esp + 0x24c], esi
pshufd xmm0, xmm3, 0x44
psllq xmm0, 0x3f
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xf5
punpcklqdq xmm6, xmm5
pand xmm6, xmm0
pandn xmm0, xmm1
por xmm0, xmm6
pshufd xmm0, xmm0, 0xe8
movq qword [esp + 0x250], xmm0
mov dword [esp + 0x258], ecx
mov dword [esp + 0x25c], edx
lea edi, [esp + 0x240]
mov ecx, edi
mov edx, edi
call fcn.005f0530
pxor xmm0, xmm0
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x140], xmm0
lea ecx, [esp + 0x140]
lea edx, [esp + 0x1f0]
push edi
call fcn.005eeab0
add esp, 4
pxor xmm0, xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
lea ecx, [esp + 0x180]
lea edx, [esp + 0xa0]
push edi
call fcn.005eeab0
add esp, 4
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x210]
call fcn.005f0530
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
sub eax, dword [esp + 0x140]
mov dword [esp + 4], eax
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x144]
setb al
sub edx, ecx
mov dword [esp + 0x24], edx
mov ecx, 0
sbb ecx, eax
neg cl
mov edi, dword [esp + 0x1c8]
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x148]
setb al
sub edi, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x14c]
setb al
mov edx, dword [esp + 0x1cc]
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x150]
setb al
mov edx, dword [esp + 0x1d0]
sub edx, ecx
mov dword [esp + 0xc], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x154]
setb al
mov edx, dword [esp + 0x1d4]
sub edx, ecx
mov dword [esp + 0x20], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x158]
setb al
mov edx, dword [esp + 0x1d8]
sub edx, ecx
mov dword [esp + 0x14], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x15c]
setb al
mov edx, dword [esp + 0x1dc]
sub edx, ecx
mov dword [esp + 0x40], edx
mov ecx, 0
sbb ecx, eax
xor ebx, ebx
mov eax, 0xff
test ecx, eax
setne bl
mov eax, ebx
neg eax
mov ecx, edi
sub ecx, ebx
mov edx, dword [esp + 4]
add edx, eax
mov esi, dword [esp + 0x24]
adc esi, eax
setb byte [esp + 4]
adc ecx, 0
mov dword [esp + 0x1c], ecx
add byte [esp + 4], 0xff
adc eax, edi
adc dword [esp + 8], 0
adc dword [esp + 0xc], 0
adc dword [esp + 0x20], 0
adc dword [esp + 0x14], ebx
mov edi, dword [esp + 0x40]
adc edi, 0
sub edi, ebx
mov eax, dword [esp + 0x180]
mov dword [esp + 0x10], eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
mov edx, dword [esp + 0x184]
mov dword [esp + 0x18], edx
xor eax, eax
add ecx, edx
setb al
sub esi, ecx
mov ebx, esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x188]
mov dword [esp + 0x3c], edx
xor eax, eax
add ecx, edx
setb al
mov esi, dword [esp + 0x1c]
sub esi, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x30], edx
xor eax, eax
add ecx, edx
setb al
sub dword [esp + 8], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x190]
mov dword [esp + 0x28], edx
xor eax, eax
add ecx, edx
setb al
sub dword [esp + 0xc], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x194]
mov dword [esp + 0x34], edx
xor eax, eax
add ecx, edx
setb al
sub dword [esp + 0x20], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x198]
mov dword [esp + 0x1c], edx
xor eax, eax
add ecx, edx
setb al
sub dword [esp + 0x14], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x38], eax
xor edx, edx
add ecx, eax
setb dl
sub edi, ecx
mov dword [esp + 0x40], edi
mov eax, 0
sbb eax, edx
xor ecx, ecx
mov edx, 0xff
test eax, edx
setne cl
mov eax, ecx
neg eax
mov edi, esi
sub edi, ecx
mov edx, dword [esp + 4]
add edx, eax
adc ebx, eax
mov dword [esp + 0x24], ebx
setb bl
adc edi, 0
mov dword [esp + 0x2c], edi
add bl, 0xff
adc eax, esi
mov esi, dword [esp + 8]
adc esi, 0
mov edi, dword [esp + 0xc]
adc edi, 0
mov ebx, dword [esp + 0x20]
adc ebx, 0
adc dword [esp + 0x14], ecx
mov eax, dword [esp + 0x40]
adc eax, 0
sub eax, ecx
mov dword [esp + 0x40], eax
sub edx, dword [esp + 0x10]
mov dword [esp + 4], edx
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x18]
setb al
sub dword [esp + 0x24], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x3c]
setb al
sub dword [esp + 0x2c], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x30]
setb al
sub esi, ecx
mov dword [esp + 8], esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x28]
setb al
sub edi, ecx
mov dword [esp + 0xc], edi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x34]
setb al
sub ebx, ecx
mov dword [esp + 0x20], ebx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x1c]
setb al
mov ebx, dword [esp + 0x14]
sub ebx, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x38]
setb al
sub dword [esp + 0x40], ecx
mov ecx, 0
sbb ecx, eax
xor edx, edx
mov eax, 0xff
test ecx, eax
movd xmm1, dword [esp + 0x24]
movd xmm0, dword [esp + 4]
setne dl
mov ecx, edx
neg ecx
xor eax, eax
mov edi, dword [esp + 0x2c]
add edi, ecx
movd xmm2, ecx
punpcklqdq xmm1, xmm0
pand xmm1, xmmword [0x8befe0]
setb al
pshufd xmm0, xmm2, 0x44
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xff
movd ecx, xmm1
movd esi, xmm0
add esi, ecx
mov dword [esp + 0xfc], esi
pshufd xmm1, xmm0, 0x55
movd ecx, xmm1
adc ecx, edi
mov dword [esp + 0x2c], ecx
adc eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0xc]
adc edi, 0
mov dword [esp + 0xc], edi
adc dword [esp + 0x20], 0
adc ebx, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x40]
adc ebx, 0
sub ebx, edx
mov dword [esp + 0x40], ebx
pshufd xmm0, xmm0, 0xee
movdqa xmmword [esp + 0x230], xmm0
movd eax, xmm0
sub dword [esp + 0x10], eax
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, esi
setb al
sub dword [esp + 0x18], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x2c]
setb al
mov esi, dword [esp + 0x3c]
sub esi, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x24]
setb al
sub dword [esp + 0x30], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, edi
setb al
sub dword [esp + 0x28], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x20]
setb al
sub dword [esp + 0x34], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x14]
setb al
sub dword [esp + 0x1c], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, ebx
setb al
mov edi, dword [esp + 0x38]
sub edi, ecx
mov ecx, 0
sbb ecx, eax
xor eax, eax
mov edx, 0xff
test ecx, edx
setne al
mov edx, eax
neg edx
mov ecx, esi
sub ecx, eax
add dword [esp + 0x10], edx
adc dword [esp + 0x18], edx
setb bl
adc ecx, 0
add bl, 0xff
adc edx, esi
mov edx, dword [esp + 0x30]
adc edx, 0
mov esi, dword [esp + 0x28]
adc esi, 0
mov ebx, dword [esp + 0x34]
adc ebx, 0
adc dword [esp + 0x1c], eax
adc edi, 0
sub edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edi
lea ecx, [esp + 0xc0]
mov edx, ecx
lea eax, [esp + 0x210]
push eax
call fcn.005eeab0
add esp, 4
pxor xmm0, xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
lea ecx, [esp + 0x160]
lea edx, [esp + 0x100]
lea eax, [esp + 0x140]
push eax
call fcn.005eeab0
add esp, 4
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x160]
mov dword [esp + 0x28], eax
sub ecx, eax
mov dword [esp + 0x10], ecx
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
mov edx, dword [esp + 0x164]
mov dword [esp + 0x34], edx
xor eax, eax
add ecx, edx
setb al
mov esi, dword [esp + 0xc4]
sub esi, ecx
mov ebx, esi
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x168]
mov dword [esp + 0x3c], edx
xor eax, eax
add ecx, edx
setb al
mov edx, dword [esp + 0xc8]
sub edx, ecx
mov esi, edx
mov dword [esp + 0xe4], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x38], edx
xor eax, eax
add ecx, edx
setb al
mov edx, dword [esp + 0xcc]
sub edx, ecx
mov dword [esp + 0x1c], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x170]
mov dword [esp + 0xf8], edx
xor eax, eax
add ecx, edx
setb al
mov edx, dword [esp + 0xd0]
sub edx, ecx
mov dword [esp + 0x18], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x174]
mov dword [esp + 0xf4], edx
xor eax, eax
add ecx, edx
setb al
mov edx, dword [esp + 0xd4]
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov edx, dword [esp + 0x178]
mov dword [esp + 0xf0], edx
xor eax, eax
add ecx, edx
setb al
mov edx, dword [esp + 0xd8]
sub edx, ecx
mov dword [esp + 4], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
mov eax, dword [esp + 0x17c]
mov dword [esp + 0xec], eax
xor edx, edx
add ecx, eax
setb dl
mov edi, dword [esp + 0xdc]
sub edi, ecx
mov eax, 0
sbb eax, edx
xor ecx, ecx
mov edx, 0xff
test eax, edx
setne cl
mov eax, ecx
neg eax
mov edx, esi
sub edx, ecx
mov esi, dword [esp + 0x10]
add esi, eax
adc ebx, eax
mov dword [esp + 0xe8], ebx
setb bl
adc edx, 0
mov dword [esp + 0x30], edx
add bl, 0xff
adc eax, dword [esp + 0xe4]
mov ebx, dword [esp + 0x1c]
adc ebx, 0
mov edx, dword [esp + 0x18]
adc edx, 0
adc dword [esp + 8], 0
adc dword [esp + 4], ecx
adc edi, 0
sub edi, ecx
sub esi, dword [esp + 0x28]
mov dword [esp + 0x10], esi
mov eax, 0
sbb eax, eax
neg al
movzx ecx, al
xor eax, eax
add ecx, dword [esp + 0x34]
setb al
mov esi, dword [esp + 0xe8]
sub esi, ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x3c]
setb al
sub dword [esp + 0x30], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0x38]
setb al
sub ebx, ecx
mov dword [esp + 0x1c], ebx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0xf8]
setb al
sub edx, ecx
mov dword [esp + 0x18], edx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0xf4]
setb al
sub dword [esp + 8], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0xf0]
setb al
sub dword [esp + 4], ecx
mov ecx, 0
sbb ecx, eax
neg cl
movzx ecx, cl
xor eax, eax
add ecx, dword [esp + 0xec]
setb al
sub edi, ecx
mov dword [esp + 0x28], edi
mov ecx, 0
sbb ecx, eax
xor ebx, ebx
mov eax, 0xff
test ecx, eax
movd xmm0, dword [esp + 0x2c]
movd xmm1, dword [esp + 0x24]
movd xmm2, dword [esp + 0xfc]
movd xmm3, dword [esp + 0xc]
movdqa xmm5, xmmword [esp + 0x1e0]
pcmpeqd xmm5, xmmword [0x8beff0]
movd xmm6, dword [esp + 0x20]
punpckldq xmm0, xmm1
movd xmm4, dword [esp + 0x14]
movdqa xmm7, xmmword [esp + 0x230]
punpckldq xmm7, xmm2
punpcklqdq xmm7, xmm0
pshufd xmm1, xmm5, 0x55
movdqa xmm0, xmm1
pandn xmm0, xmm7
mov ecx, dword [ebp + 0x1c]
movdqu xmm2, xmmword [ecx]
pand xmm2, xmm1
por xmm2, xmm0
pshufd xmm0, xmm5, 0
movdqa xmm7, xmm0
pandn xmm7, xmm2
mov eax, dword [ebp + 0xc]
movdqu xmm5, xmmword [eax]
pand xmm5, xmm0
por xmm5, xmm7
movd xmm2, dword [esp + 0x40]
punpckldq xmm3, xmm6
movd xmm7, esi
punpckldq xmm4, xmm2
movd xmm2, dword [esp + 0x10]
punpcklqdq xmm7, xmm2
movdqu xmm6, xmmword [ecx + 0x10]
setne bl
mov ecx, ebx
neg ecx
pand xmm7, xmmword [0x8befe0]
movd xmm2, ecx
pshufd xmm2, xmm2, 0x44
paddq xmm2, xmm7
pshufd xmm7, xmm2, 0xff
movd esi, xmm7
pshufd xmm7, xmm2, 0x55
movd edi, xmm7
movdqu xmm7, xmmword [eax + 0x10]
xor eax, eax
mov edx, dword [esp + 0x30]
add edx, ecx
setb al
movd ecx, xmm2
add ecx, esi
adc edi, edx
adc eax, dword [esp + 0x1c]
punpcklqdq xmm3, xmm4
movdqa xmm4, xmm1
pandn xmm4, xmm3
pand xmm6, xmm1
por xmm6, xmm4
movdqa xmm3, xmm0
pandn xmm3, xmm6
pand xmm7, xmm0
por xmm7, xmm3
mov esi, dword [esp + 0x78]
movdqu xmmword [esi], xmm5
movdqu xmmword [esi + 0x10], xmm7
movd xmm3, edi
movd xmm7, eax
movd xmm5, ecx
mov ecx, dword [esp + 0x18]
adc ecx, 0
mov edx, dword [esp + 8]
adc edx, 0
mov esi, dword [esp + 4]
adc esi, ebx
mov edi, dword [esp + 0x28]
adc edi, 0
sub edi, ebx
mov eax, dword [ebp + 0x20]
movdqu xmm6, xmmword [eax]
movdqu xmm4, xmmword [eax + 0x10]
punpckldq xmm3, xmm7
movd xmm7, ecx
pshufd xmm2, xmm2, 0xee
punpckldq xmm2, xmm5
movd xmm5, edx
punpcklqdq xmm2, xmm3
movdqa xmm3, xmm1
pandn xmm3, xmm2
movd xmm2, esi
pand xmm6, xmm1
por xmm6, xmm3
movdqa xmm3, xmm0
pandn xmm3, xmm6
mov eax, dword [ebp + 0x10]
movdqu xmm6, xmmword [eax]
pand xmm6, xmm0
por xmm6, xmm3
movd xmm3, edi
punpckldq xmm7, xmm5
punpckldq xmm2, xmm3
punpcklqdq xmm7, xmm2
movdqa xmm2, xmm1
pandn xmm2, xmm7
pand xmm4, xmm1
por xmm4, xmm2
movdqa xmm2, xmm0
pandn xmm2, xmm4
movdqu xmm3, xmmword [eax + 0x10]
pand xmm3, xmm0
por xmm3, xmm2
mov eax, dword [esp + 0x7c]
movdqu xmmword [eax], xmm6
movdqu xmmword [eax + 0x10], xmm3
mov eax, dword [ebp + 0x24]
movdqu xmm3, xmmword [eax]
movdqu xmm2, xmmword [eax + 0x10]
pand xmm3, xmm1
movdqa xmm4, xmm1
pandn xmm4, xmmword [esp + 0x260]
por xmm4, xmm3
movdqa xmm5, xmm0
pandn xmm5, xmm4
mov eax, dword [ebp + 0x14]
movdqu xmm3, xmmword [eax]
pand xmm3, xmm0
pand xmm2, xmm1
pandn xmm1, xmmword [esp + 0x270]
por xmm3, xmm5
por xmm1, xmm2
movdqu xmm2, xmmword [eax + 0x10]
pand xmm2, xmm0
pandn xmm0, xmm1
por xmm0, xmm2
mov eax, dword [ebp + 8]
movdqu xmmword [eax], xmm3
movdqu xmmword [eax + 0x10], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret