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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x124
mov eax, dword [0x10119540]
xor eax, esp
mov dword [esp + 0x120], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ecx + 0xc]
lea edx, [ecx + 0x70]
add esi, dword [ecx + 4]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], eax
add eax, edi
mov dword [esp + 0x48], eax
add eax, 0xfffffff8
push ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x74], eax
call fcn.10109cc0
mov ecx, dword [esp + 0x64]
mov ebx, 0xfff
mov dword [esp + 0xa4], eax
xorps xmm0, xmm0
push edi
movaps xmmword [esp + 0x104], xmm0
mov eax, dword [ecx + 0xcc]
cmp eax, ebx
movups xmmword [esp + 0xe8], xmm0
cmovb ebx, eax
mov dword [esp + 0xb0], 0
xor eax, eax
mov dword [esp + 0xb8], ebx
cmp dword [ecx + 0xc8], 3
push 0
setne al
mov dword [esp + 0xe4], 0
add eax, 3
mov dword [esp + 0xdc], 0
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0xa8], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0xd4]
mov ecx, 0x1000f6b0
test eax, eax
mov dword [esp + 0xe0], 0
cmovne ecx, eax
mov eax, dword [ecx + 0x10]
movups xmm0, xmmword [ecx]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xc8]
push eax
movups xmmword [esp + 0xcc], xmm0
call fcn.101094a0
mov ebx, dword [esp + 0x68]
push 2
push edi
mov edi, dword [esp + 0x24]
push ebx
push edi
call fcn.10109580
xor ecx, ecx
cmp ebx, esi
sete cl
add ecx, ebx
mov dword [esp + 0x38], ecx
cmp ecx, dword [esp + 0x6c]
jae 0x10108dc6
nop dword [eax]
push dword [esp + 0x54]
mov esi, ecx
mov eax, 0
sub esi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x44], esi
sete al
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xac]
push dword [esp + 0x50]
push ecx
push eax
push dword [esp + 0x7c]
push ebx
call dword [esp + 0xc4]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
sub eax, ecx
sub ecx, dword [esp + 0x68]
push eax
push ecx
lea eax, [esp + 0x28]
push eax
push ebx
lea eax, [esp + 0xd0]
push eax
call fcn.10109390
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x10107ed7
mov ecx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x38], ecx
jmp 0x10108db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0x14], eax
mov eax, dword [edx + 8]
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], esi
cmp dword [edi + 0x38], 1
jne 0x10107f27
inc esi
mov edx, 0x1f
bsr eax, esi
mov ecx, 0x1f
shl esi, 8
sub edx, eax
sub ecx, edx
mov edi, ecx
shr esi, cl
shl edi, 8
add edi, esi
mov esi, dword [esp + 0x1c]
jmp 0x10107fa8
cmp esi, 0x20000
jne 0x10107f48
push 2
push edi
push 0x1ffff
call fcn.101092c0
mov esi, dword [esp + 0x1c]
lea edi, [eax + 0x100]
jmp 0x10107fa8
cmp esi, 0x3f
jbe 0x10107f63
bsr eax, esi
mov ecx, 0x1f
mov edi, 0x1f
sub ecx, eax
sub edi, ecx
add edi, 0x13
jmp 0x10107f6d
lfence
movzx edi, byte [esi + 0x1000f6c8]
mov esi, dword [esp + 0x1c]
mov edx, 0x1f
mov ecx, 0x1f
mov eax, dword [esi + 4]
mov esi, dword [eax + edi*4]
movzx edi, byte [edi + 0x1000f554]
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
shl edi, 8
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x1c]
add edi, dword [esi + 0x2c]
sub edi, eax
mov eax, dword [esp + 0x18]
mov dword [eax], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebx*8 - 4]
mov edx, dword [eax + ebx*8 - 8]
cmp ecx, dword [esp + 0xb4]
jbe 0x1010806b
mov esi, dword [esp + 0x40]
movaps xmm2, xmmword [esp + 0x100]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe8], edx
movups xmm1, xmmword [esp + 0xe4]
xor edi, edi
mov ebx, dword [esp + 0x18]
lea eax, [edi*8]
sub eax, edi
movq xmm0, qword [ebx + eax*4 + 0x10]
lea eax, [ebx + eax*4]
test ecx, ecx
je 0x10108b3f
mov ecx, dword [eax + 0x18]
xor ebx, ebx
test esi, esi
movq qword [esp + 0x88], xmm0
mov dword [esp + 0x90], ecx
sete bl
cmp edx, 3
jbe 0x10108af0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x8c], eax
lea eax, [edx - 3]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
movq xmm0, qword [esp + 0x88]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
jmp 0x10108b4d
cmp dword [esi + 0x38], 1
mov edx, 0x1f
mov ecx, edx
jne 0x1010809a
mov eax, 1
bsr eax, eax
sub edx, eax
mov eax, 0x100
sub ecx, edx
mov edx, ecx
shr eax, cl
shl edx, 8
add edx, eax
add edx, edi
mov dword [esp + 0x3c], edx
jmp 0x101080c3
mov eax, dword [esi + 4]
mov esi, dword [eax]
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x2c]
sub ecx, eax
lea eax, [ecx + edi]
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
lea eax, [esi + 0x1c]
lea ecx, [edx - 1]
mov dword [eax], 0x40000000
lea eax, [eax + 0x1c]
sub ecx, 1
jne 0x101080d1
xor eax, eax
mov ecx, edx
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x1010825c
mov esi, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
nop word [eax + eax]
mov edx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], eax
cmp ecx, eax
ja 0x10108247
lea ebx, [ecx*8]
lea esi, [ecx - 2]
sub ebx, ecx
mov ecx, dword [esp + 0x18]
add ecx, 4
mov dword [esp + 0x2c], esi
lea ebx, [ecx + ebx*4]
bsr eax, edx
mov ecx, 0x1f
mov edi, 0x1f
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub edi, ecx
mov ecx, 0x1f
mov edx, ecx
cmp dword [eax + 0x38], 1
jne 0x10108170
bsr eax, esi
add edi, 0x10
sub ecx, eax
mov eax, esi
sub edx, ecx
shl eax, 8
mov ecx, edx
add edi, edx
shr eax, cl
shl edi, 8
jmp 0x10108209
mov eax, dword [eax + 0xc]
mov esi, dword [eax + edi*4]
inc esi
shl edi, 8
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov edx, dword [esp + 0x1c]
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
add edi, dword [edx + 0x34]
sub edi, eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax - 1]
cmp ecx, 0x7f
jbe 0x101081b8
bsr eax, ecx
mov ecx, 0x1f
sub ecx, eax
mov eax, 0x1f
sub eax, ecx
lea ecx, [eax + 0x24]
jmp 0x101081c2
lfence
movzx ecx, byte [eax + 0x1000f70f]
mov eax, dword [edx + 8]
mov edx, 0x1f
mov dword [esp + 0x20], ecx
mov esi, dword [eax + ecx*4]
mov ecx, 0x1f
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
lea ecx, [esi + eax]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
movzx eax, byte [eax + 0x1000f5c4]
shl eax, 8
add eax, dword [esi + 0x30]
mov esi, dword [esp + 0x2c]
sub eax, ecx
add eax, 0x33
mov ecx, dword [esp + 0x48]
add edi, eax
mov eax, dword [esp + 0x3c]
inc esi
mov edx, dword [esp + 0x50]
add eax, edi
mov edi, dword [esp + 0x40]
mov dword [ebx + 4], ecx
inc ecx
mov dword [ebx], edx
mov dword [ebx + 8], edi
mov dword [ebx - 4], eax
add ebx, 0x1c
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], esi
cmp ecx, dword [esp + 0x4c]
jbe 0x10108131
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ebx
jb 0x10108100
mov esi, dword [esp + 0x18]
lea edi, [ecx - 1]
mov ecx, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], ecx
cmp edi, ecx
jb 0x10108a8b
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xa8], eax
nop dword [eax + eax]
mov edx, dword [esp + 0x38]
lea eax, [ecx*8]
sub eax, ecx
add edx, ecx
mov dword [esp + 0x3c], edx
cmp dword [esi + eax*4 - 0x14], 0
jne 0x101082c1
mov edi, dword [esi + eax*4 - 0x10]
inc edi
jmp 0x101082c6
mov edi, 1
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
cmp dword [esi + 0x40], 2
jne 0x101082de
mov dword [esp + 0x2c], 0x800
jmp 0x1010834e
cmp dword [esi + 0x38], 1
jne 0x101082ee
mov dword [esp + 0x2c], 0x600
jmp 0x1010834e
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov ecx, dword [esi]
mov dword [esp + 0x4c], ecx
lea eax, [edi - 0x100]
mov dword [esp + 0x50], eax
movzx eax, byte [ebx + edx - 1]
mov edx, 0x1f
mov esi, dword [ecx + eax*4]
mov ecx, 0x1f
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov edx, dword [esp + 0x3c]
mov eax, ecx
shr esi, cl
mov ecx, dword [esp + 0x4c]
shl eax, 8
add eax, esi
cmp eax, dword [esp + 0x50]
cmova eax, dword [esp + 0x50]
inc ebx
sub edi, eax
cmp ebx, 1
jb 0x10108303
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
cmp dword [esi + 0x38], 1
jne 0x1010837a
lea esi, [edi + 1]
mov edx, 0x1f
bsr eax, esi
mov ecx, 0x1f
shl esi, 8
sub edx, eax
sub ecx, edx
mov ebx, ecx
shr esi, cl
shl ebx, 8
add ebx, esi
mov esi, dword [esp + 0x1c]
jmp 0x101083f3
cmp edi, 0x20000
jne 0x10108397
push 2
push esi
push 0x1ffff
call fcn.101092c0
lea ebx, [eax + 0x100]
jmp 0x101083f3
cmp edi, 0x3f
jbe 0x101083b2
bsr eax, edi
mov ecx, 0x1f
mov ebx, 0x1f
sub ecx, eax
sub ebx, ecx
add ebx, 0x13
jmp 0x101083bc
lfence
movzx ebx, byte [edi + 0x1000f6c8]
mov eax, dword [esi + 4]
mov edx, 0x1f
mov ecx, 0x1f
mov esi, dword [eax + ebx*4]
movzx ebx, byte [ebx + 0x1000f554]
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
shl ebx, 8
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x1c]
add ebx, dword [esi + 0x2c]
sub ebx, eax
cmp dword [esi + 0x38], 1
lea eax, [edi - 1]
jne 0x10108420
bsr eax, edi
mov edx, 0x1f
mov ecx, 0x1f
sub edx, eax
mov eax, edi
sub ecx, edx
shl eax, 8
mov edx, ecx
shr eax, cl
shl edx, 8
add edx, eax
jmp 0x101084a0
cmp eax, 0x20000
jne 0x1010843c
push 2
push esi
push 0x1ffff
call fcn.101092c0
lea edx, [eax + 0x100]
jmp 0x101084a0
cmp eax, 0x3f
jbe 0x10108457
bsr eax, eax
mov ecx, 0x1f
sub ecx, eax
mov eax, 0x1f
sub eax, ecx
lea ecx, [eax + 0x13]
jmp 0x10108461
lfence
movzx ecx, byte [eax + 0x1000f6c8]
mov eax, dword [esi + 4]
mov edx, 0x1f
mov dword [esp + 0x20], ecx
mov esi, dword [eax + ecx*4]
mov ecx, 0x1f
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
shr esi, cl
mov eax, ecx
mov ecx, dword [esp + 0x20]
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x1c]
movzx edx, byte [ecx + 0x1000f554]
shl edx, 8
add edx, dword [esi + 0x2c]
sub edx, eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [esi + eax*4 - 0x1c]
sub ecx, edx
mov edx, dword [esp + 0x34]
add ecx, dword [esp + 0x2c]
add ecx, ebx
lea eax, [edx*8]
sub eax, edx
mov ebx, dword [esi + eax*4]
cmp ecx, ebx
mov dword [esp + 0x20], ebx
mov ebx, esi
jg 0x10108516
lea eax, [edx*8]
mov dword [esp + 0x20], ecx
sub eax, edx
mov dword [ebx + eax*4 + 8], 0
lea eax, [edx*8]
sub eax, edx
mov dword [ebx + eax*4 + 4], 0
lea eax, [edx*8]
sub eax, edx
mov dword [ebx + eax*4 + 0xc], edi
lea eax, [edx*8]
sub eax, edx
mov dword [ebx + eax*4], ecx
lea eax, [edx*8]
sub eax, edx
mov esi, dword [ebx + eax*4 + 8]
lea eax, [edx*8]
sub eax, edx
lea ecx, [ebx + eax*4]
lea eax, [edx*8]
sub eax, edx
lea edx, [ebx + eax*4]
test esi, esi
je 0x101085eb
mov edi, dword [esp + 0x34]
xor ebx, ebx
mov ecx, edi
sub ecx, esi
cmp dword [edx + 0xc], ebx
sete bl
lea eax, [edi*8]
sub eax, edi
mov edi, dword [esp + 0x18]
mov edx, dword [edi + eax*4 + 4]
lea eax, [ecx*8]
sub eax, ecx
movq xmm0, qword [edi + eax*4 + 0x10]
mov ecx, dword [edi + eax*4 + 0x18]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], ecx
cmp edx, 3
jbe 0x1010859e
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
lea eax, [edx - 3]
mov dword [esp + 0x78], eax
jmp 0x101085cc
lea eax, [edx - 1]
add eax, ebx
je 0x101085cc
mov edi, dword [esp + 0x78]
cmp eax, 3
jne 0x101085b3
lea edx, [edi - 1]
jmp 0x101085bc
mov edx, dword [esp + eax*4 + 0x78]
cmp eax, 2
jb 0x101085c0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x34]
movq xmm0, qword [esp + 0x78]
lea eax, [edx*8]
sub eax, edx
movq qword [edi + eax*4 + 0x10], xmm0
mov dword [edi + eax*4 + 0x18], ecx
jmp 0x101085ff
movq xmm0, qword [ecx - 0xc]
mov eax, dword [ecx - 4]
movq qword [edx + 0x10], xmm0
mov dword [edx + 0x18], eax
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
cmp edi, dword [esp + 0x6c]
ja 0x10108a09
cmp edx, dword [esp + 0x24]
je 0x10108a87
xor ebx, ebx
test esi, esi
setne bl
test esi, esi
jne 0x10108639
mov ecx, dword [esp + 0x18]
lea eax, [edx*8]
sub eax, edx
mov ecx, dword [ecx + eax*4 + 0xc]
mov dword [esp + 0x40], ecx
jmp 0x10108641
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x1c]
mov edx, 0x1f
mov ecx, edx
cmp dword [eax + 0x38], 1
jne 0x1010866f
mov eax, 1
bsr eax, eax
sub edx, eax
mov eax, 0x100
sub ecx, edx
mov edx, ecx
shl edx, 8
shr eax, cl
lea ecx, [eax + edx]
jmp 0x10108691
mov eax, dword [eax + 4]
mov esi, dword [eax]
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x2c]
sub ecx, eax
push dword [esp + 0x54]
mov eax, dword [esp + 0x24]
push ebx
mov ebx, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x78], eax
add ecx, 0x10
lea eax, [ebx*8]
sub eax, ebx
lea eax, [ecx + eax*4]
push eax
push dword [esp + 0x50]
lea eax, [esp + 0xb0]
push edi
push eax
push dword [esp + 0x7c]
mov eax, dword [esp + 0x44]
push eax
call dword [esp + 0xc4]
mov edx, eax
mov esi, edi
sub esi, dword [esp + 0x68]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x2c], edx
test eax, eax
je 0x101087a7
cmp dword [esp + 0xc4], eax
jae 0x101087a7
mov ecx, dword [esp + 0x48]
cmp esi, ecx
jb 0x1010875b
jbe 0x10108719
mov eax, esi
sub eax, ecx
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.10109420
mov eax, dword [esp + 0x44]
sub eax, edi
push eax
push esi
lea eax, [esp + 0xc8]
push eax
call fcn.101094a0
mov ecx, dword [esp + 0xd8]
mov edi, dword [esp + 0xd4]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xa8], eax
jmp 0x10108762
mov edi, dword [esp + 0xb0]
mov eax, esi
sub eax, edi
sub ecx, eax
sub ecx, edi
cmp esi, edi
jb 0x101087a7
cmp esi, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
jae 0x101087ab
cmp ecx, 3
jb 0x101087ab
test edx, edx
je 0x1010878f
cmp ecx, dword [esi + edx*8 - 4]
jbe 0x101087b3
cmp edx, 0x1000
jae 0x101087b3
mov eax, dword [esp + 0xdc]
add eax, 3
mov dword [esi + edx*8 + 4], ecx
mov dword [esi + edx*8], eax
inc edx
mov dword [esp + 0x2c], edx
jmp 0x101087ab
mov esi, dword [esp + 0x28]
test edx, edx
je 0x10108a09
mov ecx, dword [esi + edx*8 - 4]
cmp ecx, dword [esp + 0xb4]
ja 0x10108a23
lea eax, [ecx + ebx]
cmp eax, 0x1000
jae 0x10108a23
xor edx, edx
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x2c], edx
jbe 0x10108a09
lea eax, [esi - 4]
mov dword [esp + 0x50], eax
nop dword [eax]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0xbc], esi
test edx, edx
je 0x1010880a
mov eax, dword [eax]
inc eax
jmp 0x1010880e
mov eax, dword [esp + 0x54]
mov dword [esp + 0x9c], eax
cmp esi, eax
jb 0x101089ef
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x1000f70d]
mov dword [esp + 0x20], eax
lea edi, [esi + ebx]
lea eax, [edi*8]
sub eax, edi
lea eax, [edx + eax*4]
mov edx, 0xfffffffe
mov dword [esp + 0x3c], eax
sub edx, ebx
mov eax, 0xfffffffd
mov dword [esp + 0x74], edx
sub eax, ebx
mov dword [esp + 0xe0], eax
nop word [eax + eax]
bsr eax, ecx
mov ecx, 0x1f
mov ebx, 0x1f
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ebx, ecx
mov ecx, 0x1f
cmp dword [eax + 0x38], 1
jne 0x101088a4
add edx, edi
add ebx, 0x10
bsr eax, edx
shl edx, 8
sub ecx, eax
mov eax, 0x1f
sub eax, ecx
add ebx, eax
mov ecx, eax
shr edx, cl
shl ebx, 8
add ebx, edx
jmp 0x1010894f
mov eax, dword [eax + 0xc]
mov edx, 0x1f
mov esi, dword [eax + ebx*4]
inc esi
shl ebx, 8
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov edx, dword [esp + 0x1c]
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
add ebx, dword [edx + 0x34]
sub ebx, eax
mov eax, dword [esp + 0xe0]
add eax, edi
cmp eax, 0x7f
jbe 0x101088f3
bsr eax, eax
mov ecx, 0x1f
sub ecx, eax
mov eax, 0x1f
sub eax, ecx
lea ecx, [eax + 0x24]
jmp 0x101088fd
lfence
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax]
mov eax, dword [edx + 8]
mov edx, 0x1f
mov dword [esp + 0xb8], ecx
mov esi, dword [eax + ecx*4]
mov ecx, 0x1f
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
lea ecx, [esi + eax]
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x1c]
movzx eax, byte [eax + 0x1000f5c4]
shl eax, 8
add eax, dword [esi + 0x30]
mov esi, dword [esp + 0xbc]
sub eax, ecx
add eax, 0x33
add ebx, eax
mov edx, dword [esp + 0x70]
add edx, ebx
mov ebx, dword [esp + 0x24]
cmp edi, ebx
ja 0x10108967
mov ecx, dword [esp + 0x3c]
cmp edx, dword [ecx]
jge 0x101089be
jmp 0x10108990
lea ecx, [ebx + 1]
mov dword [esp + 0x24], edi
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*4]
mov ecx, edi
sub ecx, ebx
mov dword [eax], 0x40000000
lea eax, [eax + 0x1c]
sub ecx, 1
jne 0x10108982
mov ebx, dword [esp + 0x18]
lea eax, [edi*8]
mov ecx, dword [esp + 0x18]
sub eax, edi
mov dword [ebx + eax*4 + 8], esi
mov ebx, dword [esp + 0x60]
mov dword [ecx + eax*4 + 4], ebx
mov ebx, ecx
mov ecx, dword [esp + 0x40]
mov dword [ebx + eax*4 + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + eax*4], edx
dec dword [esp + 0x20]
sub ecx, 0x1c
mov edx, dword [esp + 0x74]
dec esi
dec edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xbc], esi
cmp esi, dword [esp + 0x9c]
jae 0x10108860
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
inc edx
add eax, 8
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
cmp edx, dword [esp + 0x2c]
jb 0x101087f0
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x34], ecx
cmp ecx, edi
ja 0x10108a8b
mov esi, dword [esp + 0x18]
jmp 0x101082a0
mov edi, dword [esp + 0x18]
lea eax, [ebx*8]
mov edx, dword [esi + edx*8 - 8]
sub eax, ebx
mov esi, dword [esp + 0x40]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe8], edx
cmp dword [edi + eax*4 + 8], 0
mov dword [esp + 0xf0], esi
jne 0x10108a63
lea eax, [ebx*8]
sub eax, ebx
mov eax, dword [edi + eax*4 + 0xc]
jmp 0x10108a65
xor eax, eax
movups xmm1, xmmword [esp + 0xe4]
sub ebx, eax
xor edi, edi
movaps xmm2, xmmword [esp + 0x100]
cmp ebx, 0x1000
cmovbe edi, ebx
jmp 0x10107ff2
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
lea eax, [edi*8]
sub eax, edi
movups xmm1, xmmword [ecx + eax*4]
movq xmm2, qword [ecx + eax*4 + 0x10]
mov eax, dword [ecx + eax*4 + 0x18]
movaps xmm0, xmm1
psrldq xmm0, 8
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd esi, xmm0
mov dword [esp + 0xac], eax
movups xmmword [esp + 0xe4], xmm1
mov edx, dword [esp + 0xe8]
movaps xmmword [esp + 0x100], xmm2
lea eax, [ecx + esi]
cmp edi, eax
jbe 0x10107ff0
sub edi, ecx
sub edi, esi
jmp 0x10107ff2
lea eax, [edx - 1]
add eax, ebx
je 0x10108b29
mov esi, dword [esp + 0x88]
cmp eax, 3
jne 0x10108b08
lea edx, [esi - 1]
jmp 0x10108b14
mov edx, dword [esp + eax*4 + 0x88]
cmp eax, 2
jb 0x10108b1b
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x58]
movq xmm0, qword [esp + 0x88]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
jmp 0x10108b4d
mov ecx, dword [esp + 0x58]
movq qword [ecx], xmm0
mov eax, dword [eax + 0x18]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x18]
lea ecx, [edi + 1]
lea eax, [ecx*8]
mov dword [esp + 0x24], ecx
sub eax, ecx
mov ebx, ecx
lea esi, [edx + eax*4]
mov eax, dword [esp + 0xac]
movups xmmword [esi], xmm1
movq qword [esi + 0x10], xmm2
mov dword [esi + 0x18], eax
test edi, edi
je 0x10108beb
nop dword [eax]
lea eax, [edi*8]
dec ebx
sub eax, edi
lea esi, [esi - 0x1c]
movups xmm1, xmmword [edx + eax*4]
lea edx, [edx + eax*4]
movq xmm0, qword [edx + 0x10]
movq qword [esp + 0x120], xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
movd ecx, xmm0
movups xmm0, xmmword [edx]
psrldq xmm1, 0xc
movd eax, xmm1
movups xmmword [esi], xmm0
movq xmm0, qword [edx + 0x10]
add ecx, eax
movq qword [esi + 0x10], xmm0
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
cmp edi, ecx
jbe 0x10108bdb
mov edx, dword [esp + 0x18]
sub edi, ecx
jne 0x10108b80
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
ja 0x10108d2a
mov edx, dword [esp + 0x18]
lea edi, [ebx*8]
sub ecx, ebx
sub edi, ebx
add edi, 2
inc ecx
mov dword [esp + 0x24], ecx
lea edi, [edx + edi*4]
mov esi, dword [edi + 4]
mov ebx, dword [edi]
mov eax, dword [edi - 4]
mov dword [esp + 0x74], eax
lea edx, [ebx + esi]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x30]
lea ecx, [esi + edx]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x24]
test ebx, ebx
je 0x10108d1a
push ebx
push eax
push edx
push esi
push dword [esp + 0x2c]
call fcn.10109e60
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
add ecx, 0xffffffe0
mov eax, dword [edx + 0xc]
cmp dword [esp + 0x38], ecx
ja 0x10108c9e
mov ecx, dword [esp + 0x30]
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
cmp esi, 0x10
jbe 0x10108cb1
mov ecx, dword [edx + 0xc]
lea eax, [esi - 0x10]
add ecx, 0x10
lea edx, [ecx + eax]
mov eax, dword [esp + 0x30]
movups xmm0, xmmword [eax + 0x10]
lea eax, [esi - 0x10]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x10108cad
lea eax, [ecx + 0x10]
mov ecx, dword [esp + 0x30]
add ecx, 0x20
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x10108c84
jmp 0x10108cad
push ecx
push dword [esp + 0x3c]
push dword [esp + 0x38]
push eax
call fcn.100bbea0
mov edx, dword [esp + 0x5c]
add dword [edx + 0xc], esi
cmp esi, 0xffff
jbe 0x10108cce
mov eax, dword [edx + 4]
sub eax, dword [edx]
sar eax, 3
mov dword [edx + 0x24], 1
mov dword [edx + 0x28], eax
mov eax, dword [edx + 4]
add ebx, 0xfffffffd
mov ecx, dword [esp + 0x74]
mov word [eax + 4], si
mov eax, dword [edx + 4]
mov dword [eax], ecx
cmp ebx, 0xffff
jbe 0x10108cfb
mov eax, dword [edx + 4]
sub eax, dword [edx]
sar eax, 3
mov dword [edx + 0x24], 2
mov dword [edx + 0x28], eax
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov word [eax + 6], bx
add dword [edx + 4], 8
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0x70]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edx
add edi, 0x1c
sub ecx, 1
mov dword [esp + 0x24], ecx
jne 0x10108c01
mov edi, dword [esp + 0x1c]
cmp dword [edi + 0x40], 2
je 0x10108d58
mov esi, dword [edi + 0x18]
mov edx, 0x1f
inc esi
mov ecx, 0x1f
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov dword [edi + 0x28], eax
mov esi, dword [edi + 0x1c]
mov edx, 0x1f
inc esi
mov ecx, 0x1f
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov edx, 0x1f
shr esi, cl
mov eax, ecx
shl eax, 8
mov ecx, 0x1f
add eax, esi
mov esi, dword [edi + 0x20]
mov dword [edi + 0x2c], eax
inc esi
bsr eax, esi
shl esi, 8
sub edx, eax
sub ecx, edx
mov eax, ecx
shr esi, cl
shl eax, 8
add eax, esi
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x24]
inc eax
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x34], eax
mov ebx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x6c]
jb 0x10107e60
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x12c]
sub eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100913c0
mov esp, ebp
pop ebp
ret 0x18