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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov eax, edx
or eax, 0x100000
test ecx, ecx
cmove eax, edx
lea esi, [ecx - 0x435]
mov ebp, 0xfffffbcc
cmovne ebp, esi
mov esi, dword [esp + 0x6c]
mov ebx, eax
shld ebx, esi, 2
or edx, esi
setne dl
cmp ecx, 2
setb cl
or cl, dl
mov edx, esi
mov edi, 0xcccccccc
lea esi, [esi*4]
test ebp, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x20], esi
js 0x100b8e64
imul esi, ebp, 0x13441
shr esi, 0x12
cmp ebp, 4
adc esi, 0xffffffff
mov dword [esp + 0x24], ebp
mov ebp, esi
shl ebp, 4
lea ebx, [edx + edx]
mov dword [esp + 8], ebx
mov ecx, dword [ebp + 0x10102670]
mov dword [esp + 0x18], ecx
mov edx, ecx
mulx ebx, edx, ebx
mov dword [esp + 4], ebx
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 0x10102674]
mov dword [esp + 0xc], edx
mulx edx, ebx, dword [esp + 8]
mov dword [esp], ebx
mov dword [esp + 0x30], edx
mov edx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
shld eax, edx, 1
mov edx, ecx
mulx ebx, ecx, eax
mov dword [esp + 0x14], esi
imul edx, esi, 0x12934f
shr edx, 0x13
mov dword [esp + 0x34], edx
mov esi, ecx
add esi, dword [esp + 4]
mov edx, dword [esp + 0xc]
mulx edx, ecx, eax
adc ecx, ebx
mov dword [esp + 4], ecx
adc edx, 0
mov dword [esp + 0x10], edx
add esi, dword [esp]
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 0x10102678]
mov dword [esp + 0x40], esi
mov edx, esi
mov ecx, dword [esp + 8]
mulx ebx, edx, ecx
mov dword [esp + 0x3c], ebx
mov dword [esp], edx
mov edx, dword [esp + 0x30]
adc dword [esp + 4], edx
mov ebp, dword [ebp + 0x1010267c]
mov edx, ebp
mov dword [esp + 0x30], ebp
mulx ecx, edx, ecx
mov dword [esp + 0x28], edx
mov dword [esp + 8], ecx
adc dword [esp + 0x10], 0
mov edx, esi
mov esi, eax
mulx ecx, eax, eax
add eax, dword [esp + 0x3c]
mov edx, ebp
mulx esi, ebx, esi
adc ebx, ecx
adc esi, 0
add eax, dword [esp + 0x28]
adc ebx, dword [esp + 8]
adc esi, 0
mov edx, dword [esp]
add edx, dword [esp + 4]
mov dword [esp], edx
adc eax, dword [esp + 0x10]
adc ebx, 0
adc esi, 0
mov ecx, edx
add ecx, dword [esp + 0x40]
mov ebp, eax
adc ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
adc edx, dword [esp + 0xc]
adc ecx, 0
adc ebp, 0
cmp ecx, dword [esp]
mov ecx, ebp
mov dword [esp + 8], eax
sbb ecx, eax
mov dword [esp + 0x10], ebx
adc ebx, 0
mov dword [esp + 4], esi
mov edx, esi
adc edx, 0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
lea ecx, [esi + eax]
mov dword [esp + 0x28], ecx
mov ecx, 7
sub ecx, dword [esp + 0x28]
add eax, esi
add eax, 0x19
shrx esi, ebp, eax
mov ebp, eax
shld edx, ebx, cl
shlx eax, ebx, ecx
mov ebx, ecx
test bl, 0x20
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
or esi, eax
cmp byte [esp + 0x1c], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x28], ebp
je 0x100b907b
mov ebp, dword [esp]
mov eax, ebp
sub eax, dword [esp + 0x40]
mov ecx, ebx
mov ebx, dword [esp + 8]
sbb ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
sbb esi, dword [esp + 0xc]
sbb eax, 0
sbb ebx, 0
cmp ebp, eax
mov eax, dword [esp + 8]
sbb eax, ebx
mov ebp, dword [esp + 0x10]
sbb ebp, 0
mov esi, dword [esp + 4]
mov eax, esi
sbb eax, 0
shld eax, ebp, cl
shlx ebp, ebp, ecx
test cl, 0x20
cmovne eax, ebp
mov edx, 0
cmove edx, ebp
mov ecx, dword [esp + 0x28]
shrx ebx, ebx, ecx
jmp 0x100b9125
imul edi, ebp, 0xfff4d105
shr edi, 0x14
xor ecx, ecx
cmp ebp, 0xffffffff
setne cl
sub edi, ecx
add ebp, edi
mov ecx, 0x101038b0
mov esi, ebp
shl esi, 4
sub ecx, esi
lea ebx, [edx + edx]
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mulx edx, ecx, ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov ecx, 0x101038b4
sub ecx, esi
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov edx, ecx
mulx edx, ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
shld eax, edx, 1
mov edx, dword [esp + 0x14]
mulx edx, ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x34], edx
mov edx, ecx
mov ebx, eax
mulx eax, ecx, eax
mov dword [esp + 4], eax
mov dword [esp + 0x24], ebp
imul edx, ebp, 0xffed6cb1
shr edx, 0x13
mov dword [esp + 0x40], edi
mov dword [esp + 0x28], edx
sub edi, edx
mov dword [esp + 8], edi
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x2c]
adc ecx, dword [esp + 0x34]
mov edx, dword [esp + 4]
adc edx, 0
add eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
adc ecx, dword [esp]
adc edx, 0
mov dword [esp + 4], edx
mov edx, 0x101038b8
sub edx, esi
mov ebp, dword [edx]
mov edx, ebp
mov eax, dword [esp + 0x10]
mulx edi, edx, eax
mov dword [esp + 0x2c], edi
mov dword [esp], edx
mov edx, 0x101038bc
sub edx, esi
mov edi, dword [edx]
mov edx, edi
mulx eax, edx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mov edx, ebp
mulx eax, esi, ebx
mov dword [esp + 0x34], eax
add esi, dword [esp + 0x2c]
mov eax, edi
mov edx, edi
mulx ebx, edi, ebx
adc edi, dword [esp + 0x34]
adc ebx, 0
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x10]
adc ebx, 0
mov edx, dword [esp]
add edx, ecx
mov dword [esp], edx
adc esi, dword [esp + 4]
adc edi, 0
adc ebx, 0
mov ecx, edx
mov dword [esp + 0x50], ebp
add ecx, ebp
mov ebp, esi
mov dword [esp + 0x48], eax
adc ebp, eax
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
adc edx, dword [esp + 0x38]
adc ecx, 0
adc ebp, 0
cmp ecx, dword [esp]
mov ecx, ebp
mov dword [esp + 0x10], esi
sbb ecx, esi
mov dword [esp + 0x18], edi
mov esi, edi
adc esi, 0
mov dword [esp + 4], ebx
adc ebx, 0
mov edx, 9
mov edi, dword [esp + 8]
sub edx, edi
mov ecx, edx
shld ebx, esi, cl
shlx ecx, esi, edx
test dl, 0x20
cmovne ebx, ecx
mov dword [esp + 0x2c], ebx
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x34], ecx
mov eax, edi
add eax, 0x17
mov dword [esp + 8], eax
shrx eax, ebp, eax
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x1c], 0
je 0x100b928a
mov edi, dword [esp]
mov eax, edi
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
sbb ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
cmp esi, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
sbb esi, dword [esp + 0x38]
sbb eax, 0
sbb ebx, 0
cmp edi, eax
mov eax, ecx
sbb eax, ebx
mov esi, dword [esp + 0x18]
sbb esi, 0
mov edi, dword [esp + 4]
sbb edi, 0
mov ecx, edx
shld edi, esi, cl
shlx ecx, esi, edx
test dl, 0x20
cmovne edi, ecx
mov ebp, 0
cmove ebp, ecx
mov ecx, dword [esp + 8]
shrx eax, ebx, ecx
jmp 0x100b932a
mov ebp, dword [esp]
mov eax, ebp
mov ecx, dword [esp + 0x24]
shld eax, ecx, 1
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x38]
shld ecx, esi, 1
mov ebx, dword [esp + 8]
shld ebx, ebp, 1
add esi, esi
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x10]
shld eax, ebp, 1
mov ebp, dword [esp]
cmp dword [esp + 0x44], ebp
mov ebp, ebx
sbb ebp, dword [esp + 8]
setb byte [esp + 0x24]
mov ebp, dword [esp + 0x44]
sub ebp, dword [esp + 0x40]
mov edx, ebx
sbb edx, dword [esp + 0x30]
cmp esi, dword [esp + 0x18]
mov esi, dword [esp + 4]
sbb ecx, dword [esp + 0xc]
sbb ebp, 0
sbb edx, 0
mov dword [esp], edx
cmp dword [esp + 0x44], ebp
sbb ebx, edx
movzx ecx, byte [esp + 0x24]
mov edx, dword [esp + 0x10]
lea ebp, [ecx + edx*2]
sbb ebp, 0
sbb eax, 0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
lea ebx, [ecx + edx]
add ebx, 0x7a
mov cl, 0x80
sub cl, bl
shld eax, ebp, cl
shlx ebp, ebp, ecx
test cl, 0x20
cmovne eax, ebp
mov edx, 0
cmove edx, ebp
shrx ebx, dword [esp], ebx
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x10]
shld esi, ebp, cl
or ebx, edx
shlx edx, ebp, ecx
test cl, 0x20
mov ecx, dword [esp + 0x28]
shrx ecx, dword [esp + 8], ecx
mov ebp, dword [esp + 0x48]
vmovd xmm0, ebp
mov ebp, dword [esp + 0x3c]
vpinsrd xmm0, xmm0, ebp, 1
vpinsrd xmm0, xmm0, ebx, 2
mov ebx, ecx
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
or ebx, edx
vpinsrd xmm0, xmm0, eax, 3
cmp dword [esp + 0x14], 0x15
ja 0x100b9283
mov dword [esp], ebx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x20]
mov edx, esi
and edx, 0xfffffffc
xor eax, eax
mov ebx, 0xcccccccc
inc ebx
mulx ecx, ecx, ebx
mov dword [esp + 0x10], ecx
sete al
mov ecx, edx
mulx edx, ebp, edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
imul ecx, eax
add ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
imul eax, edx
mulx ebx, ebp, ebx
add ebp, ecx
adc ebx, eax
mulx eax, ecx, edi
and ebp, 0xfffffff0
add ebp, dword [esp + 8]
mov edx, dword [esp + 0xc]
adc edx, 0
add ebx, ecx
adc eax, 0
add ebx, edx
adc eax, 0
shld eax, ebx, 0x1e
lea eax, [eax + eax*4]
cmp eax, esi
jne 0x100b9412
mov edx, 0xffffffff
mov eax, dword [esp + 0x4c]
nop dword [eax]
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], edx
xor ecx, ecx
mov ebx, 0xcccccccc
inc ebx
mov edx, esi
mulx edx, edx, ebx
mov dword [esp + 0x1c], edx
mov edx, esi
mulx ebp, edx, edi
mov dword [esp + 8], edx
sete cl
mov edi, esi
imul edi, ecx
add edi, dword [esp + 0x1c]
imul ecx, eax
mov edx, eax
mulx ebx, esi, ebx
add esi, edi
mov edi, 0xcccccccc
adc ebx, ecx
mov edx, eax
mulx eax, ecx, edi
mov edx, dword [esp + 0xc]
and esi, 0xfffffffc
add esi, dword [esp + 8]
adc ebp, 0
add ebx, ecx
adc eax, 0
add ebx, ebp
adc eax, 0
shrd ebx, eax, 2
shr eax, 2
lea ecx, [ebx + ebx*4]
inc edx
cmp ecx, dword [esp + 0x20]
mov esi, ebx
je 0x100b9200
cmp edx, dword [esp + 0x14]
setae cl
jmp 0x100b94cb
xor eax, eax
jmp 0x100b9586
mov esi, dword [esp]
mov ecx, esi
mov eax, dword [esp + 0xc]
shld ecx, eax, 1
mov dword [esp + 0x44], ecx
mov ebp, dword [esp + 0x30]
shld eax, ebp, 1
neg dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
shld ebx, esi, 1
add ebp, ebp
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
shld edi, esi, 1
cmp ecx, dword [esp]
mov esi, ebx
sbb esi, dword [esp + 0x10]
setb byte [esp]
mov esi, ecx
sub esi, dword [esp + 0x50]
mov ecx, ebx
sbb ecx, dword [esp + 0x48]
cmp ebp, dword [esp + 0x14]
sbb eax, dword [esp + 0x38]
sbb esi, 0
mov eax, ecx
sbb eax, 0
cmp dword [esp + 0x44], esi
movzx ecx, byte [esp]
mov esi, dword [esp + 0x18]
lea ebp, [ecx + esi*2]
sbb ebx, eax
sbb ebp, 0
sbb edi, 0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x28]
lea ebx, [ecx + esi]
add ebx, 0x78
mov cl, 0x80
sub cl, bl
shld edi, ebp, cl
shlx esi, ebp, ecx
test cl, 0x20
cmovne edi, esi
mov ebp, 0
cmove ebp, esi
shrx eax, eax, ebx
or eax, ebp
mov dword [esp], eax
mov ecx, edx
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 4]
shld eax, esi, cl
mov ebx, dword [esp + 0x34]
or ebx, dword [esp + 0x3c]
shlx ecx, esi, edx
xor esi, esi
test dl, 0x20
cmovne eax, ecx
cmove esi, ecx
mov ecx, dword [esp + 8]
shrx ebp, dword [esp + 0x10], ecx
or ebp, esi
mov ecx, dword [esp + 0x40]
cmp ecx, 1
mov esi, eax
ja 0x100b93b1
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x6c]
and ecx, 1
sete dl
sub ebx, ecx
vmovd xmm0, ebx
mov ecx, dword [esp + 0x2c]
sbb ecx, 0
vpinsrd xmm0, xmm0, ecx, 1
vpinsrd xmm0, xmm0, dword [esp], 2
mov ecx, dword [esp + 0x1c]
and cl, dl
mov dword [esp + 0x1c], ecx
vpinsrd xmm0, xmm0, edi, 3
mov al, 1
mov dword [esp + 0xc], eax
mov ebx, ebp
jmp 0x100b9691
vmovd xmm0, ebx
vpinsrd xmm0, xmm0, dword [esp + 0x2c], 1
vpinsrd xmm0, xmm0, dword [esp], 2
xor edx, edx
vpinsrd xmm0, xmm0, edi, 3
cmp ecx, 0x3e
ja 0x100b94d2
dec cl
mov eax, 0xffffffff
mov ebx, ecx
shlx ecx, eax, ecx
test bl, 0x20
cmovne eax, ecx
cmovne ecx, edx
andn eax, eax, dword [esp + 0x4c]
andn ecx, ecx, dword [esp + 0x20]
or ecx, eax
sete dl
xor eax, eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, edx
mov ebx, ebp
jmp 0x100b9586
mov eax, dword [esp + 0x6c]
test al, 1
je 0x100b94e5
or esi, 2
mov ecx, 0xffffffff
mov ebp, dword [esp + 0x4c]
nop word [eax + eax]
mov dword [esp + 0xc], ecx
xor eax, eax
mov ebx, 0xcccccccc
inc ebx
mov edx, esi
mov ecx, esi
mulx esi, esi, ebx
mov edx, ecx
mov dword [esp + 0x20], ecx
mulx edx, edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 8], edx
sete al
imul ecx, eax
add ecx, esi
imul eax, ebp
mov edx, ebp
mulx ebx, esi, ebx
add esi, ecx
mov edi, 0xcccccccc
adc ebx, eax
mulx ebp, eax, edi
and esi, 0xfffffffc
add esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
adc ecx, 0
add ebx, eax
adc ebp, 0
add ebx, ecx
mov ecx, dword [esp + 0xc]
adc ebp, 0
shrd ebx, ebp, 2
shr ebp, 2
lea eax, [ebx + ebx*4]
inc ecx
cmp eax, dword [esp + 0x20]
mov esi, ebx
je 0x100b9430
xor eax, eax
cmp ecx, dword [esp + 0x14]
setae al
mov ecx, dword [esp + 0x48]
sub ecx, eax
mov eax, dword [esp + 0x3c]
sbb eax, 0
vpinsrd xmm0, xmm0, ecx, 0
vpinsrd xmm0, xmm0, eax, 1
xor ecx, ecx
xor eax, eax
jmp 0x100b957f
xor eax, eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ebx, ebp
xor ecx, ecx
jmp 0x100b9586
movzx eax, byte [esp + 0x1c]
not eax
add eax, esi
mov edi, dword [esp + 0x4c]
adc edi, 0xffffffff
mov ecx, 0xffffffff
nop word [eax + eax]
mov dword [esp + 0x20], ecx
xor ebx, ebx
mov ebp, 0xcccccccc
inc ebp
mov edx, eax
mulx esi, esi, ebp
mov dword [esp + 0xc], eax
mov ecx, 0xcccccccc
mulx ecx, edx, ecx
mov dword [esp + 8], edx
sete bl
imul eax, ebx
add eax, esi
imul ebx, edi
mov edx, edi
mulx ebp, esi, ebp
add esi, eax
adc ebp, ebx
mov eax, 0xcccccccc
mulx edi, eax, eax
and esi, 0xfffffffc
add esi, dword [esp + 8]
adc ecx, 0
add ebp, eax
adc edi, 0
add ebp, ecx
mov ecx, dword [esp + 0x20]
adc edi, 0
shrd ebp, edi, 2
shr edi, 2
lea eax, [ebp*4]
add eax, ebp
inc ecx
cmp eax, dword [esp + 0xc]
mov eax, ebp
je 0x100b9500
cmp ecx, dword [esp + 0x14]
setae al
xor ecx, ecx
mov esi, dword [esp + 4]
mov ebx, dword [esp]
test cl, cl
mov dword [esp + 4], esi
jne 0x100b9681
test al, al
jne 0x100b9681
vpsrlq xmm1, xmm0, 2
vpbroadcastq xmm2, qword [0x100fe540]
vpsrlq xmm3, xmm0, 0x22
vpmuludq xmm4, xmm1, xmm2
vpbroadcastq xmm5, qword [0x100fe548]
vpmuludq xmm1, xmm1, xmm5
vpmuldq xmm2, xmm3, xmm2
vpmuldq xmm3, xmm3, xmm5
vpsrlq xmm4, xmm4, 0x20
vpaddq xmm2, xmm4, xmm2
vpsrlq xmm4, xmm2, 0x20
vpaddq xmm3, xmm4, xmm3
vpxor xmm4, xmm4, xmm4
vpblendd xmm2, xmm2, xmm4, 0xa
vpaddq xmm1, xmm2, xmm1
vpsrlq xmm1, xmm1, 0x20
vpaddq xmm1, xmm3, xmm1
vpsrlq xmm1, xmm1, 2
vpextrd ecx, xmm1, 1
vmovd edx, xmm1
vpextrd esi, xmm1, 3
vpextrd edi, xmm1, 2
xor eax, eax
cmp edi, edx
sbb esi, ecx
jae 0x100b9986
mov edi, dword [esp + 4]
mov edx, edi
shld edx, ebx, 0x1e
mov eax, 0x5c28f5c3
mulx ecx, ecx, eax
mov esi, 0x28f5c28f
mov dword [esp], ebx
mulx esi, ebx, esi
shr edi, 2
mov edx, edi
mulx eax, ebp, eax
add ebp, ecx
mov ecx, 0x28f5c28f
mulx edx, ecx, ecx
adc ecx, eax
adc edx, 0
add ebp, ebx
adc ecx, esi
adc edx, 0
shrd ecx, edx, 2
shr edx, 2
mov dword [esp + 4], edx
imul eax, ecx, 0xffffff9c
add eax, dword [esp]
cmp eax, 0x32
setae al
mov dword [esp + 0x20], 2
mov ebx, ecx
jmp 0x100b9992
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 8], 0
vpbroadcastq xmm1, qword [0x100fe550]
vpbroadcastq xmm2, qword [0x100fe558]
vpbroadcastq xmm3, qword [0x100fe560]
xor ebp, ebp
nop word cs:[eax + eax]
vpsrlq xmm4, xmm0, 0x20
vpmuludq xmm5, xmm0, xmm1
vpmuludq xmm6, xmm0, xmm2
vpmuludq xmm7, xmm4, xmm1
vpmuludq xmm4, xmm4, xmm2
vpsrlq xmm5, xmm5, 0x20
vpaddq xmm5, xmm5, xmm7
vpsrlq xmm7, xmm5, 0x20
vpaddq xmm4, xmm7, xmm4
vpand xmm5, xmm5, xmm3
vpaddq xmm5, xmm5, xmm6
vpsrlq xmm5, xmm5, 0x20
vpaddq xmm4, xmm4, xmm5
vpsrlq xmm4, xmm4, 3
vpextrd ecx, xmm4, 1
vpextrd edx, xmm4, 3
vpextrd eax, xmm4, 2
vmovd esi, xmm4
cmp eax, esi
sbb edx, ecx
mov dword [esp], ebx
mov dword [esp + 0x20], ebp
jae 0x100b97e2
add eax, eax
mov dword [esp + 0x14], eax
xor ecx, ecx
mov edi, 0xcccccccc
inc edi
mov edx, ebx
mulx eax, eax, edi
mov dword [esp + 0x18], eax
mov eax, 0xcccccccc
mulx esi, eax, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov edx, eax
mulx edi, ebp, edi
sete cl
imul ebx, ecx
add ebx, dword [esp + 0x18]
imul ecx, eax
add ebp, ebx
adc edi, ecx
mov edx, eax
mov eax, 0xcccccccc
mulx edx, ecx, eax
and ebp, 0xfffffffc
add ebp, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
adc esi, 0
add edi, ecx
adc edx, 0
add edi, esi
adc edx, 0
mov ebx, edx
shld ebx, edi, 0x1d
shr edi, 2
and edi, 0xfffffffe
lea ecx, [edi + edi*4]
neg ecx
add cl, byte [esp]
vpextrd esi, xmm0, 2
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*4]
shr edx, 3
mov dword [esp + 4], edx
cmp eax, esi
sete al
mov edx, dword [esp + 0x1c]
and dl, al
mov dword [esp + 0x1c], edx
cmp byte [esp + 8], 0
sete al
mov edx, dword [esp + 0xc]
and dl, al
mov dword [esp + 0xc], edx
inc ebp
mov dword [esp + 8], ecx
vmovdqa xmm0, xmm4
jmp 0x100b96c0
mov eax, dword [esp + 0xc]
and al, 1
vpextrd esi, xmm0, 3
mov ecx, dword [esp + 0x1c]
xor cl, 1
vpextrd edx, xmm0, 2
test cl, 1
mov dword [esp + 0xc], eax
jne 0x100b993e
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
xor eax, eax
mov edi, 0xcccccccc
inc edi
mov ecx, edx
mulx esi, esi, edi
sete al
mov ebp, edx
mov ebx, 0xcccccccc
mulx ebx, edx, ebx
mov dword [esp + 0x10], edx
imul ebp, eax
add ebp, esi
mov edx, dword [esp + 0x14]
imul eax, edx
mulx edi, esi, edi
add esi, ebp
adc edi, eax
mov eax, 0xcccccccc
mulx eax, edx, eax
and esi, 0xfffffffc
add esi, dword [esp + 0x10]
adc ebx, 0
add edi, edx
mov edx, ecx
adc eax, 0
add edi, ebx
adc eax, 0
shrd edi, eax, 3
lea ecx, [edi + edi]
lea ecx, [ecx + ecx*4]
cmp ecx, edx
jne 0x100b992f
shr eax, 3
xor ecx, ecx
mov ebx, 0xcccccccc
inc ebx
mov edx, dword [esp]
mulx edx, edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp]
mov esi, 0xcccccccc
mulx edx, esi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 4]
mov edx, ebp
mulx ebx, esi, ebx
sete cl
mov edx, dword [esp]
imul edx, ecx
add edx, dword [esp + 0x18]
imul ecx, ebp
add esi, edx
adc ebx, ecx
mov edx, ebp
mov ecx, 0xcccccccc
mulx edx, ecx, ecx
and esi, 0xfffffffc
add esi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
adc esi, 0
add ebx, ecx
adc edx, 0
add ebx, esi
adc edx, 0
mov esi, edx
shld esi, ebx, 0x1d
shr ebx, 2
and ebx, 0xfffffffe
lea ecx, [ebx + ebx*4]
neg ecx
add cl, byte [esp]
shr edx, 3
mov dword [esp + 4], edx
cmp byte [esp + 8], 0
sete bl
cmp byte [esp + 0xc], 0
setne dl
and dl, bl
mov dword [esp + 0xc], edx
inc dword [esp + 0x20]
mov edx, edi
mov dword [esp + 0x14], eax
mov dword [esp + 8], ecx
mov dword [esp], esi
jmp 0x100b9810
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
test al, 1
sete al
xor cl, 1
test al, cl
mov edi, dword [esp + 0x24]
jne 0x100b9960
mov eax, edx
mov dl, 1
xor eax, ebx
xor esi, dword [esp + 4]
or esi, eax
je 0x100b9979
cmp byte [esp + 0xc], 0
sete al
cmp byte [esp + 8], 5
setne dl
setae cl
or dl, al
or dl, bl
and dl, cl
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 4]
jmp 0x100b9aab
mov dword [esp + 0x20], 0
vmovdqa xmm1, xmm0
vpbroadcastq xmm0, qword [0x100fe550]
vpbroadcastq xmm2, qword [0x100fe558]
vpbroadcastq xmm3, qword [0x100fe560]
nop dword [eax]
vpsrlq xmm4, xmm1, 0x20
vpmuludq xmm5, xmm1, xmm0
vpmuludq xmm6, xmm1, xmm2
vpmuludq xmm7, xmm4, xmm0
vpmuludq xmm4, xmm4, xmm2
vpsrlq xmm5, xmm5, 0x20
vpaddq xmm5, xmm5, xmm7
vpsrlq xmm7, xmm5, 0x20
vpaddq xmm4, xmm7, xmm4
vpand xmm5, xmm5, xmm3
vpaddq xmm5, xmm5, xmm6
vpsrlq xmm5, xmm5, 0x20
vpaddq xmm4, xmm4, xmm5
vpsrlq xmm4, xmm4, 3
vpextrd ecx, xmm4, 1
vpextrd edx, xmm4, 3
vpextrd esi, xmm4, 2
vmovd edi, xmm4
cmp esi, edi
sbb edx, ecx
jae 0x100b9a84
xor eax, eax
mov edi, 0xcccccccc
inc edi
mov edx, ebx
mulx esi, esi, edi
mov ecx, 0xcccccccc
mulx ecx, edx, ecx
mov dword [esp], edx
sete al
mov ebp, ebx
imul ebp, eax
add ebp, esi
mov edx, dword [esp + 4]
imul eax, edx
mulx edi, esi, edi
add esi, ebp
adc edi, eax
mov eax, 0xcccccccc
mulx edx, eax, eax
and esi, 0xfffffffc
add esi, dword [esp]
adc ecx, 0
add edi, eax
adc edx, 0
add edi, ecx
adc edx, 0
shrd edi, edx, 3
lea eax, [edi + edi]
lea eax, [eax + eax*4]
sub ebx, eax
shr edx, 3
mov dword [esp + 4], edx
cmp ebx, 5
setae al
inc dword [esp + 0x20]
mov ebx, edi
vmovdqa xmm1, xmm4
jmp 0x100b99b0
vpextrd ecx, xmm1, 2
vpextrd edx, xmm1, 3
mov esi, dword [esp + 4]
xor edx, esi
xor ecx, ebx
or ecx, edx
sete dl
or dl, al
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
movzx ecx, dl
and ecx, 1
add ecx, ebx
adc esi, 0
add edi, ebp
mov dword [eax + 8], edi
mov dword [eax], ecx
mov dword [eax + 4], esi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret