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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x180
mov dword [esp + 0x44], edx
mov edi, dword [esp + 0x194]
mov esi, dword [edx]
mov dword [esp + 0x30], esi
mov eax, dword [edi + 8]
mov dword [esp + 0xcc], eax
mul esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x9c], edx
movq xmm1, qword [edi]
pxor xmm0, xmm0
movd ebx, xmm1
mov dword [esp + 0xbc], ebx
punpckldq xmm1, xmm0
movdqu xmmword [esp + 0x170], xmm1
pshufd xmm0, xmm1, 0xee
movdqu xmmword [esp + 0x160], xmm0
movd eax, xmm0
mov dword [esp + 0x54], eax
mul esi
mov dword [esp], edx
mov ebp, eax
mov eax, ebx
mul esi
mov edi, eax
mov ebx, edx
mov edx, 0xffffffff
mul edx
mov dword [esp + 0x40], edx
mov esi, edx
add esi, eax
mov dword [esp + 0x10], esi
adc esi, 0
mov dword [esp + 0x10c], esi
mov esi, eax
mov edx, eax
mov dword [esp + 0x3c], eax
add esi, edi
mov esi, edi
mov dword [esp + 0x1c], edi
mov eax, ebx
adc eax, ebp
add ebx, ebp
mov ebp, dword [esp]
adc ebp, dword [esp + 0x20]
mov dword [esp], ebp
setb byte [esp + 0x18]
mov edi, edx
add edi, esi
adc ebx, dword [esp + 0x10]
setb byte [esp + 0xac]
mov edx, ebp
adc edx, 0
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x3c]
lea eax, [eax + esi]
mov dword [esp + 0x34], eax
adc esi, edx
mov dword [esp + 0x11c], esi
mov eax, dword [esp + 0x44]
mov esi, dword [eax + 4]
mov dword [esp + 0x140], esi
mov eax, dword [esp + 0xcc]
mul esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], edx
mov edi, dword [esp + 0x194]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x68], eax
mul esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x150], edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], eax
mul esi
mov dword [esp + 4], eax
mov dword [esp + 0x24], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x20], eax
mul esi
mov dword [esp + 0x50], edx
mov ebp, eax
mov eax, dword [esp + 0x54]
mul esi
mov dword [esp + 0x28], edx
mov edi, eax
mov eax, dword [esp + 0xbc]
mul esi
mov ebx, dword [esp + 0x34]
add ebx, eax
mov esi, edx
adc esi, edi
mov dword [esp + 8], esi
add edx, edi
mov esi, dword [esp + 0x28]
adc esi, dword [esp + 0x48]
mov dword [esp + 0x28], esi
adc ebp, dword [esp + 0x64]
mov dword [esp + 0x2c], ebp
mov edi, dword [esp + 4]
adc dword [esp + 0x50], edi
mov edi, dword [esp + 0x4c]
adc dword [esp + 0x24], edi
setb byte [esp + 0x8c]
add dword [esp + 0x34], eax
adc edx, dword [esp + 0x11c]
setb byte [esp + 0xdc]
adc esi, 0
mov dword [esp + 4], esi
mov edi, dword [esp + 0x194]
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x30]
mul esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], edx
mov eax, dword [edi + 0x18]
mov dword [esp + 0x4c], eax
mul esi
mov edi, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x68]
mul esi
mov ebx, edx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x10]
mul esi
mov ebp, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mul esi
add byte [esp + 0x18], 0xff
adc eax, dword [esp + 0x9c]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
adc ebp, dword [esp + 0xfc]
mov dword [esp + 0x9c], ebp
adc ebx, dword [esp + 0x60]
mov dword [esp + 0x18], ebx
adc edi, dword [esp + 0xc]
mov dword [esp + 0x30], edi
setb byte [esp + 0xfc]
mov edi, dword [esp + 0x40]
mov esi, edi
mov edx, dword [esp + 0x3c]
add esi, edx
mov esi, edi
adc esi, edx
mov edx, eax
adc edx, edi
mov dword [esp + 0x5c], edx
setb byte [esp + 0x12c]
add byte [esp + 0xac], 0xff
mov eax, dword [esp]
adc eax, dword [esp + 0x10c]
setb byte [esp + 0xec]
adc dword [esp + 4], edx
mov edi, dword [esp + 8]
add edi, dword [esp + 0x11c]
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x34]
mov eax, ebx
mov edx, 0xffffffff
mul edx
mov esi, edx
mov dword [esp + 0x10c], edx
add esi, eax
mov ebp, esi
adc ebp, 0
mov dword [esp + 0xc], ebp
mov ebp, eax
add ebp, ebx
mov ebp, edx
adc ebp, eax
mov dword [esp], ebp
mov ebp, eax
add ebp, ebx
adc esi, edi
setb byte [esp + 0x60]
mov edi, dword [esp + 4]
mov edx, edi
adc edx, dword [esp + 0xc]
mov dword [esp + 0xac], edx
add byte [esp + 0xec], 0xff
mov esi, dword [esp + 0x5c]
adc esi, 0
movzx edx, byte [esp + 0x12c]
adc edx, dword [esp + 0x14]
mov ebp, edx
mov edx, dword [esp + 0x9c]
adc edx, 0
setb byte [esp + 0x7c]
mov ebx, dword [esp + 0x18]
adc ebx, dword [esp + 0x1c]
add byte [esp + 0xdc], 0xff
adc esi, dword [esp + 0x28]
adc ebp, dword [esp + 0x2c]
mov dword [esp + 0x5c], ebp
adc edx, dword [esp + 0x50]
mov dword [esp + 0x9c], edx
adc ebx, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
setb byte [esp + 0xec]
mov edx, dword [esp + 0x10c]
mov esi, edx
mov dword [esp + 0x11c], eax
add esi, eax
mov esi, edx
adc esi, eax
adc edx, 0
mov dword [esp + 0x88], edx
add byte [esp + 0x60], 0xff
adc dword [esp + 0xc], edi
setb byte [esp + 4]
mov eax, ebp
adc eax, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 8]
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0xcc]
mul edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mul edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x10]
mul edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mul edi
mov dword [esp + 0x24], edx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x54]
mul edi
mov ebp, edx
mov esi, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xbc]
mul edi
mov ebx, edx
add ebx, esi
adc ebp, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0xc]
adc dword [esp + 0xdc], esi
mov edi, dword [esp + 0x24]
adc edi, dword [esp + 0x38]
mov dword [esp + 0x24], edi
mov esi, dword [esp + 0x12c]
adc dword [esp + 0x28], esi
setb byte [esp + 0x12c]
add byte [esp + 4], 0xff
mov esi, dword [esp + 0x88]
adc esi, dword [esp + 0x5c]
adc dword [esp + 0x9c], 0
setb byte [esp + 0x38]
adc edi, dword [esp + 0x2c]
mov dword [esp + 4], edi
mov ebp, dword [esp]
add ebp, dword [esp + 8]
mov esi, ebp
add esi, eax
adc edx, dword [esp + 0x58]
mov edi, edx
add ebp, eax
mov dword [esp], ebp
adc ebx, dword [esp + 0xac]
mov ebx, dword [esp + 0x78]
mov eax, ebx
setb byte [esp + 8]
adc eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
add byte [esp + 0x7c], 0xff
mov eax, dword [esp + 0x18]
adc eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
setb byte [esp + 0x58]
adc eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x140]
mul esi
mov dword [esp + 0x7c], edx
mov ebp, eax
mov eax, dword [esp + 0x4c]
mul esi
add byte [esp + 0x8c], 0xff
adc eax, dword [esp + 0x150]
mov dword [esp + 0x18], eax
adc edx, ebp
mov dword [esp + 0xc], edx
setb byte [esp + 0x88]
add byte [esp + 0x38], 0xff
mov esi, dword [esp + 0x2c]
adc esi, 0
setb byte [esp + 0x8c]
setb byte [esp + 0x2c]
add byte [esp + 8], 0xff
adc dword [esp + 0x14], ebx
mov eax, dword [esp + 0xdc]
adc dword [esp + 0x9c], eax
setb al
adc dword [esp + 4], 0
add byte [esp + 0xfc], 0xff
mov edx, dword [esp + 0x40]
adc dword [esp + 0x48], edx
setb byte [esp + 0x78]
add al, 0xff
adc esi, dword [esp + 0x24]
adc dword [esp + 0x28], 0
setb byte [esp + 0xfc]
add edi, dword [esp + 0xac]
mov esi, dword [esp]
mov eax, esi
mov edx, 0xffffffff
mul edx
mov dword [esp + 0xac], eax
mov ebp, edx
add ebp, eax
mov ebx, ebp
adc ebx, 0
mov dword [esp + 8], ebx
mov ebx, eax
add ebx, esi
mov ebx, edi
adc ebx, ebp
mov dword [esp + 0x40], ebx
mov ebx, eax
add ebx, esi
adc ebp, edi
mov edi, dword [esp + 8]
adc edi, 0
mov ebp, edx
mov dword [esp + 0x140], edx
mov eax, edx
setb bl
mov esi, dword [esp + 0xac]
add eax, esi
mov eax, edx
adc eax, esi
adc ebp, 0
mov dword [esp + 0x38], ebp
add byte [esp + 0x58], 0xff
mov eax, dword [esp + 0x3c]
adc dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
setb byte [esp + 0x58]
adc eax, dword [esp + 0x48]
add byte [esp + 0xec], 0xff
mov edx, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
setb byte [esp + 0xec]
adc eax, 0
mov dword [esp + 0x30], eax
add byte [esp + 0x2c], 0xff
mov eax, edx
adc eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
mul dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov dword [esp + 0x150], edx
mov eax, dword [esp + 0x44]
movq xmm5, qword [eax + 0xc]
movd esi, xmm5
mov eax, esi
mul dword [esp + 0xcc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mul esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
mul esi
mov dword [esp + 0x3c], edx
mov ebp, eax
mov eax, dword [esp + 0x54]
mul esi
mov dword [esp + 0x80], esi
mov dword [esp + 0xdc], eax
mov dword [esp + 0x14], edx
movzx ebx, bl
mov eax, dword [esp + 0xbc]
mul esi
mov dword [esp + 0x6c], eax
mov eax, edx
add edi, dword [esp + 0x5c]
mov dword [esp + 8], edi
adc ebx, dword [esp + 0x38]
setb dl
movzx edi, dl
mov edx, eax
add edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x74]
adc dword [esp + 0x14], esi
adc ebp, dword [esp + 0x1c]
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x3c]
adc esi, dword [esp + 0x70]
mov dword [esp + 0x3c], esi
setb byte [esp + 0x94]
add ebx, dword [esp + 0x9c]
adc edi, dword [esp + 4]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
lea ebp, [edi + ebp]
mov dword [esp + 0x13c], ebp
mov edi, esi
setb byte [esp + 0x90]
adc edi, ebp
mov dword [esp + 0x9c], edi
add byte [esp + 0x12c], 0xff
mov edi, dword [esp + 0x24]
adc edi, dword [esp + 0x60]
mov dword [esp + 0x24], edi
mov esi, dword [esp + 0x40]
mov ebp, esi
setb byte [esp + 0x5c]
mov edi, dword [esp + 0x6c]
add ebp, edi
adc eax, dword [esp + 0xdc]
mov dword [esp + 0x60], eax
add esi, edi
mov dword [esp + 0x40], esi
adc edx, dword [esp + 8]
mov edx, ebx
setb al
mov esi, dword [esp + 0x14]
adc edx, esi
mov dword [esp + 0x6c], edx
add byte [esp + 0x88], 0xff
mov edi, dword [esp + 0x7c]
adc edi, 0
xor edx, edx
mov ah, byte [esp + 0x78]
mov dl, ah
add byte [esp + 0x58], 0xff
mov ebp, dword [esp + 0x48]
adc ebp, 0
adc edx, edi
mov dword [esp + 0xdc], edx
setb byte [esp + 0x7c]
add byte [esp + 0x8c], 0xff
mov edx, dword [esp + 0x18]
adc edx, dword [esp + 0x34]
adc dword [esp + 0x11c], 0
setb byte [esp + 0x58]
add al, 0xff
adc ebx, esi
mov eax, dword [esp + 0x38]
adc dword [esp + 0x1c], eax
shufps xmm5, xmm5, 0xe1
setb byte [esp + 0x18]
adc dword [esp + 0x9c], 0
movd esi, xmm5
mov dword [esp + 0x34], esi
mov eax, esi
mul dword [esp + 0xcc]
mov dword [esp + 0x38], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mul esi
mov ebx, edx
mov edi, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xbc]
mul esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], edx
add edx, edi
mov dword [esp + 0x98], edx
adc ebx, dword [esp + 4]
mov dword [esp + 4], ebx
setb byte [esp + 0x70]
add byte [esp + 0xec], 0xff
adc ebp, dword [esp + 0xc]
adc dword [esp + 0xdc], 0
setb byte [esp + 0x74]
add byte [esp + 0x90], 0xff
mov esi, dword [esp + 0x13c]
adc esi, 0
setb byte [esp + 0xc]
mov eax, dword [esp + 0x68]
mul dword [esp + 0x80]
mov dword [esp + 0x88], edx
add byte [esp + 0x94], 0xff
adc eax, dword [esp + 0x84]
mov edi, eax
setb byte [esp + 0x12c]
add byte [esp + 0x18], 0xff
adc esi, dword [esp + 0x3c]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x60]
lea eax, [edx + eax]
mov dword [esp + 8], eax
adc edi, 0
mov dword [esp + 0xec], edi
setb byte [esp + 0x84]
mov ebx, dword [esp + 0x40]
mov eax, ebx
mov edx, 0xffffffff
mul edx
mov esi, edx
add esi, eax
adc esi, 0
mov dword [esp + 0x3c], esi
mov esi, edx
add esi, eax
mov ebp, edx
adc ebp, eax
mov dword [esp + 0x8c], eax
mov edi, edx
mov dword [esp + 0x60], edx
adc edi, 0
mov dword [esp + 0x90], edi
mov ebp, eax
add ebp, ebx
mov ebp, edx
adc ebp, eax
mov edi, dword [esp + 8]
add ebp, edi
mov dword [esp + 0x18], ebp
add ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
adc dword [esp + 0x48], edx
add eax, ebx
adc esi, edi
mov eax, dword [esp + 0x3c]
mov edx, eax
setb byte [esp + 0x94]
mov esi, dword [esp + 0x6c]
adc edx, esi
mov edx, dword [esp + 0x1c]
setb byte [esp + 0x80]
mov edi, dword [esp + 0x90]
adc edx, edi
mov dword [esp + 8], edx
movzx edx, byte [esp + 0xfc]
xor ebx, ebx
mov bl, dl
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x28]
adc ebx, dword [esp + 0x24]
mov dword [esp + 0xfc], ebx
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x11c]
lea edx, [ebp + edx]
setb byte [esp + 0x78]
add edx, ebx
mov bh, byte [esp + 0xc]
add bh, 0xff
mov ebp, edx
adc ebp, dword [esp]
add byte [esp + 0x94], 0xff
movzx ebx, byte [esp + 0x84]
adc eax, esi
mov dword [esp + 0x3c], eax
add ebp, dword [esp + 0xec]
adc ebx, 0
mov dword [esp + 0x2c], ebx
add byte [esp + 0x80], 0xff
adc edi, dword [esp + 0x1c]
adc dword [esp + 0x9c], 0
adc ebp, 0
mov dword [esp + 0xec], ebp
setb byte [esp + 0x24]
xor ebx, ebx
add byte [esp + 0xc], 0xff
adc edx, dword [esp]
setb byte [esp]
xor edx, edx
mov esi, dword [esp + 0x14]
add dword [esp + 0x18], esi
setb dl
mov dword [esp + 0x28], edx
adc dword [esp + 0x98], eax
adc dword [esp + 4], 0
setb byte [esp + 0x1c]
mov eax, dword [esp + 0x20]
mul dword [esp + 0x34]
mov edi, eax
mov dword [esp + 0x14], edx
add byte [esp + 0x70], 0xff
mov edx, 0
movzx eax, byte [esp + 0x58]
mov dl, al
adc edi, dword [esp + 0x38]
setb byte [esp + 0xc]
mov ebp, dword [esp + 0x11c]
add ebp, dword [esp + 0x30]
adc edx, dword [esp + 0x10c]
setb al
add edx, dword [esp + 0xdc]
mov dword [esp + 0x30], edx
movzx eax, al
movzx edx, byte [esp + 0x7c]
mov bl, dl
adc eax, 0
add byte [esp + 0x74], 0xff
adc ebx, eax
mov esi, dword [esp + 0x64]
mov eax, esi
mul dword [esp + 0x50]
add byte [esp + 0x5c], 0xff
adc eax, dword [esp + 0x150]
adc edx, ebx
mov dword [esp + 0x5c], edx
setb byte [esp + 0x10c]
add ebp, dword [esp + 0xfc]
movd xmm0, dword [esp + 0x4c]
movd xmm1, dword [esp + 0x10]
punpckldq xmm1, xmm0
movdqa xmm3, xmm1
movdqu xmmword [esp + 0x150], xmm1
pxor xmm1, xmm1
punpckldq xmm5, xmm1
movd xmm0, esi
mov ebp, esi
mov ebx, dword [esp + 0x68]
movd xmm2, ebx
movdqu xmmword [esp + 0x11c], xmm2
punpcklqdq xmm2, xmm0
pmuludq xmm2, xmm5
pshufd xmm0, xmm2, 0x55
movdqa xmm4, xmm2
movdqu xmmword [esp + 0xfc], xmm2
movd dword [esp + 0x7c], xmm0
movd xmm0, dword [esp + 0x88]
movd xmm2, dword [esp + 0x14]
punpcklqdq xmm2, xmm0
movdqa xmm0, xmm3
punpckldq xmm0, xmm1
movdqu xmmword [esp + 0xdc], xmm0
pmuludq xmm5, xmm0
movdqa xmm0, xmm5
movdqa xmm7, xmmword [0x8bef20]
pand xmm5, xmm7
paddq xmm2, xmm5
psrlq xmm0, 0x20
pand xmm4, xmm7
paddq xmm4, xmm0
movd xmm3, edi
movd xmm0, dword [esp + 0xac]
punpcklqdq xmm3, xmm0
movzx edx, byte [esp + 0x78]
adc edx, eax
setb al
movzx eax, al
movd xmm0, edx
movd xmm1, eax
punpckldq xmm0, xmm1
movzx eax, byte [esp + 0x1c]
movd xmm5, dword [esp + 4]
movd xmm1, eax
punpckldq xmm5, xmm1
punpcklqdq xmm5, xmm0
movd xmm1, dword [esp + 8]
movd xmm0, dword [esp + 0x30]
punpcklqdq xmm1, xmm0
paddq xmm1, xmm5
pshufd xmm0, xmm1, 0xff
movd edi, xmm0
movd dword [esp + 0x1c], xmm1
movdqa xmm5, xmm1
psrlq xmm1, 0x20
mov eax, dword [esp + 0x44]
mov esi, dword [eax + 0x14]
movss xmm0, dword [esp + 0x28]
movups xmmword [esp + 0xac], xmm0
mov eax, ebp
mul esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], edx
movdqa xmm0, xmmword [0x8bef30]
pand xmm5, xmm0
movdqa xmm6, xmm0
mov eax, dword [esp + 0xcc]
mul esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x74], edx
movsd xmm5, xmm1
movzx eax, byte [esp]
movd xmm0, dword [esp + 0x9c]
movd xmm1, eax
punpcklqdq xmm0, xmm1
pand xmm3, xmm7
mov ebp, dword [esp + 0x4c]
mov eax, ebp
mul esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x28], edx
paddq xmm0, xmm3
paddq xmm0, xmm5
mov eax, ebx
mul esi
mov dword [esp + 0x70], eax
mov dword [esp + 8], edx
movzx eax, byte [esp + 0xc]
movzx edx, byte [esp + 0x12c]
movd xmm5, eax
movd xmm1, edx
shufps xmm5, xmm1, 0
mov eax, dword [esp + 0x10]
mul esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], edx
psrlq xmm5, 0x20
paddq xmm5, xmm2
movdqa xmm1, xmm0
psrlq xmm1, 0x20
movdqa xmm3, xmm0
pand xmm3, xmm6
movsd xmm3, xmm1
mov eax, dword [esp + 0x20]
mul esi
mov dword [esp + 4], eax
mov dword [esp + 0x30], edx
movd xmm1, dword [esp + 0x2c]
pshufd xmm1, xmm1, 0x24
psrlq xmm1, 0x20
movss xmm2, dword [esp + 0xec]
movsd xmm1, xmm2
mov eax, dword [esp + 0x54]
mul esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
movdqa xmm2, xmm5
pand xmm2, xmm7
paddq xmm2, xmm1
mov eax, dword [esp + 0xbc]
mul esi
mov dword [esp + 0xc], eax
mov dword [esp], edx
paddq xmm2, xmm3
mov eax, ebp
mul dword [esp + 0x34]
mov dword [esp + 0x88], edx
add edi, dword [esp + 0x5c]
movd xmm1, edi
movdqa xmm6, xmm2
shufps xmm6, xmm1, 0x8e
movd xmm1, dword [esp + 0x140]
movd xmm3, dword [esp + 0x40]
punpcklqdq xmm3, xmm1
movzx edx, byte [esp + 0x24]
movd xmm1, edx
shufps xmm1, xmm0, 0xe0
psrlq xmm1, 0x20
paddq xmm3, xmm1
andps xmm6, xmm7
paddq xmm3, xmm6
pshufd xmm1, xmm3, 0xff
movd esi, xmm1
psrlq xmm5, 0x20
paddq xmm5, xmm4
movdqa xmm1, xmm2
psrlq xmm1, 0x20
movdqa xmm4, xmm5
pand xmm4, xmm7
paddq xmm4, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm7
paddq xmm4, xmm1
pshufd xmm1, xmm5, 0x55
movd edi, xmm1
mov dword [esp + 0x78], edi
movd xmm7, dword [esp + 0x18]
movdqu xmm1, xmmword [esp + 0xac]
punpckldq xmm7, xmm1
movdqa xmm1, xmm4
psrlq xmm1, 0x20
punpcklqdq xmm7, xmm1
movdqu xmmword [esp + 0x12c], xmm7
movzx edx, byte [esp + 0x10c]
adc esi, edx
mov dword [esp + 0x5c], esi
xor edx, edx
add eax, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
lea esi, [eax + edi]
movd xmm1, esi
movq xmm1, xmm1
movaps xmm6, xmmword [0x8bef40]
shufps xmm6, xmm1, 0x84
movups xmmword [esp + 0x140], xmm6
setb dl
mov dword [esp + 0xac], edx
pand xmm7, xmm6
movdqu xmmword [esp + 0xec], xmm7
movd edi, xmm7
mov eax, edi
mov ebp, 0xffffffff
mul ebp
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x48]
mov esi, edx
mov edx, eax
mov dword [esp + 0x18], eax
add esi, eax
mov eax, esi
adc eax, 0
add edi, edx
adc esi, 0
setb dl
add esi, ebx
mov edi, esi
mov dword [esp + 0x40], esi
movzx edx, dl
adc edx, eax
mov ebx, edx
mov dword [esp + 0x80], edx
movd dword [esp + 0x48], xmm0
setb byte [esp + 0x98]
add edi, dword [esp + 0xc]
mov esi, dword [esp]
mov eax, esi
adc eax, dword [esp + 0x2c]
xorps xmm1, xmm1
movss xmm1, xmm2
mov edx, dword [esp + 0x1c]
add edx, ebx
lea ebx, [eax + edx]
mov eax, edi
mul ebp
mov ebp, eax
mov dword [esp + 0x3c], edx
mov eax, edx
add eax, ebp
mov edx, eax
adc edx, 0
mov dword [esp + 0x9c], edx
mov edx, ebp
mov dword [esp + 0x10c], ebp
add edx, edi
mov edx, ebx
adc edx, eax
mov dword [esp + 0x54], edx
add esi, dword [esp + 0x2c]
mov dword [esp], esi
mov esi, dword [esp + 0x10]
adc esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x74]
adc dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
adc dword [esp + 0x30], edx
mov edx, dword [esp + 0x70]
adc dword [esp + 0x50], edx
mov edx, dword [esp + 0x84]
adc dword [esp + 8], edx
mov edx, dword [esp + 0x58]
adc dword [esp + 0x28], edx
setb byte [esp + 0x2c]
add edi, ebp
adc eax, ebx
adc dword [esp + 0x9c], 0
setb byte [esp + 0x70]
mov ebp, dword [esp + 0x24]
mov eax, ebp
mov edx, dword [esp + 0x18]
add eax, edx
mov eax, ebp
adc eax, edx
mov eax, ebp
adc eax, 0
mov edx, dword [esp + 0x80]
add edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x98]
adc ebx, eax
setb al
add ebx, dword [esp + 0x48]
movzx eax, al
adc eax, 0
mov dword [esp + 0x38], eax
movlhps xmm1, xmm3
mov eax, dword [esp + 0x44]
movq xmm2, qword [eax + 0x18]
movdqa xmm0, xmm2
punpcklqdq xmm0, xmm2
movdqu xmm3, xmmword [esp + 0x170]
pmuludq xmm0, xmm3
mov eax, dword [esp + 0xc]
add dword [esp + 0x40], eax
adc edx, dword [esp]
setb byte [esp + 0x74]
mov eax, ebx
adc eax, esi
mov ebp, eax
mov dword [esp + 0x6c], eax
movd eax, xmm2
mov dword [esp + 0x170], eax
movd esi, xmm0
mov dword [esp + 0x98], esi
movdqa xmm3, xmm0
mul dword [esp + 0xcc]
mov dword [esp + 0x84], edx
movd xmm7, eax
shufps xmm0, xmm7, 0x8e
psrlq xmm3, 0x20
movaps xmm6, xmmword [0x8bef20]
andps xmm0, xmm6
paddq xmm0, xmm3
pshufd xmm3, xmm0, 0x55
movd dword [esp + 0x94], xmm3
pshufd xmm3, xmm0, 0xff
movd dword [esp + 0xc], xmm3
movd edx, xmm0
mov dword [esp + 0x80], edx
pshufd xmm0, xmm0, 0xee
movd dword [esp], xmm0
mov edi, dword [esp + 0x54]
add edi, esi
mov eax, dword [esp + 0x9c]
lea esi, [eax + ebp]
mov dword [esp + 0x90], esi
adc esi, edx
mov eax, edi
mov edx, 0xffffffff
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], edx
mov ebp, edx
add ebp, eax
mov edx, ebp
adc edx, 0
mov dword [esp + 0x58], edx
movd xmm3, dword [esp + 0x38]
pxor xmm0, xmm0
punpcklqdq xmm0, xmm3
shufps xmm0, xmmword [0x8bef50], 0xe2
paddq xmm0, xmm1
psrlq xmm1, 0x20
movd xmm3, dword [esp + 0x8c]
movq xmm3, xmm3
pshufd xmm3, xmm3, 0x84
paddq xmm3, xmm1
mov edx, eax
add edx, edi
mov edx, esi
adc edx, ebp
mov dword [esp + 0x44], edx
movd edx, xmm0
psrlq xmm0, 0x20
shufps xmm0, xmm3, 0xe4
add edi, eax
adc ebp, esi
setb byte [esp + 0x38]
add byte [esp + 0x74], 0xff
adc ebx, dword [esp + 0x10]
adc edx, dword [esp + 4]
mov dword [esp + 0x10], edx
movdqa xmm1, xmm4
pand xmm1, xmm6
paddq xmm0, xmm1
movd eax, xmm0
adc eax, dword [esp + 0x30]
mov dword [esp + 4], eax
setb byte [esp + 0x74]
mov eax, dword [esp]
add eax, dword [esp + 0x94]
adc dword [esp + 0xc], 0
mov edx, dword [esp + 0x98]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x90]
adc edx, dword [esp + 0x80]
movdqu xmm1, xmmword [esp + 0xfc]
pshufd xmm1, xmm1, 0xff
movd dword [esp + 0x30], xmm1
pshufd xmm1, xmm5, 0xff
adc eax, 0
mov dword [esp], eax
movd edi, xmm1
movzx ebx, byte [esp + 0x70]
setb byte [esp + 0x70]
mov edx, dword [esp + 0x3c]
mov eax, edx
mov esi, dword [esp + 0x10c]
add eax, esi
mov eax, edx
adc eax, esi
mov eax, edx
adc eax, 0
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x9c]
adc ebx, eax
mov dword [esp + 0x6c], ebx
pshufd xmm1, xmm4, 0xff
setb byte [esp + 0x8c]
mov eax, dword [esp + 0x34]
mul dword [esp + 0x64]
movd ebp, xmm1
xor ebx, ebx
add eax, dword [esp + 0x88]
setb bl
mov esi, dword [esp + 0x78]
add dword [esp + 0x7c], esi
adc dword [esp + 0xac], eax
adc ebx, edx
mov dword [esp + 0xfc], ebx
pshufd xmm1, xmm0, 0xff
movd esi, xmm1
add edi, dword [esp + 0x30]
xor eax, eax
add edi, dword [esp + 0x5c]
setb al
mov ebx, eax
xor eax, eax
add esi, dword [esp + 0x60]
setb al
lea edx, [edi + ebp]
add esi, edx
adc eax, 0
add edi, ebp
adc ebx, eax
mov dword [esp + 0x60], ebx
movd xmm7, dword [esp + 0x20]
movdqa xmm1, xmm7
movdqu xmm3, xmmword [esp + 0x11c]
punpckldq xmm1, xmm3
movdqu xmm6, xmmword [esp + 0x160]
punpcklqdq xmm6, xmm1
movdqa xmm1, xmm2
punpckldq xmm1, xmmword [0x8bef60]
pshufd xmm1, xmm1, 0x4e
movdqu xmmword [esp + 0x9c], xmm1
pmuludq xmm6, xmm1
pshufd xmm1, xmm6, 0xee
movdqu xmmword [esp + 0x160], xmm6
movd edi, xmm1
xor eax, eax
add edi, dword [esp + 0x84]
setb al
movd xmm1, eax
shufps xmm2, xmm2, 0x55
movd edx, xmm2
mov dword [esp + 0x30], edx
movdqu xmm2, xmmword [esp + 0x140]
movdqu xmm3, xmmword [esp + 0x12c]
paddq xmm2, xmm3
movlps xmm2, qword [esp + 0xec]
movaps xmm3, xmm2
movdqa xmm2, xmm0
psrlq xmm2, 0x20
andps xmm0, xmmword [0x8bef30]
movsd xmm0, xmm2
paddq xmm0, xmm3
pshufd xmm2, xmm0, 0xff
mov eax, dword [esp + 0xbc]
mul edx
mov dword [esp + 0xbc], eax
movd ebp, xmm2
xor ebx, ebx
add ebp, dword [esp + 0xac]
setb bl
movd xmm2, ebx
movd xmm3, dword [esp + 0xc]
pshufd xmm3, xmm3, 0x50
movd xmm4, edx
pshufd xmm5, xmm4, 0x50
punpcklqdq xmm5, xmm3
movd xmm3, edi
punpckldq xmm3, xmm1
pxor xmm1, xmm1
movss xmm1, xmm6
movlhps xmm1, xmm3
psrlq xmm5, 0x20
paddq xmm1, xmm5
movdqa xmm4, xmm1
pshufd xmm1, xmm0, 0xee
movd edx, xmm1
movd xmm1, ebp
punpckldq xmm1, xmm2
movzx edi, byte [esp + 0x70]
movd xmm2, dword [esp]
movd xmm3, edi
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm1
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
lea edi, [ebx + eax]
movd xmm1, edi
movd xmm3, esi
punpcklqdq xmm1, xmm3
paddq xmm1, xmm2
pshufd xmm2, xmm0, 0x55
movd edi, xmm2
movd esi, xmm0
add esi, edx
movd xmm0, esi
movdqa xmm3, xmm1
punpcklqdq xmm3, xmm0
movzx edx, byte [esp + 0x74]
movzx esi, byte [esp + 0x38]
movd xmm0, edx
movd xmm5, esi
punpcklqdq xmm5, xmm0
movd xmm2, dword [esp + 0x58]
movd xmm0, dword [esp + 0x50]
punpcklqdq xmm2, xmm0
paddq xmm2, xmm5
movdqa xmm5, xmmword [0x8bef20]
pand xmm3, xmm5
paddq xmm2, xmm3
adc edi, 0
mov dword [esp + 0x34], edi
mov ebp, dword [esp + 0x44]
mov edx, ebp
mov eax, dword [esp + 0xbc]
add edx, eax
movd edx, xmm4
movdqa xmm6, xmm4
movdqu xmmword [esp + 0xac], xmm4
movd esi, xmm2
mov edi, esi
adc edi, edx
mov dword [esp], edi
add ebp, eax
mov dword [esp + 0x44], ebp
adc esi, edx
movzx ebp, byte [esp + 0x8c]
setb byte [esp + 0x20]
mov esi, dword [esp + 0x48]
mov edx, esi
mov edi, dword [esp + 0x1c]
add edx, edi
mov edx, esi
adc edx, edi
adc esi, 0
mov dword [esp + 0x50], esi
add ebx, dword [esp + 0x10]
adc ebp, dword [esp + 4]
setb byte [esp + 0x10]
xor edx, edx
mov esi, dword [esp + 0x60]
add esi, dword [esp + 0xfc]
movss xmm3, dword [esp + 0xcc]
movups xmm0, xmmword [esp + 0x150]
movlhps xmm3, xmm0
movups xmmword [esp + 0xcc], xmm3
movdqu xmm0, xmmword [esp + 0x11c]
punpcklqdq xmm7, xmm0
movdqu xmmword [esp + 0xbc], xmm7
movss xmm0, dword [esp + 0x18]
shufps xmm6, xmm0, 0x4e
movdqa xmm0, xmm1
psrlq xmm0, 0x20
movdqa xmm7, xmm1
movdqa xmm4, xmmword [0x8bef30]
pand xmm7, xmm4
movsd xmm7, xmm0
movd xmm0, dword [esp + 0x34]
movd xmm3, ebp
punpcklqdq xmm3, xmm0
movdqa xmm4, xmm5
pand xmm6, xmm5
paddq xmm3, xmm6
paddq xmm3, xmm7
movdqa xmm0, xmm3
punpckhqdq xmm0, xmm1
setb dl
movd xmm1, esi
movd xmm6, edx
punpckldq xmm1, xmm6
movd xmm6, dword [esp + 0x24]
punpcklqdq xmm6, xmm1
psrlq xmm0, 0x20
paddq xmm6, xmm0
pshufd xmm0, xmm6, 0xff
movd eax, xmm0
pshufd xmm0, xmm6, 0xee
movd esi, xmm0
pshufd xmm0, xmm6, 0x55
movd ebx, xmm0
movd edx, xmm6
movdqu xmm5, xmmword [esp + 0x9c]
movdqu xmm0, xmmword [esp + 0xcc]
pmuludq xmm0, xmm5
movdqu xmmword [esp + 0xcc], xmm0
movdqu xmm1, xmmword [esp + 0x160]
psrlq xmm1, 0x20
pand xmm0, xmm4
paddq xmm0, xmm1
movdqu xmm1, xmmword [esp + 0xac]
psrlq xmm1, 0x20
paddq xmm0, xmm1
movdqa xmm1, xmm3
psrlq xmm1, 0x20
movdqa xmm7, xmm3
movdqa xmm4, xmmword [0x8bef30]
pand xmm7, xmm4
movsd xmm7, xmm1
movzx edi, byte [esp + 0x10]
movd xmm1, edi
movd xmm6, dword [esp + 0x50]
punpcklqdq xmm6, xmm1
movdqa xmm1, xmm2
pand xmm1, xmm4
psrlq xmm2, 0x20
movsd xmm1, xmm2
paddq xmm6, xmm1
movdqa xmm1, xmm6
punpckhdq xmm1, xmmword [0x8bef60]
shufpd xmm1, xmm2, 2
movss xmm2, dword [esp + 8]
movdqa xmm4, xmm0
shufps xmm4, xmm2, 0x8e
movaps xmm2, xmmword [0x8bef20]
andps xmm4, xmm2
paddq xmm4, xmm7
paddq xmm4, xmm1
movd xmm1, dword [esp + 0x28]
movdqa xmm2, xmm0
punpcklqdq xmm2, xmm1
pand xmm2, xmmword [0x8bef20]
movzx edi, byte [esp + 0x20]
movd xmm7, edi
shufps xmm7, xmm4, 0xe0
psrlq xmm7, 0x20
paddq xmm7, xmm2
add edx, esi
pslldq xmm3, 8
shufps xmm3, xmmword [0x8bef50], 0xe2
paddq xmm3, xmm6
movd xmm2, edx
movdqa xmm1, xmm3
punpcklqdq xmm1, xmm2
movdqa xmm2, xmmword [0x8bef20]
pand xmm1, xmm2
paddq xmm1, xmm7
movdqu xmm2, xmmword [esp + 0xbc]
pmuludq xmm2, xmm5
movdqu xmmword [esp + 0xbc], xmm2
movdqu xmm5, xmmword [esp + 0xcc]
psrlq xmm5, 0x20
movdqa xmm7, xmmword [0x8bef20]
pand xmm2, xmm7
paddq xmm2, xmm5
psrlq xmm0, 0x20
paddq xmm2, xmm0
movd xmm0, dword [esp + 0x10c]
movdqa xmm5, xmm2
punpcklqdq xmm5, xmm0
psrlq xmm6, 0x20
movd xmm0, dword [esp + 0x40]
movq xmm0, xmm0
pshufd xmm0, xmm0, 0x84
paddq xmm0, xmm6
psrlq xmm3, 0x20
shufps xmm3, xmm0, 0xe4
movdqa xmm0, xmm4
pand xmm0, xmm7
paddq xmm3, xmm0
movdqa xmm0, xmm1
psrlq xmm0, 0x20
movdqa xmm6, xmm1
pand xmm6, xmmword [0x8bef30]
movsd xmm6, xmm0
pxor xmm7, xmm7
movss xmm7, xmm3
movdqa xmm0, xmm3
psrlq xmm0, 0x20
movsd xmm0, xmm7
adc ebx, eax
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x44]
mov eax, edi
mov edx, 0xffffffff
mul edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edx
movdqa xmm7, xmmword [0x8bef20]
pand xmm5, xmm7
paddq xmm0, xmm5
mov ebp, edx
add ebp, eax
mov ebx, ebp
adc ebx, 0
paddq xmm0, xmm6
movdqu xmmword [esp + 0x10c], xmm0
mov esi, eax
add esi, edi
mov esi, edx
adc esi, eax
mov dword [esp + 0xcc], esi
mov esi, eax
add esi, edi
adc ebp, dword [esp]
setb byte [esp + 0x34]
movd esi, xmm1
mov edi, esi
adc edi, ebx
mov dword [esp + 0x10], edi
mov edi, edx
add edi, eax
mov edi, edx
adc edi, eax
mov edi, edx
adc edi, 0
add byte [esp + 0x34], 0xff
adc ebx, esi
setb al
movd edx, xmm0
mov esi, edx
adc esi, edi
mov dword [esp + 0x34], esi
add al, 0xff
adc edi, edx
setb byte [esp + 0x160]
add byte [esp + 0x2c], 0xff
mov eax, dword [esp + 0x20]
adc eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
setb byte [esp + 0x24]
mov eax, dword [esp + 0x170]
mov esi, dword [esp + 0x64]
mul esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x11c], edx
pshufd xmm5, xmm2, 0xee
movd dword [esp + 0xac], xmm5
pshufd xmm4, xmm4, 0x55
mov edi, dword [esp + 0x30]
mov eax, edi
mul esi
mov dword [esp + 8], eax
mov dword [esp + 0x64], edx
movd esi, xmm4
mov eax, dword [esp + 0x4c]
mul edi
mov ebp, edi
mov dword [esp + 0x4c], eax
mov edi, edx
pshufd xmm4, xmm3, 0xee
movd dword [esp + 4], xmm4
pshufd xmm3, xmm3, 0x55
mov eax, dword [esp + 0x68]
mul ebp
movd ebp, xmm3
xor ebx, ebx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
setb bl
mov dword [esp + 0x4c], ebx
xor edx, edx
add edi, dword [esp + 8]
mov dword [esp + 8], edi
setb dl
mov dword [esp + 0x68], edx
xor edx, edx
add esi, dword [esp + 0xac]
setb dl
add esi, dword [esp + 4]
adc edx, 0
xor ebx, ebx
add ebp, esi
setb bl
movd xmm4, ebx
movd xmm5, edx
movdqu xmm6, xmmword [esp + 0xdc]
movdqu xmm0, xmmword [esp + 0x9c]
pmuludq xmm6, xmm0
movdqu xmm0, xmmword [esp + 0xbc]
psrlq xmm0, 0x20
movdqa xmm3, xmm6
pand xmm3, xmm7
paddq xmm3, xmm0
psrlq xmm2, 0x20
paddq xmm3, xmm2
pshufd xmm1, xmm1, 0xff
movd edx, xmm1
movups xmm0, xmmword [esp + 0x10c]
shufps xmm4, xmm0, 0xe0
movaps xmm1, xmm0
psrlq xmm1, 0x20
andps xmm0, xmmword [0x8bef30]
movsd xmm0, xmm1
movd xmm1, ebp
punpcklqdq xmm1, xmm5
movdqa xmm2, xmm3
pand xmm2, xmm7
paddq xmm1, xmm2
paddq xmm1, xmm0
add edx, dword [esp + 0x20]
movd xmm0, edx
movdqa xmm2, xmm1
shufps xmm2, xmm0, 0x8e
movd xmm5, dword [esp + 0x3c]
movd xmm0, dword [esp + 0x54]
punpcklqdq xmm0, xmm5
psrlq xmm4, 0x20
paddq xmm0, xmm4
andps xmm2, xmm7
paddq xmm0, xmm2
pshufd xmm2, xmm0, 0xff
movd esi, xmm2
movd xmm4, dword [esp + 0x18]
movd xmm2, eax
punpcklqdq xmm2, xmm4
movzx eax, byte [esp + 0x24]
adc esi, eax
psrlq xmm6, 0x20
paddq xmm2, xmm6
psrlq xmm3, 0x20
paddq xmm2, xmm3
pshufd xmm3, xmm2, 0xff
movd eax, xmm3
add eax, dword [esp + 0x11c]
pshufd xmm3, xmm2, 0x55
movd edi, xmm3
add edi, dword [esp + 0x50]
pxor xmm3, xmm3
movss xmm3, xmm1
psrlq xmm1, 0x20
pand xmm2, xmm7
paddq xmm2, xmm1
movzx edx, byte [esp + 0x160]
movd xmm1, edx
movlhps xmm3, xmm0
pand xmm0, xmm7
paddq xmm2, xmm0
pxor xmm0, xmm0
punpcklqdq xmm0, xmm1
movd xmm1, dword [esp + 0x1c]
shufps xmm0, xmmword [0x8bef50], 0xe2
movd xmm4, esi
paddq xmm0, xmm3
psrlq xmm3, 0x20
movq xmm1, xmm1
pshufd xmm1, xmm1, 0x84
paddq xmm1, xmm3
movdqa xmm3, xmm0
psrlq xmm3, 0x20
shufps xmm3, xmm1, 0xe4
movdqa xmm1, xmm2
pand xmm1, xmm7
paddq xmm1, xmm3
movdqa xmm5, xmm1
punpckhdq xmm5, xmmword [0x8bef60]
movd xmm6, eax
psrlq xmm2, 0x20
shufps xmm5, xmm2, 0xe4
punpcklqdq xmm2, xmm4
movd xmm3, edi
punpcklqdq xmm3, xmm6
movd xmm4, dword [esp + 0x48]
paddq xmm3, xmm2
movd xmm2, dword [esp + 0x44]
mov esi, dword [esp + 8]
adc esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x68]
adc edi, dword [esp + 0x64]
paddq xmm3, xmm5
pshufd xmm5, xmm3, 0x55
movd edx, xmm5
xor eax, eax
add edx, esi
movd xmm5, edx
punpcklqdq xmm2, xmm4
movdqa xmm4, xmm1
psrlq xmm4, 0x20
paddq xmm2, xmm4
setb al
movd xmm4, eax
pand xmm7, xmm3
paddq xmm2, xmm7
pshufd xmm6, xmm2, 0xee
psrlq xmm6, 0x20
pshufd xmm7, xmm3, 0xff
paddd xmm7, xmm6
movd xmm3, dword [esp + 0x28]
movd eax, xmm7
xor edx, edx
add edi, eax
movdqa xmm7, xmmword [0x8bef30]
pand xmm7, xmm2
movdqa xmm6, xmm2
psrlq xmm6, 0x20
movsd xmm7, xmm6
punpckldq xmm5, xmm4
punpcklqdq xmm3, xmm5
paddq xmm3, xmm7
pshufd xmm4, xmm3, 0xee
setb dl
mov ebp, edx
movd eax, xmm4
movd edx, xmm3
add edx, eax
mov dword [esp + 0x54], edx
pshufd xmm4, xmm3, 0x55
movd ebx, xmm4
adc ebx, dword [esp + 0x40]
pshufd xmm3, xmm3, 0xff
setb al
movd edx, xmm3
lea esi, [edi + edx]
add ebx, esi
mov dword [esp + 0x68], ebx
movzx eax, al
adc eax, 0
add edi, edx
adc ebp, eax
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0xcc]
add eax, dword [esp]
mov dword [esp + 0xcc], eax
add eax, 1
mov dword [esp + 0x20], eax
mov eax, 0
mov edx, 0xffffffff
sbb al, dl
movzx eax, al
mov esi, 1
sub esi, eax
sbb edx, 0
mov eax, edx
add esi, dword [esp + 0x10]
mov dword [esp], esi
mov edx, 0
sbb dl, al
mov esi, dword [esp + 0x34]
add esi, 1
mov eax, 0
adc eax, 0xffffffff
movzx edx, dl
sub esi, edx
mov dword [esp + 0x9c], esi
sbb eax, 0
neg al
movzx eax, al
movd ebp, xmm0
mov edx, ebp
sub edx, eax
mov dword [esp + 0x64], edx
mov eax, 0
sbb eax, eax
neg al
movzx eax, al
movd edx, xmm1
mov dword [esp + 0x40], edx
sub edx, eax
mov dword [esp + 0xbc], edx
mov eax, 0
sbb eax, eax
neg al
movzx eax, al
movd edx, xmm2
mov dword [esp + 0x28], edx
sub edx, eax
mov dword [esp + 0x44], edx
mov eax, 0
sbb eax, eax
mov edx, ecx
neg al
movzx esi, al
not esi
add esi, dword [esp + 0x54]
mov eax, 0
adc al, 0xff
neg al
movzx edi, al
mov ecx, dword [esp + 0x68]
add ecx, 1
mov eax, 0
adc eax, 0xffffffff
sub ecx, edi
sbb eax, 0
neg al
movzx eax, al
cmp dword [esp + 0x4c], eax
mov eax, 0
sbb eax, eax
test al, al
mov eax, dword [esp + 0x20]
cmovne eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
mov ebx, dword [esp]
cmovne ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x9c]
cmovne edi, dword [esp + 0x34]
mov eax, dword [esp + 0x64]
cmovne eax, ebp
mov ebp, dword [esp + 0xbc]
cmovne ebp, dword [esp + 0x40]
mov dword [esp + 0xbc], ebp
mov ebp, dword [esp + 0x44]
cmovne ebp, dword [esp + 0x28]
mov dword [esp + 0x44], ebp
cmovne esi, dword [esp + 0x54]
cmovne ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
mov dword [edx], ebp
mov dword [edx + 4], ebx
mov dword [edx + 8], edi
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0xbc]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], ecx
add esp, 0x180
pop esi
pop edi
pop ebx
pop ebp
ret