Function at 0x140160830
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, 0x918
pxor xmm0, xmm0
mov ebx, dword [rcx]
movzx edi, bl
mov qword [rsp + 0x960], rcx
mov dword [rsp + 0xd0], 0
mov qword [rsp + 0x1c0], 0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0x180], xmm0
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
cmp bl, 0x10
ja 0x140161231
lea rax, [rsp + 0x88]
mov qword [rsp + 0x30], r8
lea rsi, [rsp + 0x1d0]
mov qword [rsp + 0x28], rdx
mov rcx, rsi
lea r9, [rsp + 0x8c]
lea r8, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov edx, 0x100
call fcn.1401615b0
mov rbp, rax
cmp rax, 0xffffffffffffff88
ja 0x14016121a
mov r8d, dword [rsp + 0x88]
cmp edi, r8d
jb 0x140161231
mov eax, r8d
lea r13d, [r8 + 1]
mov r10d, dword [rsp + rax*4 + 0x90]
test r10d, r10d
jne 0x14016153e
lea eax, [r8 - 1]
mov r9d, dword [rsp + rax*4 + 0x90]
mov rdx, rax
test r9d, r9d
jne 0x140161583
lea ecx, [r8 - 2]
mov rax, rcx
mov ecx, dword [rsp + rcx*4 + 0x90]
test ecx, ecx
jne 0x14016152a
lea edx, [r8 - 3]
mov r15d, dword [rsp + rdx*4 + 0x90]
mov rcx, rdx
test r15d, r15d
jne 0x14016157c
lea eax, [r8 - 4]
mov r14d, dword [rsp + rax*4 + 0x90]
mov rdx, rax
test r14d, r14d
jne 0x140161537
lea ecx, [r8 - 5]
mov r12d, dword [rsp + rcx*4 + 0x90]
mov rax, rcx
test r12d, r12d
jne 0x14016152a
lea ecx, [r8 - 6]
mov r11d, dword [rsp + rcx*4 + 0x90]
mov rdx, rcx
test r11d, r11d
jne 0x140160a9c
lea ecx, [r8 - 7]
mov r10d, dword [rsp + rcx*4 + 0x90]
mov rax, rcx
test r10d, r10d
jne 0x14016152a
lea ecx, [r8 - 8]
mov r9d, dword [rsp + rcx*4 + 0x90]
mov rdx, rcx
test r9d, r9d
jne 0x140160a9c
lea ecx, [r8 - 9]
mov rax, rcx
mov ecx, dword [rsp + rcx*4 + 0x90]
test ecx, ecx
jne 0x14016152a
lea ecx, [r8 - 0xa]
mov r15d, dword [rsp + rcx*4 + 0x90]
mov rdx, rcx
test r15d, r15d
jne 0x140160a9c
lea ecx, [r8 - 0xb]
mov r14d, dword [rsp + rcx*4 + 0x90]
mov rax, rcx
test r14d, r14d
jne 0x14016152a
lea ecx, [r8 - 0xc]
mov r12d, dword [rsp + rcx*4 + 0x90]
mov rdx, rcx
test r12d, r12d
jne 0x140160a9c
lea ecx, [r8 - 0xd]
mov r11d, dword [rsp + rcx*4 + 0x90]
mov rax, rcx
test r11d, r11d
jne 0x14016152a
lea ecx, [r8 - 0xe]
mov r10d, dword [rsp + rcx*4 + 0x90]
mov rdx, rcx
test r10d, r10d
jne 0x140160a9c
lea eax, [r8 - 0xf]
mov r9d, dword [rsp + rax*4 + 0x90]
mov rcx, rax
test r9d, r9d
jne 0x14016157a
lea edx, [r8 - 0x10]
mov rax, rdx
mov edx, dword [rsp + rdx*4 + 0x90]
test edx, edx
jne 0x140161535
lea edx, [r8 - 0x11]
mov ecx, r13d
sub ecx, edx
mov dword [rsp + 0x48], ecx
mov ecx, edi
sub ecx, r8d
lea r9d, [rcx + rdx]
cmp eax, 1
jbe 0x140161551
mov r11d, dword [rsp + 0x94]
mov dword [rsp + 0x44], r11d
cmp eax, 2
je 0x140160c51
mov edx, dword [rsp + 0x98]
mov dword [rsp + 0x18c], r11d
add edx, r11d
cmp eax, 3
je 0x140161521
mov ecx, dword [rsp + 0x9c]
mov dword [rsp + 0x190], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 4
je 0x140160c51
mov edx, dword [rsp + 0xa0]
mov dword [rsp + 0x194], ecx
add edx, ecx
cmp eax, 5
je 0x140161521
mov ecx, dword [rsp + 0xa4]
mov dword [rsp + 0x198], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 6
je 0x140160c51
mov edx, dword [rsp + 0xa8]
mov dword [rsp + 0x19c], ecx
add edx, ecx
cmp eax, 7
je 0x140161521
mov ecx, dword [rsp + 0xac]
mov dword [rsp + 0x1a0], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 8
je 0x140160c51
mov edx, dword [rsp + 0xb0]
mov dword [rsp + 0x1a4], ecx
add edx, ecx
cmp eax, 9
je 0x140161521
mov ecx, dword [rsp + 0xb4]
mov dword [rsp + 0x1a8], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 0xa
je 0x140160c51
mov edx, dword [rsp + 0xb8]
mov dword [rsp + 0x1ac], ecx
add edx, ecx
cmp eax, 0xb
je 0x140161521
mov ecx, dword [rsp + 0xbc]
mov dword [rsp + 0x1b0], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 0xc
je 0x140160c51
mov edx, dword [rsp + 0xc0]
mov dword [rsp + 0x1b4], ecx
add edx, ecx
cmp eax, 0xd
je 0x140161521
mov ecx, dword [rsp + 0xc4]
mov dword [rsp + 0x1b8], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
cmp eax, 0xe
je 0x140160c51
mov edx, ecx
add ecx, dword [rsp + 0xc8]
mov dword [rsp + 0x1bc], edx
cmp eax, 0xf
je 0x1401615a0
mov edx, dword [rsp + 0xcc]
mov dword [rsp + 0x1c0], ecx
add edx, ecx
cmp eax, 0x10
je 0x140161521
mov ecx, dword [rsp + 0xd0]
mov dword [rsp + 0x1c4], edx
add ecx, edx
mov dword [rsp + 0x44], ecx
mov edx, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x8c]
mov dword [rsp + 0x184], edx
test r10d, r10d
je 0x14016158b
mov dword [rsp + 0x4c], r8d
xor edx, edx
mov r14d, eax
lea r11, [rsp + 0x184]
mov dword [rsp + 0x50], ebx
lea r15, [rsp + 0x2d0]
nop dword [rax + rax]
movzx ecx, byte [rsi + rdx]
movzx ebx, dl
add rdx, 1
lea r8, [r11 + rcx*4]
mov rax, rcx
mov ecx, dword [r8]
mov bh, al
lea r12d, [rcx + 1]
mov dword [r8], r12d
mov word [r15 + rcx*2], bx
cmp rdx, r10
jne 0x140160c90
mov r8d, dword [rsp + 0x4c]
mov edx, edi
mov ebx, dword [rsp + 0x50]
mov eax, r14d
mov dword [rsp + 0x184], 0
mov r11d, dword [rsp + 0x94]
sub edx, r8d
cmp r14d, 1
jbe 0x140160fa7
mov dword [rsp + 0x4d4], 0
mov ecx, edx
shl r11d, cl
cmp eax, 2
je 0x140161511
mov r8d, dword [rsp + 0x98]
lea ecx, [rdx + 1]
mov dword [rsp + 0x4d8], r11d
shl r8d, cl
add r8d, r11d
cmp eax, 3
je 0x140161511
mov r10d, dword [rsp + 0x9c]
lea ecx, [rdx + 2]
mov dword [rsp + 0x4dc], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 4
je 0x140161511
mov r8d, dword [rsp + 0xa0]
lea ecx, [rdx + 3]
mov dword [rsp + 0x4e0], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 5
je 0x140161511
mov r10d, dword [rsp + 0xa4]
lea ecx, [rdx + 4]
mov dword [rsp + 0x4e4], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 6
je 0x140161511
mov r8d, dword [rsp + 0xa8]
lea ecx, [rdx + 5]
mov dword [rsp + 0x4e8], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 7
je 0x140161511
mov r10d, dword [rsp + 0xac]
lea ecx, [rdx + 6]
mov dword [rsp + 0x4ec], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 8
je 0x140161511
mov r8d, dword [rsp + 0xb0]
lea ecx, [rdx + 7]
mov dword [rsp + 0x4f0], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 9
je 0x140161511
mov r10d, dword [rsp + 0xb4]
lea ecx, [rdx + 8]
mov dword [rsp + 0x4f4], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 0xa
je 0x140161511
mov r8d, dword [rsp + 0xb8]
lea ecx, [rdx + 9]
mov dword [rsp + 0x4f8], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xb
je 0x140161511
mov r10d, dword [rsp + 0xbc]
lea ecx, [rdx + 0xa]
mov dword [rsp + 0x4fc], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 0xc
je 0x140161511
mov r8d, dword [rsp + 0xc0]
lea ecx, [rdx + 0xb]
mov dword [rsp + 0x500], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xd
je 0x140161511
mov r10d, dword [rsp + 0xc4]
lea ecx, [rdx + 0xc]
mov dword [rsp + 0x504], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 0xe
je 0x140161511
mov r8d, dword [rsp + 0xc8]
lea ecx, [rdx + 0xd]
mov dword [rsp + 0x508], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xf
je 0x140161511
add edx, 0xe
mov esi, dword [rsp + 0xcc]
mov dword [rsp + 0x50c], r8d
mov ecx, edx
shl esi, cl
mov edx, esi
add edx, r8d
cmp eax, 0x10
je 0x140161511
mov dword [rsp + 0x510], edx
cmp dword [rsp + 0x48], r9d
jae 0x140160fa7
mov ecx, dword [rsp + 0x48]
lea esi, [rax - 1]
lea r14d, [rax - 2]
lea r11, [rsp + 0x4d0]
mov dword [rsp + 0x78], r14d
mov r10d, esi
mov rdx, rcx
shr r10d, 2
shl rdx, 4
add rdx, rcx
mov ecx, esi
and esi, 3
and ecx, 0xfffffffc
lea rdx, [r11 + rdx*4]
lea r8d, [rcx + 1]
lea r14, [r8*4]
lea r8d, [rcx + 2]
add ecx, 3
mov qword [rsp + 0x50], r14
lea r12, [r11 + r14]
lea r14, [r8*4]
mov dword [rsp + 0x60], r8d
lea r15, [r11 + r14]
mov r8, 0xfffffffffffffffc
mov qword [rsp + 0x58], r14
lea r14, [rcx*4]
sub r8, r11
mov dword [rsp + 0x64], ecx
mov ecx, dword [rsp + 0x48]
mov qword [rsp + 0x68], r14
add r14, r11
cmp dword [rsp + 0x78], 2
ja 0x14016124a
mov r11d, dword [rsp + 0x4d4]
shr r11d, cl
mov dword [rdx + 4], r11d
cmp eax, 2
jne 0x1401614e4
add ecx, 1
add rdx, 0x44
cmp ecx, r9d
jne 0x140160f83
movdqa xmm2, xmmword [rsp + 0x4d0]
mov eax, r13d
movdqa xmm3, xmmword [rsp + 0x4e0]
movdqa xmm4, xmmword [rsp + 0x4f0]
sub eax, edi
movdqa xmm5, xmmword [rsp + 0x500]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x510]
movaps xmmword [rsp + 0xe0], xmm2
mov dword [rsp + 0x120], eax
mov eax, dword [rsp + 0x44]
movaps xmmword [rsp + 0xf0], xmm3
movaps xmmword [rsp + 0x100], xmm4
movaps xmmword [rsp + 0x110], xmm5
test eax, eax
je 0x140161202
mov eax, edi
lea r15, [rsp + 0x2d0]
mov dword [rsp + 0x78], ebx
sub eax, r13d
mov qword [rsp + 0x70], rbp
mov r10, r15
mov r8, r15
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x7c], edi
lea rax, [r15 + rax*2]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x960]
add rax, 4
mov qword [rsp + 0x68], rax
movzx eax, byte [r10 + 1]
mov esi, dword [rsp + 0x4c]
mov r11d, 1
mov r12d, r13d
movzx r15d, byte [r10]
lea ecx, [rax + rsi]
mov r9d, dword [rsp + rax*4 + 0xe0]
mov esi, dword [rsp + 0x48]
sub r12d, eax
shl r11d, cl
lea edx, [r9 + r11]
cmp ecx, esi
jb 0x1401613f0
mov esi, dword [rsp + 0x64]
mov rbx, qword [rsp + 0x960]
mov r14d, r12d
mov r11d, dword [rsp + 0x44]
lea ebp, [rsi + r12]
lea rbx, [rbx + r9*4 + 4]
mov esi, 1
mov r9, r14
test ebp, ebp
cmovg esi, ebp
shl r9, 4
add r9, r14
shl r9, 2
movsxd rsi, esi
lea r14, [rsp + r9 + 0x4d0]
mov edi, dword [rsp + rsi*4 + 0x180]
movdqu xmm2, xmmword [rsp + r9 + 0x4d0]
movdqu xmm3, xmmword [r14 + 0x10]
movdqu xmm4, xmmword [r14 + 0x20]
movdqu xmm5, xmmword [r14 + 0x30]
mov r9d, dword [r14 + 0x40]
sub r11d, edi
movaps xmmword [rsp + 0x130], xmm2
movaps xmmword [rsp + 0x140], xmm3
mov dword [rsp + 0x170], r9d
movaps xmmword [rsp + 0x150], xmm4
movaps xmmword [rsp + 0x160], xmm5
cmp ebp, 1
jle 0x14016114e
mov ebp, dword [rsp + rsi*4 + 0x130]
mov esi, r12d
test ebp, ebp
je 0x14016114e
mov r9, rbx
lea rbp, [rbx + rbp*4]
nop dword [rax + rax]
mov word [r9], r15w
add r9, 4
mov byte [r9 - 2], sil
mov byte [r9 - 1], 1
cmp r9, rbp
jne 0x140161138
test r11d, r11d
je 0x1401611dc
mov dword [rsp + 0x60], edx
sub ecx, r13d
add r11, rdi
lea rsi, [r8 + rdi*2]
mov qword [rsp + 0x58], r10
mov ebp, ecx
lea r14, [r8 + r11*2]
movzx r11d, byte [rsi + 1]
movzx r9d, byte [rsi]
mov r10d, 1
lea ecx, [r11 + rbp]
mov edx, dword [rsp + r11*4 + 0x130]
shl r9d, 8
shl r10d, cl
mov ecx, r13d
add r9d, r15d
sub ecx, r11d
add r10d, edx
lea edi, [r12 + rcx]
nop word [rax + rax]
mov ecx, edx
add edx, 1
lea rcx, [rbx + rcx*4]
mov word [rcx], r9w
mov byte [rcx + 2], dil
mov byte [rcx + 3], 2
cmp edx, r10d
jb 0x1401611a8
add rsi, 2
mov dword [rsp + r11*4 + 0x130], r10d
cmp r14, rsi
jne 0x140161170
mov edx, dword [rsp + 0x60]
mov r10, qword [rsp + 0x58]
mov dword [rsp + rax*4 + 0xe0], edx
mov rax, qword [rsp + 0x50]
add r10, 2
cmp r10, rax
jne 0x140161050
mov ebx, dword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov edi, dword [rsp + 0x7c]
mov eax, ebx
shl edi, 0x10
mov rsi, qword [rsp + 0x960]
and eax, 0xff00ffff
or eax, edi
mov ah, 1
mov dword [rsi], eax
mov rax, rbp
add rsp, 0x918
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbp, 0xffffffffffffffd4
jmp 0x14016121a
add ecx, 1
add rdx, 0x44
cmp ecx, r9d
je 0x140160fa7
mov dword [rsp + 0x4c], ebx
lea r11, [r8 + rdx]
cmp r11, 8
ja 0x140161433
mov r11d, dword [rsp + 0x4d4]
mov ebx, dword [rsp + 0x4c]
shr r11d, cl
mov dword [rdx + 4], r11d
mov r11d, dword [rsp + 0x4d8]
shr r11d, cl
mov dword [rdx + 8], r11d
mov r11d, dword [rsp + 0x4dc]
shr r11d, cl
mov dword [rdx + 0xc], r11d
cmp eax, 4
je 0x1401614fc
mov r11d, dword [rsp + 0x4e0]
shr r11d, cl
mov dword [rdx + 0x10], r11d
cmp eax, 5
je 0x14016123a
mov r11d, dword [rsp + 0x4e4]
shr r11d, cl
mov dword [rdx + 0x14], r11d
cmp eax, 6
je 0x14016123a
mov r11d, dword [rsp + 0x4e8]
shr r11d, cl
mov dword [rdx + 0x18], r11d
cmp eax, 7
je 0x14016123a
mov r11d, dword [rsp + 0x4ec]
shr r11d, cl
mov dword [rdx + 0x1c], r11d
cmp eax, 8
je 0x14016123a
mov r11d, dword [rsp + 0x4f0]
shr r11d, cl
mov dword [rdx + 0x20], r11d
cmp eax, 9
je 0x14016123a
mov r11d, dword [rsp + 0x4f4]
shr r11d, cl
mov dword [rdx + 0x24], r11d
cmp eax, 0xa
je 0x1401613d1
mov r11d, dword [rsp + 0x4f8]
shr r11d, cl
mov dword [rdx + 0x28], r11d
cmp eax, 0xb
je 0x1401613d1
mov r11d, dword [rsp + 0x4fc]
shr r11d, cl
mov dword [rdx + 0x2c], r11d
cmp eax, 0xc
je 0x14016123a
mov r11d, dword [rsp + 0x500]
shr r11d, cl
mov dword [rdx + 0x30], r11d
cmp eax, 0xd
je 0x1401613d1
mov r11d, dword [rsp + 0x504]
shr r11d, cl
mov dword [rdx + 0x34], r11d
cmp eax, 0xe
je 0x1401613d1
mov r11d, dword [rsp + 0x508]
shr r11d, cl
mov dword [rdx + 0x38], r11d
cmp eax, 0xf
je 0x14016123a
mov r11d, dword [rsp + 0x50c]
shr r11d, cl
mov dword [rdx + 0x3c], r11d
cmp eax, 0x10
je 0x14016123a
mov r11d, dword [rsp + 0x510]
shr r11d, cl
mov dword [rdx + 0x40], r11d
cmp eax, 0x11
je 0x14016123a
mov r11d, dword [rsp + 0x514]
shr r11d, cl
mov dword [rdx + 0x44], r11d
add ecx, 1
add rdx, 0x44
cmp r9d, ecx
jne 0x14016124a
jmp 0x140160fa7
cmp r9d, edx
jae 0x1401611dc
mov rsi, qword [rsp + 0x960]
sub r11d, 1
add r11, r9
lea rcx, [rsi + r9*4]
mov rsi, qword [rsp + 0x68]
lea r9, [rsi + r11*4]
nop dword [rax]
mov word [rcx + 4], r15w
add rcx, 4
mov byte [rcx + 2], r12b
mov byte [rcx + 3], 1
cmp r9, rcx
jne 0x140161418
jmp 0x1401611dc
movdqu xmm0, xmmword [rsp + 0x4d4]
movd xmm1, ecx
psrld xmm0, xmm1
movups xmmword [rdx + 4], xmm0
cmp r10d, 1
je 0x14016148d
movdqu xmm0, xmmword [rsp + 0x4e4]
psrld xmm0, xmm1
movups xmmword [rdx + 0x14], xmm0
cmp r10d, 2
je 0x14016148d
movdqu xmm0, xmmword [rsp + 0x4f4]
psrld xmm0, xmm1
movups xmmword [rdx + 0x24], xmm0
cmp r10d, 3
je 0x14016148d
movdqu xmm0, xmmword [rsp + 0x504]
psrld xmm0, xmm1
movups xmmword [rdx + 0x34], xmm0
test esi, esi
je 0x1401614cb
mov r11d, dword [r12]
mov rbx, qword [rsp + 0x50]
shr r11d, cl
mov dword [rdx + rbx], r11d
cmp dword [rsp + 0x60], eax
jae 0x1401614cb
mov r11d, dword [r15]
mov rbx, qword [rsp + 0x58]
shr r11d, cl
mov dword [rdx + rbx], r11d
cmp dword [rsp + 0x64], eax
jae 0x1401614cb
mov r11d, dword [r14]
mov rbx, qword [rsp + 0x68]
shr r11d, cl
mov dword [rdx + rbx], r11d
add ecx, 1
add rdx, 0x44
cmp ecx, r9d
jne 0x14016124e
mov ebx, dword [rsp + 0x4c]
jmp 0x140160fa7
mov r11d, dword [rsp + 0x4d8]
shr r11d, cl
mov dword [rdx + 8], r11d
cmp eax, 4
je 0x14016127e
add ecx, 1
add rdx, 0x44
cmp ecx, r9d
jne 0x140160f78
jmp 0x140160fa7
cmp dword [rsp + 0x48], r9d
jb 0x140160eef
jmp 0x140160fa7
mov dword [rsp + 0x44], edx
jmp 0x140160c51
mov ecx, edx
mov edx, eax
mov eax, ecx
jmp 0x140160a9c
mov edx, eax
mov eax, ecx
jmp 0x140160a9c
mov dword [rsp + 0x48], 1
mov eax, r13d
mov r9d, edi
jmp 0x140160aae
mov r10d, dword [rsp + 0x8c]
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x184], 0
test r10d, r10d
jne 0x140160c6d
jmp 0x140160fa7
mov eax, edx
mov edx, ecx
jmp 0x140160a9c
mov eax, r8d
jmp 0x140160a9c
mov dword [rsp + 0x184], 0
mov edx, edi
sub edx, r8d
jmp 0x140160ce6
mov dword [rsp + 0x44], ecx
jmp 0x140160c51