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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xf4
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x30], 0
mov eax, dword [edx + 8]
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0x200
mov edi, dword [edx]
mov esi, dword [edx + 4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0x44], ecx
jge 0x101194c8
xor edx, edx
jmp 0x101194d6
lea eax, [esp + 0x30]
push eax
call fcn.102673c0
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
lea ecx, [eax*4]
cmp ecx, dword [ebp + 0x14]
jne 0x1011951c
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0xcc]
mov ecx, ebx
mov eax, dword [esp + 0x44]
imul ecx, eax
cmp ebx, dword [ebp + 0xc]
cmove ebx, ecx
mov ecx, 1
mov dword [esp + 0xcc], ebx
cmove eax, ecx
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0xd8]
test edx, edx
je 0x1011955f
mov eax, dword [esp + 0xcc]
mov ecx, edx
mov dword [esp + 0xd8], ebx
shr ecx, 0x1f
add edx, ecx
lea ebx, [eax*4]
imul ebx, dword [esp + 0x44]
mov eax, 1
sar edx, 1
cmp ebx, edx
mov edx, 0
mov ebx, dword [esp + 0xd8]
cmovle eax, edx
mov dword [esp + 0x40], eax
jmp 0x10119567
mov dword [esp + 0x40], 0
test byte [ebp + 0x10], 3
je 0x10119899
cmp dword [esp + 0x44], 1
jne 0x101196b7
mov eax, dword [esp + 0xcc]
mov ecx, eax
and ecx, 0xf
cdq
sub eax, ecx
mov dword [esp + 4], ecx
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x101195a0
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0xcc]
sub edx, dword [esp + 4]
test edx, edx
jle 0x1011a692
mov dword [esp + 0xd8], ebx
xor edx, edx
mov dword [esp], eax
mov eax, edx
shl eax, 4
mov ecx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd8]
movdqu xmm7, xmmword [edi + eax]
movdqu xmm0, xmmword [esi + eax]
movdqu xmm3, xmmword [ecx + eax]
movdqu xmm1, xmmword [ebx + eax]
mov ecx, edx
movdqa xmm5, xmm7
shl ecx, 6
movdqa xmm2, xmm3
punpcklbw xmm5, xmm0
inc edx
punpckhbw xmm7, xmm0
movdqa xmm4, xmm5
mov ebx, dword [ebp + 0x10]
movdqa xmm6, xmm7
punpcklbw xmm2, xmm1
add eax, 0x10
punpckhbw xmm3, xmm1
punpcklwd xmm4, xmm2
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqu xmmword [ebx + ecx], xmm4
movdqu xmmword [ebx + ecx + 0x10], xmm5
movdqu xmmword [ebx + ecx + 0x20], xmm6
movdqu xmmword [ebx + ecx + 0x30], xmm7
add ecx, 0x40
cmp edx, dword [esp]
jb 0x101195c3
mov ebx, dword [esp + 0xd8]
cmp dword [esp + 4], 0
je 0x1011988c
mov edx, dword [ebp + 0x10]
add edi, eax
mov dword [esp], 0
add esi, eax
add dword [esp + 0xd0], eax
add ebx, eax
mov dword [esp + 0xd4], edi
add edx, ecx
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp]
mov eax, dword [esp + 0xd4]
movzx eax, byte [edi + eax]
mov byte [edx + edi*4], al
movzx eax, byte [edi + esi]
mov byte [edx + edi*4 + 1], al
movzx eax, byte [edi + ecx]
mov byte [edx + edi*4 + 2], al
movzx eax, byte [edi + ebx]
mov byte [edx + edi*4 + 3], al
inc edi
cmp edi, dword [esp + 4]
jb 0x10119685
jmp 0x1011988c
cmp dword [esp + 0x44], 0
jle 0x1011988c
mov eax, dword [esp + 0xcc]
mov ecx, eax
and ecx, 0xf
cdq
sub eax, ecx
mov dword [esp], 0
sbb edx, 0
add eax, 0xf
mov dword [esp + 0xc], ecx
adc edx, 0
jns 0x101196ed
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0xcc]
sub edx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0xd4], edi
mov eax, dword [esp]
cmp dword [esp + 0xcc], 0
jle 0x1011a69b
mov ebx, dword [ebp + 0xc]
imul ebx, eax
mov esi, dword [ebp + 0x14]
imul esi, eax
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp + 0x80]
mov dword [esp + 8], 0
add edx, ebx
mov dword [esp], eax
add ecx, ebx
add esi, dword [ebp + 0x10]
add edi, ebx
mov dword [esp + 0x18], ecx
add ebx, dword [esp + 0xd8]
mov eax, dword [esp + 8]
mov dword [esp + 0x14], edx
nop dword [eax]
nop dword [eax]
mov ecx, eax
shl ecx, 4
mov edx, dword [esp + 0x14]
movdqu xmm7, xmmword [edx + ecx]
movdqu xmm0, xmmword [edi + ecx]
movdqu xmm1, xmmword [ebx + ecx]
mov edx, dword [esp + 0x18]
movdqa xmm5, xmm7
punpcklbw xmm5, xmm0
punpckhbw xmm7, xmm0
movdqa xmm4, xmm5
movdqu xmm3, xmmword [edx + ecx]
mov edx, eax
movdqa xmm2, xmm3
shl edx, 6
movdqa xmm6, xmm7
punpcklbw xmm2, xmm1
inc eax
punpckhbw xmm3, xmm1
add ecx, 0x10
punpcklwd xmm4, xmm2
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqu xmmword [esi + edx], xmm4
movdqu xmmword [esi + edx + 0x10], xmm5
movdqu xmmword [esi + edx + 0x20], xmm6
movdqu xmmword [esi + edx + 0x30], xmm7
add edx, 0x40
cmp eax, dword [esp + 0x10]
jb 0x10119780
mov eax, dword [esp]
cmp dword [esp + 0xc], 0
je 0x10119881
mov ebx, dword [ebp + 0x14]
imul ebx, eax
mov edi, dword [ebp + 0xc]
imul edi, eax
mov esi, dword [esp + 0xd4]
add ebx, dword [ebp + 0x10]
add edx, ebx
mov dword [esp + 4], 0
lea ebx, [esi + edi]
mov esi, dword [esp + 0x80]
add ebx, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp], eax
lea ebx, [esi + edi]
mov esi, dword [esp + 0xd0]
add ebx, ecx
add esi, edi
add edi, dword [esp + 0xd8]
add esi, ecx
add ecx, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x1c]
movzx eax, byte [edi + eax]
mov byte [edx + edi*4], al
movzx eax, byte [edi + ebx]
mov byte [edx + edi*4 + 1], al
movzx eax, byte [edi + esi]
mov byte [edx + edi*4 + 2], al
movzx eax, byte [edi + ecx]
mov byte [edx + edi*4 + 3], al
inc edi
cmp edi, dword [esp + 0xc]
jb 0x10119854
mov eax, dword [esp]
inc eax
cmp eax, dword [esp + 0x44]
jb 0x1011971f
add esp, 0xf4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x44], 1
jne 0x10119f0d
xor edx, edx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
test byte [ebp + 0x10], 0xf
je 0x10119964
mov dword [esp + 0xd8], ebx
xor edx, edx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x80], esi
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
inc edx
mov ecx, edx
neg ecx
add ecx, dword [esp + 0xcc]
cmp ecx, 0xffffffff
je 0x10119947
mov edi, dword [ebp + 0x10]
lea ebx, [edx*4]
mov eax, dword [esp + 0xd4]
lea esi, [edi + edx*4]
movzx eax, byte [edx + eax - 1]
mov byte [esi - 4], al
mov eax, dword [esp + 0x80]
movzx eax, byte [edx + eax - 1]
mov byte [edi + ebx - 3], al
mov eax, dword [esp + 0xd0]
movzx eax, byte [edx + eax - 1]
mov byte [edi + ebx - 2], al
mov eax, dword [esp + 0xd8]
movzx eax, byte [edx + eax - 1]
mov byte [edi + ebx - 1], al
mov edi, edx
mov eax, ecx
test esi, 0xf
jne 0x101198de
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], edx
mov edx, eax
mov dword [esp + 4], ecx
and edx, 0xf
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], ecx
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x40], 0
jne 0x10119c2c
mov edx, dword [esp + 0x18]
lea ecx, [edi + edx]
test cl, 0xf
jne 0x10119b04
lea ecx, [esi + edx]
test cl, 0xf
jne 0x10119b04
mov ecx, edx
mov edx, dword [esp + 0xd0]
add edx, ecx
test dl, 0xf
jne 0x10119b04
mov edx, ecx
lea ecx, [ebx + edx]
test cl, 0xf
jne 0x10119b04
cmp dword [esp + 0x28], 0
jle 0x10119e9e
cdq
sub eax, dword [esp + 0x34]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10119a03
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0x18]
mov dword [esp], 0
mov dword [esp + 0x80], esi
mov dword [esp + 0xd8], ebx
lea ecx, [edi + edx]
mov dword [esp + 0xc], ecx
lea ecx, [esi + edx]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp]
mov dword [esp + 0xd4], edi
add ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x14]
add edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x10]
add edx, ecx
mov ecx, esi
shl ecx, 4
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 8]
movdqa xmm7, xmmword [edi + ecx]
mov edi, dword [esp + 4]
movdqa xmm5, xmm7
movdqa xmm0, xmmword [ebx + ecx]
mov ebx, dword [esp + 0x10]
movdqa xmm3, xmmword [edi + ecx]
mov edi, dword [esp + 0x20]
movdqa xmm2, xmm3
movdqa xmm1, xmmword [ebx + ecx]
mov ebx, esi
shl ebx, 6
inc esi
punpcklbw xmm5, xmm0
lea ecx, [edi + ecx + 0x10]
mov edi, dword [esp + 0x1c]
movdqa xmm4, xmm5
punpckhbw xmm7, xmm0
punpcklbw xmm2, xmm1
movdqa xmm6, xmm7
punpckhbw xmm3, xmm1
punpcklwd xmm4, xmm2
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [edx + ebx], xmm4
movdqa xmmword [edx + ebx + 0x10], xmm5
movdqa xmmword [edx + ebx + 0x20], xmm6
movdqa xmmword [edx + ebx + 0x30], xmm7
lea ebx, [edi + ebx + 0x40]
cmp esi, eax
jb 0x10119a54
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
jmp 0x10119e9e
cdq
sub eax, dword [esp + 0x34]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10119b1a
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
cmp dword [esp + 0x28], 0
jle 0x10119e9e
mov edx, dword [esp + 0x18]
mov dword [esp + 4], 0
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x80], esi
lea ecx, [edi + edx]
mov dword [esp], ecx
lea ecx, [esi + edx]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp]
mov dword [esp + 0xd4], edi
mov dword [esp + 8], eax
add ecx, edx
mov dword [esp + 0x1c], ecx
add edx, ebx
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 4]
add edx, ecx
mov eax, ebx
shl eax, 4
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
movdqu xmm0, xmmword [edi + eax]
movdqu xmm7, xmmword [esi + eax]
movdqu xmm3, xmmword [ecx + eax]
mov edi, dword [esp + 0x24]
mov ecx, ebx
shl ecx, 6
movdqa xmm5, xmm7
punpcklbw xmm5, xmm0
movdqa xmm2, xmm3
movdqu xmm1, xmmword [edi + eax]
mov edi, dword [esp + 0x10]
movdqa xmm4, xmm5
punpckhbw xmm7, xmm0
inc ebx
punpcklbw xmm2, xmm1
movdqa xmm6, xmm7
punpckhbw xmm3, xmm1
lea eax, [edi + eax + 0x10]
mov edi, dword [esp + 0xc]
punpcklwd xmm4, xmm2
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [edx + ecx], xmm4
movdqa xmmword [edx + ecx + 0x10], xmm5
movdqa xmmword [edx + ecx + 0x20], xmm6
movdqa xmmword [edx + ecx + 0x30], xmm7
lea ecx, [edi + ecx + 0x40]
cmp ebx, dword [esp + 8]
jb 0x10119b7e
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
jmp 0x10119e9e
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [eax + edx]
test cl, 0x3f
je 0x10119d65
mov eax, dword [esp + 0x18]
mov dword [esp], 0
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], edi
lea edx, [edi + eax]
mov dword [esp + 0x24], edx
lea ecx, [esi + eax]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x80], esi
mov edi, dword [esp + 0x2c]
lea ecx, [edx + eax]
mov edx, dword [esp + 0x14]
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x18]
lea ecx, [eax + edx]
mov dword [esp + 0xc], ecx
mov eax, edx
mov ecx, dword [esp]
inc ecx
mov esi, ecx
shl esi, 4
neg esi
add esi, dword [esp + 0x28]
cmp esi, 0xfffffff0
je 0x10119d44
mov ebx, ecx
shl ebx, 4
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
movdqu xmm7, xmmword [eax + ebx - 0x10]
movdqu xmm0, xmmword [edi + ebx - 0x10]
movdqu xmm1, xmmword [edx + ebx - 0x10]
mov eax, dword [esp + 0x1c]
movdqa xmm5, xmm7
mov edi, dword [esp + 0xc]
punpcklbw xmm5, xmm0
movdqu xmm3, xmmword [eax + ebx - 0x10]
mov eax, ecx
movdqa xmm2, xmm3
shl eax, 6
movdqa xmm4, xmm5
punpckhbw xmm7, xmm0
punpcklbw xmm2, xmm1
movdqa xmm6, xmm7
punpckhbw xmm3, xmm1
punpcklwd xmm4, xmm2
lea edx, [edi + eax]
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [edx - 0x40], xmm4
movdqa xmmword [edi + eax - 0x30], xmm5
movdqa xmmword [edi + eax - 0x20], xmm6
movdqa xmmword [edi + eax - 0x10], xmm7
mov edi, esi
add ebx, dword [esp + 8]
add eax, dword [esp + 4]
test dl, 0x3f
jne 0x10119c9c
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
cmp dword [esp + 0x2c], 0
jle 0x10119e9e
mov eax, dword [esp + 0x2c]
cdq
add eax, 0xf
mov dword [esp], 0
adc edx, 0
mov dword [esp + 0x2c], eax
jns 0x10119da2
add eax, 0xf
mov dword [esp + 0x2c], eax
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x80], esi
lea ecx, [edi + edx]
mov dword [esp + 4], ecx
lea eax, [edx + esi]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
mov dword [esp + 0xd4], edi
mov esi, dword [esp + 4]
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
add edx, ebx
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp]
mov dword [esp + 8], edx
add eax, ecx
mov edx, ebx
shl edx, 4
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
movdqu xmm0, xmmword [edi + edx]
movdqu xmm7, xmmword [esi + edx]
movdqu xmm6, xmmword [ecx + edx]
mov edi, dword [esp + 8]
mov ecx, ebx
movdqa xmm4, xmm7
movdqa xmm3, xmm6
shl ecx, 6
inc ebx
movdqu xmm1, xmmword [edi + edx]
punpcklbw xmm4, xmm0
punpckhbw xmm7, xmm0
movdqa xmm2, xmm4
punpcklbw xmm3, xmm1
movdqa xmm5, xmm7
punpckhbw xmm6, xmm1
punpcklwd xmm2, xmm3
punpckhwd xmm4, xmm3
punpcklwd xmm5, xmm6
punpckhwd xmm7, xmm6
movntdq xmmword [eax + ecx], xmm2
movntdq xmmword [eax + ecx + 0x10], xmm4
movntdq xmmword [eax + ecx + 0x20], xmm5
movntdq xmmword [eax + ecx + 0x30], xmm7
mov edi, dword [esp + 0x10]
lea edx, [edi + edx + 0x10]
mov edi, dword [esp + 0xc]
lea ecx, [edi + ecx + 0x40]
cmp ebx, dword [esp + 0x2c]
jb 0x10119df5
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xd4]
cmp dword [esp + 0x34], 0
je 0x1011a67b
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add edi, ecx
add dword [esp + 0xd0], ecx
add esi, ecx
mov dword [esp], 0
add eax, edx
mov dword [esp + 0xd4], edi
add ebx, ecx
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp]
mov edx, dword [esp + 0xd4]
movzx edx, byte [edi + edx]
mov byte [eax + edi*4], dl
movzx edx, byte [edi + esi]
mov byte [eax + edi*4 + 1], dl
movzx edx, byte [edi + ecx]
mov byte [eax + edi*4 + 2], dl
movzx edx, byte [edi + ebx]
mov byte [eax + edi*4 + 3], dl
inc edi
cmp edi, dword [esp + 0x34]
jb 0x10119edb
jmp 0x1011a67b
cmp dword [esp + 0x44], 0
jle 0x1011a67b
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0xd4], edi
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0xcc]
add ebx, ecx
xor ecx, ecx
test bl, 0xf
je 0x1011a042
mov edi, dword [ebp + 0x10]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x3c], 0
mov dword [esp + 0xdc], ebx
add edi, edx
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0x48]
add edi, edx
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x80]
add edi, edx
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0xd0]
add edi, edx
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0xd8]
add edi, edx
mov dword [esp + 0x84], edi
mov edx, eax
mov eax, esi
mov esi, dword [esp + 0x3c]
inc esi
mov ebx, esi
neg ebx
add ebx, dword [esp + 0xcc]
cmp ebx, 0xffffffff
je 0x1011a037
mov edi, dword [esp + 0xdc]
lea ecx, [esi*4]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
lea edi, [edi + esi*4]
movzx eax, byte [esi + eax - 1]
mov byte [edi - 4], al
mov eax, dword [esp + 0x94]
movzx edx, byte [esi + edx - 1]
mov byte [eax + ecx - 3], dl
mov edx, dword [esp + 0x88]
movzx edx, byte [esi + edx - 1]
mov byte [eax + ecx - 2], dl
mov edx, dword [esp + 0x84]
movzx edx, byte [esi + edx - 1]
mov byte [eax + ecx - 1], dl
mov eax, esi
mov edx, ebx
test edi, 0xf
jne 0x10119fc3
mov ebx, dword [esp + 0xdc]
mov esi, eax
mov eax, edx
mov edx, eax
mov edi, eax
and edx, 0xf
sub edi, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0x7c], edi
cmp dword [esp + 0x40], 0
jne 0x1011a336
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0x48]
add edi, edx
mov dword [esp + 0xc4], edi
add edi, esi
test edi, 0xf
jne 0x1011a1ea
mov edi, dword [esp + 0x80]
add edi, edx
mov dword [esp + 0x10], edi
add edi, esi
test edi, 0xf
jne 0x1011a1ea
mov edi, dword [esp + 0xd0]
add edi, edx
mov dword [esp + 0xc], edi
add edi, esi
test edi, 0xf
jne 0x1011a1ea
mov edi, dword [esp + 0xd8]
add edi, edx
mov dword [esp + 8], edi
add edi, esi
test edi, 0xf
jne 0x1011a1ea
cmp dword [esp + 0x7c], 0
jle 0x1011a59f
cdq
sub eax, dword [esp + 0xe0]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x1011a116
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0x58]
lea edi, [ecx + ebx]
mov dword [esp + 4], edi
mov edi, dword [ebp + 0x10]
mov dword [esp], 0
add dword [esp + 0xc4], esi
add dword [esp + 0x10], esi
add edi, edx
add dword [esp + 0xc], esi
add edi, ecx
add dword [esp + 8], esi
mov edx, dword [esp]
mov dword [esp + 0xdc], ebx
mov esi, edx
shl esi, 4
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc4]
movdqa xmm0, xmmword [ecx + esi]
mov ecx, dword [esp + 8]
movdqa xmm7, xmmword [ebx + esi]
mov ebx, dword [esp + 0xc]
movdqa xmm5, xmm7
movdqa xmm1, xmmword [ecx + esi]
mov ecx, edx
shl ecx, 6
inc edx
movdqa xmm3, xmmword [ebx + esi]
mov ebx, dword [esp + 4]
movdqa xmm2, xmm3
punpcklbw xmm5, xmm0
punpcklbw xmm2, xmm1
movdqa xmm4, xmm5
punpcklwd xmm4, xmm2
movdqa xmmword [ebx + ecx], xmm4
mov ebx, dword [esp + 0x50]
punpckhbw xmm7, xmm0
punpckhbw xmm3, xmm1
movdqa xmm6, xmm7
punpckhwd xmm5, xmm2
lea esi, [ebx + esi + 0x10]
mov ebx, dword [esp + 0x54]
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [edi + ecx + 0x10], xmm5
movdqa xmmword [edi + ecx + 0x20], xmm6
movdqa xmmword [edi + ecx + 0x30], xmm7
lea ecx, [ebx + ecx + 0x40]
cmp edx, eax
jb 0x1011a150
jmp 0x1011a598
cdq
sub eax, dword [esp + 0xe0]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x1011a203
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
cmp dword [esp + 0x7c], 0
jle 0x1011a59f
mov edx, dword [esp + 0x58]
lea edi, [ecx + ebx]
mov dword [esp + 0x18], edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x24], 0
mov dword [esp + 0xdc], ebx
mov dword [esp + 0x98], eax
add edi, edx
add edi, ecx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x48]
add dword [esp + 0xc4], esi
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
lea edx, [edi + ecx]
mov edi, dword [esp + 0xd0]
add edx, esi
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x24]
add edi, ecx
add edi, esi
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0xd8]
add ecx, edi
add ecx, esi
mov dword [esp + 0xa0], ecx
mov esi, edx
shl esi, 4
mov edi, dword [esp + 0xc4]
mov ecx, dword [esp + 0x9c]
movdqu xmm7, xmmword [edi + esi]
movdqu xmm0, xmmword [ecx + esi]
mov edi, dword [esp + 0xc8]
movdqa xmm5, xmm7
mov ecx, dword [esp + 0xa0]
punpcklbw xmm5, xmm0
movdqu xmm3, xmmword [edi + esi]
movdqu xmm1, xmmword [ecx + esi]
mov edi, dword [esp + 0xbc]
mov ecx, edx
shl ecx, 6
movdqa xmm2, xmm3
punpckhbw xmm7, xmm0
movdqa xmm4, xmm5
punpcklbw xmm2, xmm1
lea esi, [edi + esi + 0x10]
mov edi, dword [esp + 0xc0]
inc edx
punpckhbw xmm3, xmm1
movdqa xmm6, xmm7
punpcklwd xmm4, xmm2
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [ebx + ecx], xmm4
movdqa xmmword [eax + ecx + 0x10], xmm5
movdqa xmmword [eax + ecx + 0x20], xmm6
movdqa xmmword [eax + ecx + 0x30], xmm7
lea ecx, [edi + ecx + 0x40]
cmp edx, dword [esp + 0x98]
jb 0x1011a28c
jmp 0x1011a598
lea edx, [ecx + ebx]
test dl, 0x3f
je 0x1011a45e
mov eax, dword [esp + 0x58]
lea edx, [ecx + ebx]
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xdc], ebx
add edx, eax
mov eax, dword [esp + 0xd4]
add edx, ecx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x48]
add eax, edx
add eax, esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x80]
add eax, edx
add eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xd0]
add eax, edx
add eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xd8]
add edx, eax
mov eax, dword [esp + 0x1c]
add edx, esi
mov dword [esp + 0x60], edx
inc eax
mov ebx, eax
shl ebx, 4
neg ebx
add ebx, dword [esp + 0x7c]
cmp ebx, 0xfffffff0
je 0x1011a457
mov esi, eax
shl esi, 4
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
movdqu xmm7, xmmword [ecx + esi - 0x10]
movdqu xmm0, xmmword [edi + esi - 0x10]
movdqu xmm1, xmmword [edx + esi - 0x10]
mov ecx, dword [esp + 0x64]
movdqa xmm5, xmm7
mov edi, dword [esp + 0x5c]
punpcklbw xmm5, xmm0
movdqu xmm3, xmmword [ecx + esi - 0x10]
mov ecx, eax
movdqa xmm2, xmm3
shl ecx, 6
movdqa xmm4, xmm5
punpckhbw xmm7, xmm0
punpcklbw xmm2, xmm1
movdqa xmm6, xmm7
punpckhbw xmm3, xmm1
punpcklwd xmm4, xmm2
lea edx, [edi + ecx]
mov edi, dword [esp + 0x74]
punpckhwd xmm5, xmm2
punpcklwd xmm6, xmm3
punpckhwd xmm7, xmm3
movdqa xmmword [edx - 0x40], xmm4
movdqa xmmword [edi + ecx - 0x30], xmm5
movdqa xmmword [edi + ecx - 0x20], xmm6
movdqa xmmword [edi + ecx - 0x10], xmm7
mov edi, ebx
add esi, dword [esp + 0x78]
add ecx, dword [esp + 0x70]
test dl, 0x3f
jne 0x1011a3ab
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], ecx
test edi, edi
jle 0x1011a59f
mov edx, dword [esp + 0xd4]
add ecx, ebx
mov dword [esp + 0x20], ecx
mov eax, edi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x14], 0
add edx, ecx
add edx, esi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x80]
add edx, ecx
add edx, esi
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xd0]
add edx, ecx
add edx, esi
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0xd8]
add edx, ecx
add edx, esi
add edi, 0xf
mov dword [esp + 0xa8], edx
cdq
adc edx, 0
jns 0x1011a4dc
add edi, 0xf
adc edx, 0
shrd edi, edx, 4
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov esi, edx
shl esi, 4
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
movdqu xmm0, xmmword [edi + esi]
movdqu xmm7, xmmword [eax + esi]
movdqu xmm6, xmmword [ecx + esi]
mov edi, dword [esp + 0xa8]
mov ecx, edx
movdqa xmm4, xmm7
movdqa xmm3, xmm6
shl ecx, 6
inc edx
movdqu xmm1, xmmword [edi + esi]
punpcklbw xmm4, xmm0
punpckhbw xmm7, xmm0
movdqa xmm2, xmm4
punpcklbw xmm3, xmm1
movdqa xmm5, xmm7
punpckhbw xmm6, xmm1
punpcklwd xmm2, xmm3
punpckhwd xmm4, xmm3
punpcklwd xmm5, xmm6
punpckhwd xmm7, xmm6
movntdq xmmword [ebx + ecx], xmm2
movntdq xmmword [ebx + ecx + 0x10], xmm4
movntdq xmmword [ebx + ecx + 0x20], xmm5
movntdq xmmword [ebx + ecx + 0x30], xmm7
mov edi, dword [esp + 0xb4]
lea esi, [edi + esi + 0x10]
mov edi, dword [esp + 0xb8]
lea ecx, [edi + ecx + 0x40]
cmp edx, dword [esp + 0xa4]
jb 0x1011a4fa
mov ebx, dword [esp + 0xdc]
cmp dword [esp + 0xe0], 0
je 0x1011a652
mov edi, dword [ebp + 0x10]
add ebx, ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], 0
mov dword [esp + 0xdc], ebx
add edx, edi
mov edi, dword [esp + 0xd4]
add ecx, edx
mov edx, dword [esp + 0x48]
lea eax, [edi + edx]
mov edi, dword [esp + 0x80]
add eax, esi
mov dword [esp + 0xe4], eax
add edi, edx
add edi, esi
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0xd0]
add edi, edx
add edi, esi
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x38]
add edx, edi
mov edi, dword [esp + 0x34]
add esi, edx
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xdc]
movzx edx, byte [edi + edx]
mov byte [eax + edi*4], dl
mov edx, dword [esp + 0xe8]
movzx eax, byte [edi + edx]
mov byte [ecx + edi*4 + 1], al
movzx edx, byte [edi + ebx]
mov byte [ecx + edi*4 + 2], dl
movzx edx, byte [edi + esi]
mov byte [ecx + edi*4 + 3], dl
inc edi
cmp edi, dword [esp + 0xe0]
jb 0x1011a614
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
inc ecx
add eax, dword [ebp + 0xc]
add edx, dword [ebp + 0x14]
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], ecx
cmp ecx, dword [esp + 0x44]
jb 0x10119f3b
cmp dword [esp + 0x40], 0
je 0x1011a685
sfence
add esp, 0xf4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
xor ecx, ecx
jmp 0x10119650
xor ecx, ecx
xor edx, edx
jmp 0x101197fd