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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
mov eax, 0x204d8
call fcn.14008dd30
sub rsp, rax
movaps xmmword [rsp + 0x20430], xmm6
movaps xmmword [rsp + 0x20440], xmm7
movaps xmmword [rsp + 0x20450], xmm8
movaps xmmword [rsp + 0x20460], xmm9
movaps xmmword [rsp + 0x20470], xmm10
movaps xmmword [rsp + 0x20480], xmm11
movaps xmmword [rsp + 0x20490], xmm12
movaps xmmword [rsp + 0x204a0], xmm13
movaps xmmword [rsp + 0x204b0], xmm14
movaps xmmword [rsp + 0x204c0], xmm15
mov qword [rsp + 0x20520], rcx
mov qword [rsp + 0x20528], rdx
mov dword [rsp + 0x20530], r8d
mov ecx, r9d
mov r9d, dword [rsp + 0x20540]
mov rax, qword [rsp + 0x20520]
cmp qword [rax + 0x58], 0
je 0x140029d55
mov eax, 0x10
cmp ecx, eax
cmovg ecx, eax
test ecx, ecx
mov eax, 1
cmovle ecx, eax
test r9d, r9d
jne 0x140028d3c
mov rax, qword [rsp + 0x20520]
mov eax, dword [rax + 0x68]
mov dword [rsp + 0x20], eax
lea r9d, [rax*4]
test r9d, r9d
js 0x140028e2d
mov rax, qword [rsp + 0x20520]
mov r8d, dword [rax + 0x1c]
test r8d, r8d
mov eax, 1
cmovle r8d, eax
mov eax, 0xa0
mov edx, 0
idiv r8d
mov rsi, qword [rsp + 0x20520]
add eax, dword [rsi + 0x18]
cmp eax, ecx
cmovg eax, ecx
mov esi, dword [rsi + 0x6c]
mov dword [rsp + 0x60], esi
mov rdi, qword [rsp + 0x20520]
mov ebp, dword [rdi + 0x68]
cmp dword [0x1400ebd00], 0
lea rcx, [0x1400b2460]
lea rdx, [0x1400b24c0]
cmove rdx, rcx
mov qword [rsp + 0x98], rdx
lea rcx, [0x1400b24c0]
lea rdx, [0x1400b2460]
cmove rdx, rcx
mov qword [rsp + 0xa0], rdx
mov r15, qword [rdi + 0x30]
imul esi, ebp
movsxd r12, eax
lea eax, [rbp - 4]
shr eax, 2
mov dword [rsp + 0x84], eax
lea eax, [rax*4 + 4]
mov dword [rsp + 0x80], eax
lea eax, [rsi - 1]
lea r13, [r15 + rax*4 + 4]
movdqa xmm8, xmmword [0x1400b25d0]
movdqa xmm7, xmmword [0x1400b25e0]
movdqa xmm15, xmmword [0x1400b25f0]
mov dword [rsp + 0xac], esi
mov r14, r15
mov rdi, qword [rsp + 0x20528]
mov dword [rsp + 0x20540], r9d
jmp 0x140029196
mov rax, qword [rsp + 0x20520]
mov eax, dword [rax + 0x6c]
mov dword [rsp + 0x20], eax
sub eax, 1
imul eax, r9d
cdqe
sub qword [rsp + 0x20528], rax
jmp 0x140028d45
mov r10d, 0
jmp 0x1400290cc
mov eax, r11d
and eax, 3
add eax, r15d
cdqe
lea rbx, [0x1400b23c0]
mov eax, dword [rbx + rax*4]
movsxd r8, r10d
movzx edx, byte [r9 + 2]
imul edx, r13d
mov ebx, eax
movzx ecx, byte [rsp + 0x38]
sar ebx, cl
add ebx, edx
mov edx, 0xffff
cmp ebx, edx
cmovg ebx, edx
movzx ecx, byte [rsp + 0x54]
sar ebx, cl
mov edx, dword [rsp + 0x48]
and ebx, edx
movzx edx, byte [r9 + 1]
imul edx, r12d
mov ebp, eax
movzx ecx, byte [rsp + 0x40]
sar ebp, cl
add edx, ebp
mov ecx, 0xffff
cmp edx, ecx
cmovg edx, ecx
movzx ecx, byte [rsp + 0x4c]
sar edx, cl
mov ecx, dword [rsp + 0x20]
and edx, ecx
or edx, ebx
movzx ebx, byte [r9]
imul ebx, edi
movzx ecx, byte [rsp + 0x3c]
sar eax, cl
add eax, ebx
mov ecx, 0xffff
cmp eax, ecx
cmovg eax, ecx
movzx ecx, byte [rsp + 0x30]
sar eax, cl
or eax, edx
mov dword [r14 + r8*4], eax
add r11, 1
add r9, 4
add r10d, 1
cmp dword [rsp + 0x50], r11d
jle 0x140028f26
movzx eax, byte [r9 + 3]
cmp eax, dword [0x1400ebd04]
jge 0x140028e5d
lea eax, [rsi + r11]
cdqe
movd dword [r14 + rax*4], xmm12
jmp 0x140028ef4
mov ebp, dword [rsp + 0x50]
movzx ebx, word [rsp + 0x58]
mov eax, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x70]
mov r8, qword [rsp + 0x20528]
add eax, 1
mov edi, dword [rsp + 0x68]
add edx, edi
add esi, ebp
cmp dword [rsp + 0x60], eax
je 0x140029112
mov ecx, eax
and ecx, 3
lea r15d, [rcx*4]
movsxd r9, r15d
lea rcx, [0x1400b23c0]
movdqa xmm4, xmmword [rcx + r9*4]
mov r12d, dword [rsp + 0x38]
movd xmm1, r12d
movdqa xmm0, xmm4
psrld xmm0, xmm1
pslld xmm0, 0x10
mov edi, dword [rsp + 0x3c]
movd xmm1, edi
movdqa xmm5, xmm4
psrld xmm5, xmm1
por xmm5, xmm0
cmp ebp, 3
jle 0x140028e52
mov r13d, dword [rsp + 0x40]
movd xmm0, r13d
psrld xmm4, xmm0
movd xmm6, dword [0x1400ebd04]
pshufd xmm13, xmm6, 0
movsxd r11, edx
lea r9, [r8 + r11]
movsxd rcx, esi
lea r10, [r14 + rcx*4]
mov ecx, dword [rsp + 0x84]
add ecx, 1
mov ecx, ecx
shl rcx, 4
add rcx, r8
add rcx, r11
mov r11d, 0x20
sub r11d, edi
sub r11d, r13d
mov edi, r11d
sub edi, r12d
movq xmm6, rdi
movsx edi, bx
movd xmm9, edi
pshufd xmm9, xmm9, 0
mov r11d, dword [rsp + 0x4c]
movd xmm3, dword [rsp + 0x48]
pshufd xmm11, xmm3, 0
movdqu xmm14, xmmword [r9]
movdqa xmm0, xmm14
pand xmm0, xmm8
pmullw xmm0, xmm10
paddusw xmm0, xmm5
movdqa xmm3, xmm0
pand xmm3, xmm7
movd xmm1, dword [rsp + 0x30]
psrld xmm3, xmm1
psrld xmm0, xmm6
movdqa xmm1, xmm14
psrld xmm1, 8
pand xmm1, xmm15
pmullw xmm1, xmm9
paddusw xmm1, xmm4
movq xmm2, r11
psrld xmm1, xmm2
psrld xmm14, 0x18
movdqa xmm2, xmm13
pcmpgtd xmm2, xmm14
pand xmm0, xmm11
movd xmm14, dword [rsp + 0x20]
pshufd xmm14, xmm14, 0
pand xmm1, xmm14
por xmm0, xmm1
por xmm0, xmm3
movdqa xmm1, xmm2
pandn xmm1, xmm0
pshufd xmm0, xmm12, 0
pand xmm2, xmm0
por xmm2, xmm1
movups xmmword [r10], xmm2
add r9, 0x10
add r10, 0x10
cmp r9, rcx
jne 0x14002901b
mov r10d, dword [rsp + 0x80]
cmp ebp, r10d
jle 0x140028f3f
movsxd r11, r10d
movsxd rcx, edx
lea r9, [rcx + r11*4]
add r9, r8
add r10d, esi
movsx r13d, word [rsp + 0x78]
movsx r12d, bx
movsx edi, word [rsp + 0x74]
mov dword [rsp + 0x50], ebp
mov word [rsp + 0x58], bx
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x70], edx
mov qword [rsp + 0x20528], r8
jmp 0x140028f07
mov r13, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
mov rdi, r8
cmp dword [rsp + 0xac], 0
jle 0x140029145
mov rax, r14
mov edx, dword [rax]
mov byte [rsp + rdx + 0x10420], 1
add rax, 4
cmp rax, r13
jne 0x140029132
movd eax, xmm12
test eax, eax
jle 0x140029342
lea rdx, [rsp + 0x10420]
cdqe
add rax, rdx
mov r8d, 0
movzx ecx, byte [rdx]
add r8d, ecx
add rdx, 1
cmp rdx, rax
jne 0x140029165
cmp r8d, 0xff
jle 0x1400294ec
sub r12, 1
mov dword [rsp + 0xa8], r12d
test r12d, r12d
je 0x14002933d
mov dword [rsp + 0xa8], r12d
mov rax, qword [rsp + 0x98]
mov esi, dword [rax + r12*4]
mov dword [rsp + 0x3c], esi
lea rax, [0x1400b2400]
mov r15d, dword [rax + r12*4]
mov dword [rsp + 0x40], r15d
mov rax, qword [rsp + 0xa0]
mov r11d, dword [rax + r12*4]
lea ecx, [rsi + r15]
mov dword [rsp + 0x38], r11d
add ecx, r11d
mov ebx, 1
mov eax, ebx
shl eax, cl
movd xmm12, eax
lea r8d, [rax + 1]
lea rcx, [rsp + 0x10420]
movsxd r8, r8d
mov edx, 0
call sym.memset
mov eax, 8
mov ecx, eax
sub ecx, esi
mov edx, ebx
shl edx, cl
sub edx, 1
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
movss xmm0, dword [0x1400b253c]
movaps xmm1, xmm0
subss xmm1, xmm2
divss xmm1, xmm0
movss xmm2, dword [0x1400b25c4]
mulss xmm1, xmm2
cvttss2si edx, xmm1
mov dword [rsp + 0x74], edx
mov ecx, eax
sub ecx, r15d
mov edx, ebx
shl edx, cl
sub edx, 1
pxor xmm3, xmm3
cvtsi2ss xmm3, edx
movaps xmm1, xmm0
subss xmm1, xmm3
divss xmm1, xmm0
mulss xmm1, xmm2
cvttss2si edx, xmm1
mov r9d, edx
mov r11d, dword [rsp + 0x38]
sub eax, r11d
mov ecx, eax
mov eax, ebx
shl eax, cl
sub eax, 1
pxor xmm3, xmm3
cvtsi2ss xmm3, eax
movaps xmm1, xmm0
subss xmm1, xmm3
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rsp + 0x78], eax
mov eax, ebx
mov r10d, r15d
mov ecx, r15d
shl eax, cl
sub eax, 1
mov r8d, esi
mov ecx, esi
shl eax, cl
mov dword [rsp + 0x20], eax
mov ecx, r11d
shl ebx, cl
lea eax, [rbx - 1]
mov ecx, esi
shl eax, cl
mov ecx, r15d
shl eax, cl
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x60], 0
jle 0x140029125
mov eax, dword [rsp + 0x20540]
mov dword [rsp + 0x68], eax
mov esi, 0
mov edx, 0
mov r15d, 0
movd xmm10, dword [rsp + 0x74]
pinsrw xmm10, word [rsp + 0x78], 1
punpckldq xmm10, xmm10
punpcklqdq xmm10, xmm10
mov eax, 0x10
sub eax, r8d
mov dword [rsp + 0x30], eax
sub eax, r10d
mov dword [rsp + 0x4c], eax
sub eax, r11d
mov dword [rsp + 0x54], eax
mov ebx, r9d
mov eax, r15d
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x90], r12
mov r8, rdi
jmp 0x140028f54
mov r15, r14
jmp 0x14002934b
mov r15, r14
mov r8d, 0
mov edi, dword [rsp + 0xa8]
movsxd rax, edi
mov rsi, qword [rsp + 0x98]
mov esi, dword [rsi + rax*4]
lea rdx, [0x1400b2400]
mov ebp, dword [rdx + rax*4]
mov rbx, qword [rsp + 0xa0]
mov r14d, dword [rbx + rax*4]
mov rax, qword [rsp + 0x20520]
mov qword [rax + 0x30], r15
mov dword [rax + 0x38], edi
mov dword [rax + 0x3c], r8d
mov dword [rax + 0x40], esi
mov dword [rax + 0x44], ebp
mov dword [rax + 0x48], r14d
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x20520]
mov ebx, dword [rax + 0x6c]
mov eax, dword [rax + 0x68]
mov dword [rsp + 0x80], eax
mov rdi, qword [rsp + 0x20520]
movdqu xmm7, xmmword [rdi + 0x30]
movaps xmmword [rsp + 0xd0], xmm7
movdqu xmm7, xmmword [rdi + 0x40]
movaps xmmword [rsp + 0x20], xmm7
movaps xmmword [rsp + 0xe0], xmm7
imul eax, ebx
mov dword [rsp + 0x74], eax
lea eax, [rax + rax*2]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, 0x330
movsxd rcx, ecx
call sym.malloc
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140029d3e
add rax, 0x10
mov qword [rsp + 0x78], rax
lea eax, [rsi + rbp]
mov dword [rsp + 0x20], eax
lea ecx, [rax + r14]
mov eax, 1
shl eax, cl
mov r8d, eax
lea rdi, [rsp + 0x110]
mov ecx, 0x60
mov eax, 0
rep stosq qword [rdi], rax
movsxd rax, r8d
mov byte [rsp + rax + 0x410], 0
test r8d, r8d
jle 0x140029856
mov eax, 1
mov edx, eax
mov ecx, esi
shl edx, cl
lea edi, [rdx - 1]
mov dword [rsp + 0x30], edi
mov ecx, ebp
shl eax, cl
lea r10d, [rax - 1]
lea eax, [rsi + rsi]
mov dword [rsp + 0x38], eax
add eax, esi
mov dword [rsp + 0x48], eax
lea eax, [rbp + rbp]
mov dword [rsp + 0x3c], eax
add eax, ebp
mov dword [rsp + 0x4c], eax
lea eax, [r14 + r14]
mov dword [rsp + 0x40], eax
add eax, r14d
mov dword [rsp + 0x50], eax
mov r9d, dword [0x1400ebd00]
movsxd r13, r8d
mov eax, 0
mov r12d, 1
lea rdi, [rsp + 0x10420]
mov edx, 8
mov ecx, edx
sub ecx, esi
mov dword [rsp + 0x54], ecx
mov ecx, edx
sub ecx, ebp
mov dword [rsp + 0x58], ecx
sub edx, r14d
mov dword [rsp + 0x5c], edx
mov dword [rsp + 0x84], ebx
mov dword [rsp + 0xa8], r8d
mov dword [rsp + 0x70], r10d
mov qword [rsp + 0x88], r15
mov r15d, r9d
jmp 0x140029514
mov r15, r14
jmp 0x14002934b
mov byte [rsp + rbx + 0x110], dl
mov byte [rsp + rbx + 0x112], r10b
add r12d, 1
add rax, 1
cmp rax, r13
je 0x1400295f0
cmp byte [rax + rdi], 0
je 0x140029507
mov byte [rsp + rax + 0x410], r12b
mov r11d, dword [rsp + 0x30]
and r11d, eax
mov r9d, eax
mov ecx, esi
sar r9d, cl
mov ebx, dword [rsp + 0x70]
and r9d, ebx
mov edx, eax
movzx ecx, byte [rsp + 0x20]
sar edx, cl
movzx ecx, byte [rsp + 0x54]
shl r11d, cl
movzx ecx, byte [rsp + 0x58]
shl r9d, cl
movzx ecx, byte [rsp + 0x5c]
shl edx, cl
mov r10d, r11d
mov ecx, esi
sar r10d, cl
mov ebx, r11d
movzx ecx, byte [rsp + 0x38]
sar ebx, cl
or r10d, ebx
or r10d, r11d
movzx ecx, byte [rsp + 0x48]
sar r11d, cl
or r10d, r11d
movsxd rcx, r12d
lea rbx, [rcx + rcx*2]
mov byte [rsp + rbx + 0x110], r10b
mov r11d, r9d
mov ecx, ebp
sar r11d, cl
mov r8d, r9d
movzx ecx, byte [rsp + 0x3c]
sar r8d, cl
or r11d, r8d
or r11d, r9d
movzx ecx, byte [rsp + 0x4c]
sar r9d, cl
or r11d, r9d
mov byte [rsp + rbx + 0x111], r11b
mov r9d, edx
mov ecx, r14d
sar r9d, cl
mov r8d, edx
movzx ecx, byte [rsp + 0x40]
sar r8d, cl
or r9d, r8d
or r9d, edx
movzx ecx, byte [rsp + 0x50]
sar edx, cl
or edx, r9d
mov byte [rsp + rbx + 0x112], dl
test r15d, r15d
je 0x140029503
jmp 0x1400294f4
mov ebx, dword [rsp + 0x84]
mov r8d, dword [rsp + 0xa8]
mov r15, qword [rsp + 0x88]
movsxd r8, r8d
movzx edx, byte [rsp + r8 + 0x10420]
lea eax, [r12 - 1]
bsr eax, eax
xor eax, 0x1f
mov ecx, 0x20
mov edi, ecx
sub edi, eax
mov eax, 2
cmp edi, eax
cmovl edi, eax
mov eax, 1
mov ecx, edi
shl eax, cl
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x20520]
movdqu xmm7, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xf0], xmm7
movdqu xmm7, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x20], xmm7
movaps xmmword [rsp + 0x100], xmm7
mov r13, qword [rax + 0x10]
mov ecx, dword [rax + 0x20]
mov eax, dword [rax + 0x24]
mov dword [rsp + 0xe0], esi
mov dword [rsp + 0xe4], ebp
mov dword [rsp + 0x100], ecx
mov dword [rsp + 0x104], eax
mov rax, qword [rsp + 0xe0]
cmp qword [rsp + 0x100], rax
sete al
mov rsi, qword [rsp + 0x20520]
cmp r14d, dword [rsi + 0x28]
sete cl
and eax, ecx
test edx, edx
sete cl
and eax, ecx
mov byte [rsp + 0x20], al
mov r8d, 0x504f921
mov r9d, 0x2c
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov dword [rsp + 0xbf], 0x800000
test edx, edx
je 0x1400296f3
cmp dword [rsi + 0x78], 0
jle 0x1400296f3
mov rax, qword [rsi + 0x60]
mov byte [rax + 0x13], 9
movzx eax, word [rsp + 0x20530]
mov word [rsp + 0xb4], ax
movzx eax, word [rsp + 0x80]
mov word [rsp + 0xbd], ax
mov word [rsp + 0xbf], bx
lea eax, [rdi - 1]
or eax, 0xffffff80
mov byte [rsp + 0xc1], al
mov rsi, qword [rsp + 0x60]
movdqa xmm7, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x10], xmm7
movzx eax, word [rsp + 0xc0]
mov rbx, qword [rsp + 0x78]
mov word [rbx + 0x10], ax
lea rbp, [rsi + 0x22]
mov ebx, dword [rsp + 0x3c]
movsxd rax, ebx
lea rsi, [rax + rax*2]
lea rdx, [rsp + 0x110]
mov r8, rsi
mov rcx, rbp
call sym.memcpy
add rbp, rsi
lea rsi, [rbp + 1]
mov byte [rbp], dil
mov qword [rbp + 1], 0
mov qword [rbp + 0xfd], 0
lea rdi, [rbp + 9]
and rdi, 0xfffffffffffffff8
mov rcx, rsi
sub rcx, rdi
add ecx, 0x104
shr ecx, 3
mov ecx, ecx
mov eax, 0
rep stosq qword [rdi], rax
mov byte [rbp + 1], 0xff
mov eax, r12d
shl eax, 0xc
cdqe
add rax, rax
mov qword [rsp + 0x40], rax
mov r8, rax
mov edx, 0xff
mov rcx, qword [rsp + 0x68]
call sym.memset
lea eax, [rbx + 2]
mov dword [rsp + 0x38], eax
lea r8d, [rbx + 1]
bsr eax, r8d
xor eax, 0x1f
or byte [rbp + 2], bl
mov edi, ebx
shr ebx, 8
or byte [rbp + 3], bl
mov ebx, edi
shr ebx, 0x10
or byte [rbp + 4], bl
mov edx, 0x28
sub edx, eax
mov r14d, edx
cmp byte [rsp + 0x20], 0
je 0x140029816
mov eax, 0
mov edi, dword [r13]
cmp dword [r15], edi
je 0x140029821
mov eax, dword [r15]
movzx eax, byte [rsp + rax + 0x410]
cmp dword [rsp + 0x74], 1
jle 0x140029c53
lea rbp, [r15 + 4]
add r13, 4
mov edi, dword [rsp + 0x74]
lea edx, [rdi - 2]
lea rdi, [r15 + rdx*4 + 8]
mov qword [rsp + 0x30], rdi
mov r9d, dword [rsp + 0x38]
mov r15, qword [rsp + 0x68]
mov dword [rsp + 0x48], r8d
jmp 0x14002989f
mov r12d, 1
jmp 0x140029607
mov edx, dword [rbp]
movzx ebx, byte [rsp + rdx + 0x410]
mov edx, r12d
imul edx, eax
movsxd rdx, edx
movsxd rcx, ebx
add rdx, rcx
lea r8, [r15 + rdx*2]
movsx edx, word [r8]
test edx, edx
js 0x1400298b6
mov eax, edx
add rbp, 4
add r13, 4
mov rdi, qword [rsp + 0x30]
cmp rbp, rdi
je 0x140029a6c
cmp byte [rsp + 0x20], 0
je 0x140029861
mov ebx, 0
mov edi, dword [r13]
cmp dword [rbp], edi
jne 0x140029861
jmp 0x14002986c
lea edx, [r9 - 1]
bsr r10d, edx
xor r10d, 0x1f
mov r11d, r14d
and r11d, 7
mov edx, r14d
shr edx, 3
movsxd rdx, edx
mov edi, eax
mov ecx, r11d
shl edi, cl
or byte [rsi + rdx], dil
mov ecx, 8
sub ecx, r11d
mov edi, eax
shr edi, cl
or byte [rsi + rdx + 1], dil
mov ecx, 0x10
sub ecx, r11d
shr eax, cl
or byte [rsi + rdx + 2], al
mov edx, 0x20
sub edx, r10d
add r14d, edx
cmp r14d, 0x7ff
ja 0x140029928
cmp r9d, 0xfff
jg 0x140029994
mov word [r8], r9w
add r9d, 1
mov eax, ebx
jmp 0x140029889
sub r14d, 0x7f8
movzx eax, byte [rsi + 0x101]
mov byte [rsi + 0x102], al
movzx eax, byte [rsi + 0x100]
mov byte [rsi + 0x101], al
mov byte [rsi + 0x100], 0xff
mov qword [rsi + 0x104], 0
mov qword [rsi + 0x1fc], 0
lea rdi, [rsi + 0x10c]
and rdi, 0xfffffffffffffff8
mov eax, esi
sub eax, edi
lea ecx, [rax + 0x204]
shr ecx, 3
mov ecx, ecx
mov eax, 0
rep stosq qword [rdi], rax
lea rsi, [rsi + 0x100]
jmp 0x140029910
mov r8d, r14d
and r8d, 7
mov eax, r14d
shr eax, 3
cdqe
mov edi, dword [rsp + 0x3c]
mov r10d, edi
mov ecx, r8d
shl r10d, cl
or byte [rsi + rax], r10b
mov ecx, 8
sub ecx, r8d
mov r10d, edi
shr r10d, cl
or byte [rsi + rax + 1], r10b
mov ecx, 0x10
sub ecx, r8d
shr edi, cl
or byte [rsi + rax + 2], dil
add r14d, edx
cmp r14d, 0x7ff
ja 0x140029a00
mov r8, qword [rsp + 0x40]
mov edx, 0xff
mov rcx, r15
call sym.memset
mov r9d, dword [rsp + 0x38]
mov eax, ebx
jmp 0x140029889
sub r14d, 0x7f8
movzx eax, byte [rsi + 0x101]
mov byte [rsi + 0x102], al
movzx eax, byte [rsi + 0x100]
mov byte [rsi + 0x101], al
mov byte [rsi + 0x100], 0xff
mov qword [rsi + 0x104], 0
mov qword [rsi + 0x1fc], 0
lea rdi, [rsi + 0x10c]
and rdi, 0xfffffffffffffff8
mov eax, esi
sub eax, edi
lea ecx, [rax + 0x204]
shr ecx, 3
mov ecx, ecx
mov eax, 0
rep stosq qword [rdi], rax
lea rsi, [rsi + 0x100]
jmp 0x1400299e2
mov r8d, dword [rsp + 0x48]
lea edx, [r9 - 1]
bsr edx, edx
xor edx, 0x1f
mov r11d, r14d
and r11d, 7
mov r10d, r14d
shr r10d, 3
movsxd r10, r10d
mov edi, eax
mov ecx, r11d
shl edi, cl
or byte [rsi + r10], dil
mov ecx, 8
sub ecx, r11d
mov edi, eax
shr edi, cl
or byte [rsi + r10 + 1], dil
mov ecx, 0x10
sub ecx, r11d
shr eax, cl
or byte [rsi + r10 + 2], al
mov r10d, 0x20
sub r10d, edx
mov eax, 0xc
cmp r10d, eax
cmovg r10d, eax
add r10d, r14d
cmp r10d, 0x7ff
ja 0x140029c5d
bsr eax, r9d
xor eax, 0x1f
mov r9d, r10d
and r9d, 7
mov edx, r10d
shr edx, 3
movsxd rdx, edx
mov edi, r8d
mov ecx, r9d
shl edi, cl
or byte [rsi + rdx], dil
mov ecx, 8
sub ecx, r9d
mov edi, r8d
shr edi, cl
or byte [rsi + rdx + 1], dil
mov ecx, 0x10
sub ecx, r9d
shr r8d, cl
or byte [rsi + rdx + 2], r8b
mov edx, 0x20
sub edx, eax
mov eax, 0xc
cmp edx, eax
cmovg edx, eax
add edx, r10d
cmp edx, 0x7ff
ja 0x140029cc9
cmp edx, 8
jbe 0x140029b56
lea eax, [rdx + 7]
shr eax, 3
lea edx, [rax - 1]
mov byte [rsi], dl
cdqe
add rsi, rax
mov byte [rsi], 0
mov rdi, qword [rsp + 0x60]
mov qword [rdi], 0
lea rax, [rsi + 1]
mov rsi, qword [rsp + 0x78]
sub rax, rsi
mov qword [rdi + 8], rax
lea rdx, [rax + 0x10]
mov rcx, rdi
call sym.realloc
test rax, rax
je 0x140029d34
mov rsi, qword [rsp + 0x20520]
mov rdx, qword [rsi + 0x60]
mov qword [rdx], rax
mov qword [rsi + 0x60], rax
mov r10, qword [rsi + 0x10]
mov r9d, dword [rsi + 0x18]
mov r8d, dword [rsi + 0x1c]
mov ecx, dword [rsi + 0x20]
mov edx, dword [rsi + 0x24]
mov eax, dword [rsi + 0x28]
movdqu xmm7, xmmword [rsi + 0x30]
movups xmmword [rsi + 0x10], xmm7
movdqu xmm7, xmmword [rsi + 0x40]
movaps xmmword [rsp + 0x20], xmm7
movups xmmword [rsi + 0x20], xmm7
mov qword [rsi + 0x30], r10
mov dword [rsi + 0x38], r9d
mov dword [rsi + 0x3c], r8d
mov dword [rsi + 0x40], ecx
mov dword [rsi + 0x44], edx
mov dword [rsi + 0x48], eax
add dword [rsi + 0x78], 1
mov eax, 1
movaps xmm6, xmmword [rsp + 0x20430]
movaps xmm7, xmmword [rsp + 0x20440]
movaps xmm8, xmmword [rsp + 0x20450]
movaps xmm9, xmmword [rsp + 0x20460]
movaps xmm10, xmmword [rsp + 0x20470]
movaps xmm11, xmmword [rsp + 0x20480]
movaps xmm12, xmmword [rsp + 0x20490]
movaps xmm13, xmmword [rsp + 0x204a0]
movaps xmm14, xmmword [rsp + 0x204b0]
movaps xmm15, xmmword [rsp + 0x204c0]
add rsp, 0x204d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, dword [rsp + 0x38]
jmp 0x140029a71
sub r10d, 0x7f8
movzx eax, byte [rsi + 0x101]
mov byte [rsi + 0x102], al
movzx eax, byte [rsi + 0x100]
mov byte [rsi + 0x101], al
mov byte [rsi + 0x100], 0xff
mov qword [rsi + 0x104], 0
mov qword [rsi + 0x1fc], 0
lea rdi, [rsi + 0x10c]
and rdi, 0xfffffffffffffff8
mov eax, esi
sub eax, edi
lea ecx, [rax + 0x204]
shr ecx, 3
mov ecx, ecx
mov eax, 0
rep stosq qword [rdi], rax
lea rsi, [rsi + 0x100]
jmp 0x140029adc
sub edx, 0x7f8
movzx eax, byte [rsi + 0x101]
mov byte [rsi + 0x102], al
movzx eax, byte [rsi + 0x100]
mov byte [rsi + 0x101], al
mov byte [rsi + 0x100], 0xff
mov qword [rsi + 0x104], 0
mov qword [rsi + 0x1fc], 0
lea rdi, [rsi + 0x10c]
and rdi, 0xfffffffffffffff8
mov eax, esi
sub eax, edi
lea ecx, [rax + 0x204]
shr ecx, 3
mov ecx, ecx
mov eax, 0
rep stosq qword [rdi], rax
lea rsi, [rsi + 0x100]
jmp 0x140029b41
mov rcx, qword [rsp + 0x60]
call sym.free
mov rcx, qword [rsp + 0x20520]
call sym.msf_free_gif_state
mov eax, 0
jmp 0x140029be7
mov eax, 0
jmp 0x140029be7