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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov eax, dword [rcx]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 4]
mov qword [rsp + 0x130], rcx
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 8]
mov qword [rsp + 0x138], rdx
mov dword [rsp + 0x44], eax
mov eax, dword [rcx + 0xc]
mov qword [rsp + 0x140], r8
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x148], r9d
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x54], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0x5c], eax
mov eax, dword [rcx + 0x24]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x64], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x68], eax
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x24], eax
mov eax, dword [rcx + 0x34]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x38]
cmp dword [rsp + 0x148], 0x3f
mov qword [rsp + 0x98], 0
mov dword [rsp + 0x6c], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x90], rax
jbe 0x2b3684c1c
nop dword [rax]
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x28], 4
mov r14d, dword [rsp + 0x70]
mov r15d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
mov r8d, dword [rsp + 0x54]
mov eax, dword [rsp + 0x6c]
mov ebx, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x60]
mov edx, dword [rsp + 0x38]
mov edi, dword [rsp + 0x50]
mov esi, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x4c]
mov r13d, dword [rsp + 0x3c]
add r13d, ebp
add esi, edi
add ebx, r8d
xor ecx, r13d
xor edx, esi
xor eax, ebx
rol ecx, 0x10
rol edx, 0x10
add r11d, ecx
add r9d, edx
rol eax, 0x10
xor ebp, r11d
xor edi, r9d
add r12d, eax
rol ebp, 0xc
rol edi, 0xc
xor r8d, r12d
add r13d, ebp
add esi, edi
rol r8d, 0xc
xor ecx, r13d
xor edx, esi
add ebx, r8d
rol ecx, 8
rol edx, 8
xor eax, ebx
add r11d, ecx
add r9d, edx
xor ebp, r11d
xor edi, r9d
mov dword [rsp], r11d
rol ebp, 7
rol edi, 7
mov dword [rsp + 0x10], r9d
rol eax, 8
add r10d, r15d
add r13d, edi
xor r14d, r10d
add r12d, eax
mov r11d, r14d
mov r14d, dword [rsp + 0x20]
xor r8d, r12d
rol r11d, 0x10
rol r8d, 7
add r14d, r11d
add esi, r8d
xor r15d, r14d
mov r9d, r14d
xor ecx, esi
rol r15d, 0xc
rol ecx, 0x10
add r10d, r15d
xor r11d, r10d
rol r11d, 8
add r9d, r11d
xor r11d, r13d
rol r11d, 0x10
xor r15d, r9d
add r9d, ecx
add r12d, r11d
rol r15d, 7
xor edi, r12d
rol edi, 0xc
add r13d, edi
xor r11d, r13d
mov r14d, r11d
mov r11d, dword [rsp]
rol r14d, 8
add r12d, r14d
xor edi, r12d
rol edi, 7
xor r8d, r9d
add ebx, r15d
add r10d, ebp
rol r8d, 0xc
xor edx, ebx
xor eax, r10d
rol edx, 0x10
add esi, r8d
rol eax, 0x10
xor ecx, esi
add r11d, edx
rol ecx, 8
xor r15d, r11d
add r9d, ecx
rol r15d, 0xc
xor r8d, r9d
mov dword [rsp + 0x20], r9d
mov r9d, dword [rsp + 0x10]
add ebx, r15d
xor edx, ebx
rol r8d, 7
add r9d, eax
rol edx, 8
xor ebp, r9d
add r11d, edx
rol ebp, 0xc
xor r15d, r11d
add r10d, ebp
rol r15d, 7
xor eax, r10d
rol eax, 8
add r9d, eax
xor ebp, r9d
rol ebp, 7
sub dword [rsp + 0x28], 1
jne 0x2b3684514
add r8d, dword [rsp + 0x54]
add ebp, dword [rsp + 0x4c]
add r13d, dword [rsp + 0x3c]
add esi, dword [rsp + 0x40]
mov dword [rsp], r8d
mov r8d, dword [rsp + 0x20]
add r8d, dword [rsp + 0x68]
add ebx, dword [rsp + 0x44]
add r10d, dword [rsp + 0x48]
mov dword [rsp + 0x30], r8d
mov r8, qword [rsp + 0x138]
add edi, dword [rsp + 0x50]
add r11d, dword [rsp + 0x5c]
add eax, dword [rsp + 0x6c]
xor ebp, dword [r8 + 0x10]
xor r13d, dword [r8]
xor esi, dword [r8 + 4]
xor ebx, dword [r8 + 8]
mov dword [rsp + 0x10], ebp
mov rbp, r8
xor r10d, dword [r8 + 0xc]
xor edi, dword [r8 + 0x14]
xor r11d, dword [rbp + 0x20]
mov r8d, dword [rsp]
xor r8d, dword [rbp + 0x18]
add r15d, dword [rsp + 0x58]
add r9d, dword [rsp + 0x60]
xor r15d, dword [rbp + 0x1c]
mov dword [rsp + 0x20], r8d
add r12d, dword [rsp + 0x64]
add ecx, dword [rsp + 0x24]
add edx, dword [rsp + 0x38]
add r14d, dword [rsp + 0x70]
mov dword [rsp + 0x74], r11d
mov r11d, r13d
xor ecx, dword [rbp + 0x30]
xor edx, dword [rbp + 0x34]
xor r9d, dword [rbp + 0x24]
xor r12d, dword [rbp + 0x28]
mov dword [rsp + 0x80], ecx
mov ecx, dword [rbp + 0x38]
xor r14d, dword [rbp + 0x3c]
mov dword [rsp + 0x84], edx
mov r8d, dword [rsp + 0x30]
xor r8d, dword [rbp + 0x2c]
mov dword [rsp + 0x78], r12d
mov r12d, esi
xor ecx, eax
add dword [rsp + 0x24], 1
mov edx, dword [rsp + 0x24]
mov ebp, r13d
mov dword [rsp + 0x7c], r8d
mov r8d, ebx
cmp edx, 1
mov edx, esi
adc dword [rsp + 0x38], 0
shr r12d, 8
shr edx, 0x10
mov dword [rsp + 0x30], ecx
movzx r12d, r12b
mov ecx, ebx
shr ecx, 8
mov eax, edx
mov edx, esi
shr r8d, 0x10
shr edx, 0x18
movzx eax, al
mov dword [rsp + 0x34], r14d
mov r14d, r10d
movzx edx, dl
mov dword [rsp], ecx
shr r14d, 0x18
mov ecx, ebx
shl rdx, 8
movzx esi, sil
shr ecx, 0x18
mov dword [rsp + 0x2c], r9d
or rdx, rax
shr ebp, 0x18
movzx eax, r14b
mov r9d, r13d
shl rdx, 8
movzx ebp, bpl
shl rax, 8
mov r14d, edi
shr r11d, 0x10
or rdx, r12
shr r9d, 8
movzx ebx, bl
mov dword [rsp + 0x88], r8d
shl rdx, 8
mov r8d, r10d
movzx r11d, r11b
or rdx, rsi
shr r8d, 0x10
mov dword [rsp + 0x8c], ecx
mov ecx, r10d
shl rdx, 8
movzx r8d, r8b
shr ecx, 8
movzx r9d, r9b
or rdx, rbp
or rax, r8
movzx ecx, cl
movzx r10d, r10b
shl rdx, 8
shl rax, 8
mov ebp, edi
or rdx, r11
or rax, rcx
movzx ecx, byte [rsp + 0x8c]
shl rdx, 8
shl rax, 8
or rdx, r9
or rax, r10
movzx r9d, r13b
shl rdx, 8
shl rax, 8
shr r14d, 0x10
or rax, rcx
mov rsi, rdx
mov edx, edi
shl rax, 8
or rsi, r9
shr edx, 0x18
mov r12d, r14d
movzx edx, dl
movzx r12d, r12b
shr ebp, 8
mov r14d, r15d
shl rdx, 8
movzx ebp, bpl
movzx edi, dil
shr r14d, 8
movzx ecx, byte [rsp + 0x88]
or rdx, r12
shl rdx, 8
or rax, rcx
movzx ecx, byte [rsp]
mov qword [rsp], rsi
or rdx, rbp
shl rax, 8
shl rdx, 8
or rax, rcx
or rdx, rdi
shl rax, 8
shl rdx, 8
mov rsi, rax
or rsi, rbx
mov rbx, qword [rsp + 0x140]
mov qword [rsp + 8], rsi
movdqa xmm1, xmmword [rsp]
movups xmmword [rbx], xmm1
mov eax, dword [rsp + 0x10]
mov r10d, dword [rsp + 0x20]
mov esi, eax
mov r9d, r10d
mov ebx, eax
mov r11d, eax
shr r9d, 0x18
shr esi, 0x18
mov r13d, r10d
mov ecx, r10d
shr ebx, 0x10
mov r8d, r9d
movzx esi, sil
mov r9d, r14d
mov r14d, r15d
or rdx, rsi
movzx ebx, bl
shr r11d, 8
shr r14d, 0x10
shl rdx, 8
movzx r11d, r11b
movzx r9d, r9b
mov r10d, r14d
mov r14d, r15d
or rdx, rbx
shr r13d, 8
shr r14d, 0x18
shl rdx, 8
movzx r10d, r10b
movzx r8d, r8b
movzx eax, r14b
shr ecx, 0x10
or rdx, r11
movzx r13d, r13b
shl rax, 8
movzx ecx, cl
shl rdx, 8
mov r14d, dword [rsp + 0x78]
or rax, r10
movzx r11d, byte [rsp + 0x10]
mov rbx, rdx
shl rax, 8
or rax, r9
movzx r9d, r15b
mov r15d, dword [rsp + 0x7c]
or rbx, r11
shl rax, 8
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0x140]
or rax, r9
mov r9d, r14d
mov r11d, r15d
mov r10d, r15d
shl rax, 8
shr r9d, 0x10
shr r11d, 0x10
or rax, r8
mov r8d, r9d
mov r9d, r14d
shl rax, 8
shr r9d, 0x18
movzx r11d, r11b
movzx r8d, r8b
or rax, rcx
movzx ecx, byte [rsp + 0x20]
shr r10d, 8
movzx r9d, r9b
shl rax, 8
movzx r10d, r10b
or rax, r13
mov r13d, dword [rsp + 0x74]
shl rax, 8
mov rsi, rax
mov eax, dword [rsp + 0x2c]
mov edi, r13d
or rsi, rcx
mov ecx, r14d
shr edi, 0x18
mov edx, eax
mov r12d, eax
mov qword [rsp + 0x18], rsi
mov ebp, eax
shr edx, 0x18
shr r12d, 0x10
movdqa xmm2, xmmword [rsp + 0x10]
mov eax, r15d
movzx edx, dl
movzx r12d, r12b
shr ebp, 8
mov esi, r13d
shl rdx, 8
shr eax, 0x18
movups xmmword [rbx + 0x10], xmm2
movzx ebp, bpl
or rdx, r12
mov ebx, r13d
movzx eax, al
shr esi, 0x10
shl rdx, 8
shr ebx, 8
movzx edi, dil
movzx esi, sil
shr ecx, 8
or rdx, rbp
shl rax, 8
movzx ebp, byte [rsp + 0x2c]
or rax, r11
shl rdx, 8
movzx ebx, bl
movzx ecx, cl
shl rax, 8
or rdx, rbp
or rax, r10
movzx r10d, r15b
shl rdx, 8
mov r15d, dword [rsp + 0x80]
shl rax, 8
or rdx, rdi
or rax, r10
shl rdx, 8
mov edi, r15d
shl rax, 8
or rdx, rsi
shr edi, 0x18
or rax, r9
shl rdx, 8
movzx edi, dil
shl rax, 8
or rdx, rbx
movzx ebx, r13b
mov r13d, dword [rsp + 0x84]
or rax, r8
shl rdx, 8
shl rax, 8
mov rsi, rdx
mov ebp, r13d
mov r12d, r13d
or rax, rcx
or rsi, rbx
movzx ecx, r14b
mov edx, r13d
shl rax, 8
mov qword [rsp + 0x10], rsi
mov rsi, qword [rsp + 0x140]
shr ebp, 8
shr r12d, 0x10
mov rbx, rax
mov eax, dword [rsp + 0x30]
shr edx, 0x18
or rbx, rcx
movzx edx, dl
movzx r12d, r12b
movzx ebp, bpl
mov qword [rsp + 0x18], rbx
mov ecx, eax
movdqa xmm3, xmmword [rsp + 0x10]
mov r8d, eax
mov r9d, eax
mov eax, dword [rsp + 0x34]
mov ebx, r15d
shr ecx, 8
movups xmmword [rsi + 0x20], xmm3
mov esi, r15d
shr ebx, 8
movzx ecx, cl
mov r14d, eax
shr esi, 0x10
movzx ebx, bl
shr r8d, 0x10
shr r14d, 8
movzx esi, sil
shl rdx, 8
mov r10d, r14d
mov r14d, eax
shr r9d, 0x18
shr r14d, 0x10
or rdx, r12
movzx r10d, r10b
movzx r9d, r9b
mov r11d, r14d
mov r14d, eax
shl rdx, 8
movzx r8d, r8b
shr r14d, 0x18
movzx r11d, r11b
or rdx, rbp
movzx ebp, r13b
movzx eax, r14b
shl rdx, 8
shl rax, 8
or rdx, rbp
or rax, r11
shl rdx, 8
shl rax, 8
or rdx, rdi
or rax, r10
movzx r10d, byte [rsp + 0x34]
shl rdx, 8
shl rax, 8
or rdx, rsi
or rax, r10
shl rdx, 8
shl rax, 8
or rdx, rbx
movzx ebx, r15b
or rax, r9
shl rdx, 8
shl rax, 8
or rdx, rbx
or rax, r8
mov qword [rsp + 0x10], rdx
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x30]
shl rax, 8
or rax, rcx
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0x140]
movdqa xmm4, xmmword [rsp + 0x10]
movups xmmword [rax + 0x30], xmm4
cmp dword [rsp + 0x148], 0x40
jbe 0x2b3684de0
sub dword [rsp + 0x148], 0x40
add qword [rsp + 0x140], 0x40
add qword [rsp + 0x138], 0x40
cmp dword [rsp + 0x148], 0x3f
ja 0x2b36844c0
mov edx, dword [rsp + 0x148]
test edx, edx
je 0x2b3684ffa
mov rsi, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x90]
mov eax, dword [rsp + 0x148]
lea rcx, [rsi + 1]
sub rdx, rcx
sub eax, 1
cmp rdx, 0xe
jbe 0x2b3684ec0
cmp eax, 6
jbe 0x2b3684ec0
cmp eax, 0xe
jbe 0x2b3685027
mov eax, dword [rsp + 0x148]
movdqu xmm5, xmmword [rsi]
shr eax, 4
movaps xmmword [rsp], xmm5
movaps xmmword [rsp + 0xa0], xmm5
cmp eax, 1
je 0x2b3684cae
movdqu xmm5, xmmword [rsi + 0x10]
movaps xmmword [rsp], xmm5
movaps xmmword [rsp + 0xb0], xmm5
cmp eax, 3
jne 0x2b3684cae
movdqu xmm5, xmmword [rsi + 0x20]
movaps xmmword [rsp], xmm5
movaps xmmword [rsp + 0xc0], xmm5
mov edx, dword [rsp + 0x148]
and edx, 0xfffffff0
mov eax, edx
cmp dword [rsp + 0x148], edx
je 0x2b3684db2
mov ecx, dword [rsp + 0x148]
sub ecx, edx
lea r8d, [rcx - 1]
cmp r8d, 6
jbe 0x2b3684cfd
mov rbx, qword [rsp + 0x138]
mov r8, qword [rbx + rdx]
mov qword [rsp + rdx + 0xa0], r8
mov edx, ecx
and edx, 0xfffffff8
add eax, edx
cmp ecx, edx
je 0x2b3684db2
mov rbx, qword [rsp + 0x138]
movsxd rdx, eax
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
lea edx, [rax + 1]
cmp dword [rsp + 0x148], edx
jbe 0x2b3684db2
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
lea edx, [rax + 2]
cmp dword [rsp + 0x148], edx
jbe 0x2b3684db2
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
lea edx, [rax + 3]
cmp dword [rsp + 0x148], edx
jbe 0x2b3684db2
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
lea edx, [rax + 4]
cmp dword [rsp + 0x148], edx
jbe 0x2b3684db2
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
lea edx, [rax + 5]
cmp dword [rsp + 0x148], edx
jbe 0x2b3684db2
movsxd rdx, edx
add eax, 6
movzx ecx, byte [rbx + rdx]
mov byte [rsp + rdx + 0xa0], cl
cmp dword [rsp + 0x148], eax
jbe 0x2b3684db2
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsp + rax + 0xa0], dl
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x138], rax
jmp 0x2b36844c0
movd xmm0, dword [rsp + 0x24]
movd xmm5, dword [rsp + 0x38]
punpckldq xmm0, xmm5
test dword [rsp + 0x148], 0xffffffbf
je 0x2b3684e99
mov rsi, qword [rsp + 0x98]
lea rdx, [rax + 1]
mov rax, rsi
sub rax, rdx
cmp rax, 0xe
jbe 0x2b3685037
cmp dword [rsp + 0x148], 7
jbe 0x2b3685037
mov eax, dword [rsp + 0x148]
mov edx, 1
test eax, eax
cmovne edx, dword [rsp + 0x148]
cmp dword [rsp + 0x148], 0xf
jbe 0x2b368506e
mov eax, edx
movups xmmword [rsi], xmm1
shr eax, 4
cmp eax, 1
je 0x2b3684ef7
mov rbx, qword [rsp + 0x140]
movdqu xmm5, xmmword [rbx + 0x10]
movaps xmmword [rsp], xmm5
movups xmmword [rsi + 0x10], xmm5
cmp eax, 2
je 0x2b3684ef7
movdqu xmm5, xmmword [rbx + 0x20]
movaps xmmword [rsp], xmm5
movups xmmword [rsi + 0x20], xmm5
cmp eax, 4
jne 0x2b3684ef7
movdqu xmm5, xmmword [rbx + 0x30]
movaps xmmword [rsp], xmm5
movups xmmword [rsi + 0x30], xmm5
mov rax, qword [rsp + 0x130]
movq qword [rax + 0x30], xmm0
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rsp + 0x148]
mov r8, qword [rsp + 0x138]
xor eax, eax
mov r9, qword [rsp + 0x90]
nop dword [rax]
movzx ecx, byte [r8 + rax]
mov byte [r9 + rax], cl
add rax, 1
cmp rax, rdx
jne 0x2b3684ee0
jmp 0x2b3684db2
mov eax, edx
and eax, 0xfffffff0
mov dword [rsp + 0x28], eax
mov ecx, eax
cmp edx, eax
je 0x2b3684e99
mov ebx, dword [rsp + 0x28]
sub edx, ebx
lea eax, [rdx - 1]
cmp eax, 6
jbe 0x2b3684f3d
mov eax, ebx
mov rbx, qword [rsp + 0x140]
mov r8, qword [rbx + rax]
mov rbx, qword [rsp + 0x98]
mov qword [rbx + rax], r8
mov eax, edx
and eax, 0xfffffff8
add ecx, eax
cmp edx, eax
je 0x2b3684e99
mov rsi, qword [rsp + 0x140]
movsxd rax, ecx
movzx edx, byte [rsi + rax]
mov rsi, qword [rsp + 0x98]
mov byte [rsi + rax], dl
lea eax, [rcx + 1]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
mov rbx, qword [rsp + 0x140]
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
lea eax, [rcx + 2]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
lea eax, [rcx + 3]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
lea eax, [rcx + 4]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
lea eax, [rcx + 5]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
lea eax, [rcx + 6]
cmp dword [rsp + 0x148], eax
jbe 0x2b3684e99
cdqe
movzx edx, byte [rbx + rax]
mov byte [rsi + rax], dl
jmp 0x2b3684e99
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x138], rax
jmp 0x2b36844c0
mov ecx, dword [rsp + 0x148]
xor eax, eax
xor edx, edx
jmp 0x2b3684cda
mov rcx, qword [rsp + 0x98]
mov r8, qword [rsp + 0x140]
xor eax, eax
mov r9d, dword [rsp + 0x148]
nop dword [rax]
movzx edx, byte [r8 + rax]
mov byte [rcx + rax], dl
add rax, 1
cmp r9d, eax
ja 0x2b3685058
jmp 0x2b3684e99
xor ecx, ecx
jmp 0x2b3684f06
test r9d, r9d
je 0x2b36851c0
jmp 0x2b36843f0
ret