Function at 0x140157860
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, 0x908
pxor xmm0, xmm0
mov ebx, dword [rcx]
mov qword [rsp + 0x950], rcx
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0x1b0], 0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x180], xmm0
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
cmp ebx, 0x10
ja 0x140158151
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x80]
lea rsi, [rsp + 0x1c0]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x7c]
mov rdx, rax
mov rcx, rsi
call fcn.140158540
mov rbp, rax
cmp rax, 0xffffffffffffff88
ja 0x14015813a
mov r10d, dword [rsp + 0x78]
cmp ebx, r10d
jb 0x140158151
mov eax, r10d
lea r13d, [r10 + 1]
mov r14d, dword [rsp + rax*4 + 0x80]
test r14d, r14d
jne 0x1401584d8
lea edx, [r10 - 1]
mov r12d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r12d, r12d
jne 0x140157a9f
lea edx, [r10 - 2]
mov edi, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test edi, edi
jne 0x140157a9f
lea edx, [r10 - 3]
mov r11d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r11d, r11d
jne 0x140157a9f
lea edx, [r10 - 4]
mov r9d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r9d, r9d
jne 0x140157a9f
lea edx, [r10 - 5]
mov r8d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r8d, r8d
jne 0x140157a9f
lea edx, [r10 - 6]
mov ecx, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test ecx, ecx
jne 0x140157a9f
lea edx, [r10 - 7]
mov rax, rdx
mov edx, dword [rsp + rdx*4 + 0x80]
test edx, edx
jne 0x140157a9f
lea edx, [r10 - 8]
mov r15d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r15d, r15d
jne 0x140157a9f
lea edx, [r10 - 9]
mov r14d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r14d, r14d
jne 0x140157a9f
lea edx, [r10 - 0xa]
mov r12d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r12d, r12d
jne 0x140157a9f
lea edx, [r10 - 0xb]
mov edi, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test edi, edi
jne 0x140157a9f
lea edx, [r10 - 0xc]
mov r11d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r11d, r11d
jne 0x140157a9f
lea edx, [r10 - 0xd]
mov r9d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r9d, r9d
jne 0x140157a9f
lea edx, [r10 - 0xe]
mov r8d, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test r8d, r8d
jne 0x140157a9f
lea edx, [r10 - 0xf]
mov ecx, dword [rsp + rdx*4 + 0x80]
mov rax, rdx
test ecx, ecx
jne 0x140157a9f
lea edx, [r10 - 0x10]
mov rax, rdx
mov edx, dword [rsp + rdx*4 + 0x80]
test edx, edx
jne 0x140157a9f
lea eax, [r10 - 0x11]
mov edi, r13d
mov r9d, eax
sub edi, eax
sub r9d, r13d
mov dword [rsp + 0x40], edi
test eax, eax
je 0x140158503
mov r8d, dword [rsp + 0x84]
mov dword [rsp + 0x3c], r8d
cmp eax, 1
je 0x140157c50
mov edx, dword [rsp + 0x88]
mov dword [rsp + 0x17c], r8d
add edx, r8d
cmp eax, 2
je 0x1401584cf
mov edi, dword [rsp + 0x8c]
mov dword [rsp + 0x180], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 3
je 0x140157c50
mov edx, dword [rsp + 0x90]
mov dword [rsp + 0x184], edi
add edx, edi
cmp eax, 4
je 0x1401584cf
mov edi, dword [rsp + 0x94]
mov dword [rsp + 0x188], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 5
je 0x140157c50
mov edx, dword [rsp + 0x98]
mov dword [rsp + 0x18c], edi
add edx, edi
cmp eax, 6
je 0x1401584cf
mov edi, dword [rsp + 0x9c]
mov dword [rsp + 0x190], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 7
je 0x140157c50
mov edx, dword [rsp + 0xa0]
mov dword [rsp + 0x194], edi
add edx, edi
cmp eax, 8
je 0x1401584cf
mov edi, dword [rsp + 0xa4]
mov dword [rsp + 0x198], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 9
je 0x140157c50
mov edx, dword [rsp + 0xa8]
mov dword [rsp + 0x19c], edi
add edx, edi
cmp eax, 0xa
je 0x1401584cf
mov edi, dword [rsp + 0xac]
mov dword [rsp + 0x1a0], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 0xb
je 0x140157c50
mov edx, dword [rsp + 0xb0]
mov dword [rsp + 0x1a4], edi
add edx, edi
cmp eax, 0xc
je 0x1401584cf
mov edi, dword [rsp + 0xb4]
mov dword [rsp + 0x1a8], edx
add edi, edx
mov dword [rsp + 0x3c], edi
cmp eax, 0xd
je 0x140157c50
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x1ac], edi
add ecx, edi
cmp eax, 0xe
je 0x140158529
mov edx, dword [rsp + 0xbc]
mov dword [rsp + 0x1b0], ecx
add edx, ecx
cmp eax, 0xf
je 0x1401584cf
mov edi, dword [rsp + 0xc0]
mov dword [rsp + 0x1b4], edx
add edi, edx
mov dword [rsp + 0x3c], edi
mov edi, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x7c]
mov dword [rsp + 0x174], edi
test r11d, r11d
je 0x1401584ee
xor edx, edx
lea rdi, [rsp + 0x174]
mov r12d, ebx
mov r14d, eax
lea r8, [rsp + 0x2c0]
nop dword [rax]
movzx eax, byte [rsi + rdx]
mov rbx, rax
lea rax, [rdi + rax*4]
mov ecx, dword [rax]
lea r15d, [rcx + 1]
mov dword [rax], r15d
movzx eax, dl
add rdx, 1
mov ah, bl
mov word [r8 + rcx*2], ax
cmp rdx, r11
jne 0x140157c88
mov edx, r12d
mov r8d, dword [rsp + 0x84]
mov ebx, r12d
mov eax, r14d
mov dword [rsp + 0x174], 0
sub edx, r10d
test r14d, r14d
je 0x140157ee5
mov dword [rsp + 0x4c4], 0
mov ecx, edx
shl r8d, cl
cmp eax, 1
je 0x14015815a
mov r10d, dword [rsp + 0x88]
lea ecx, [rdx + 1]
mov dword [rsp + 0x4c8], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 2
je 0x14015815a
mov r8d, dword [rsp + 0x8c]
lea ecx, [rdx + 2]
mov dword [rsp + 0x4cc], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 3
je 0x14015815a
mov r11d, dword [rsp + 0x90]
lea ecx, [rdx + 3]
mov dword [rsp + 0x4d0], r8d
shl r11d, cl
add r11d, r8d
cmp eax, 4
je 0x14015815a
mov r10d, dword [rsp + 0x94]
lea ecx, [rdx + 4]
mov dword [rsp + 0x4d4], r11d
shl r10d, cl
add r10d, r11d
cmp eax, 5
je 0x14015815a
mov r8d, dword [rsp + 0x98]
lea ecx, [rdx + 5]
mov dword [rsp + 0x4d8], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 6
je 0x14015815a
mov r10d, dword [rsp + 0x9c]
lea ecx, [rdx + 6]
mov dword [rsp + 0x4dc], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 7
je 0x14015815a
mov r8d, dword [rsp + 0xa0]
lea ecx, [rdx + 7]
mov dword [rsp + 0x4e0], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 8
je 0x14015815a
mov r10d, dword [rsp + 0xa4]
lea ecx, [rdx + 8]
mov dword [rsp + 0x4e4], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 9
je 0x14015815a
mov r8d, dword [rsp + 0xa8]
lea ecx, [rdx + 9]
mov dword [rsp + 0x4e8], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xa
je 0x14015815a
mov r10d, dword [rsp + 0xac]
lea ecx, [rdx + 0xa]
mov dword [rsp + 0x4ec], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 0xb
je 0x14015815a
mov r8d, dword [rsp + 0xb0]
lea ecx, [rdx + 0xb]
mov dword [rsp + 0x4f0], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xc
je 0x14015815a
mov r10d, dword [rsp + 0xb4]
lea ecx, [rdx + 0xc]
mov dword [rsp + 0x4f4], r8d
shl r10d, cl
add r10d, r8d
cmp eax, 0xd
je 0x14015815a
mov r8d, dword [rsp + 0xb8]
lea ecx, [rdx + 0xd]
mov dword [rsp + 0x4f8], r10d
shl r8d, cl
add r8d, r10d
cmp eax, 0xe
je 0x14015815a
add edx, 0xe
mov esi, dword [rsp + 0xbc]
mov dword [rsp + 0x4fc], r8d
mov ecx, edx
shl esi, cl
mov edx, esi
add edx, r8d
cmp eax, 0xf
je 0x14015815a
mov esi, dword [rsp + 0x40]
add r9d, ebx
mov dword [rsp + 0x500], edx
cmp r9d, esi
jae 0x14015816a
movdqa xmm3, xmmword [rsp + 0x4c0]
mov eax, r13d
movdqa xmm4, xmmword [rsp + 0x4d0]
sub eax, ebx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x500]
movaps xmmword [rsp + 0xd0], xmm3
movdqa xmm3, xmmword [rsp + 0x4e0]
mov dword [rsp + 0x110], eax
mov eax, dword [rsp + 0x3c]
movaps xmmword [rsp + 0xe0], xmm4
movdqa xmm4, xmmword [rsp + 0x4f0]
movaps xmmword [rsp + 0xf0], xmm3
movaps xmmword [rsp + 0x100], xmm4
test eax, eax
je 0x14015813a
mov eax, dword [rsp + 0x3c]
lea r8, [rsp + 0x2c0]
sub ebx, r13d
mov qword [rsp + 0x68], rbp
mov dword [rsp + 0x44], ebx
mov r10, r8
lea rax, [r8 + rax*2]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x950]
add rax, 4
mov qword [rsp + 0x60], rax
nop dword [rax]
movzx eax, byte [r10 + 1]
mov esi, dword [rsp + 0x44]
mov r11d, 1
mov r12d, r13d
movzx r15d, byte [r10]
lea ecx, [rax + rsi]
mov r9d, dword [rsp + rax*4 + 0xd0]
mov esi, dword [rsp + 0x40]
sub r12d, eax
shl r11d, cl
lea edx, [r9 + r11]
cmp ecx, esi
jb 0x140158468
mov esi, dword [rsp + 0x5c]
mov rbx, qword [rsp + 0x950]
mov r14d, r12d
mov r11d, dword [rsp + 0x3c]
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 + 0x4c0]
mov edi, dword [rsp + rsi*4 + 0x170]
movdqu xmm1, xmmword [rsp + r9 + 0x4c0]
movdqu xmm2, xmmword [r14 + 0x10]
movdqu xmm3, xmmword [r14 + 0x20]
movdqu xmm4, xmmword [r14 + 0x30]
mov r9d, dword [r14 + 0x40]
sub r11d, edi
movaps xmmword [rsp + 0x120], xmm1
movaps xmmword [rsp + 0x130], xmm2
mov dword [rsp + 0x160], r9d
movaps xmmword [rsp + 0x140], xmm3
movaps xmmword [rsp + 0x150], xmm4
cmp ebp, 1
jle 0x140158086
mov ebp, dword [rsp + rsi*4 + 0x120]
mov esi, r12d
test ebp, ebp
je 0x140158086
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 0x140158070
test r11d, r11d
je 0x14015811c
mov dword [rsp + 0x58], edx
sub ecx, r13d
add r11, rdi
lea rsi, [r8 + rdi*2]
mov qword [rsp + 0x50], r10
mov ebp, ecx
lea r14, [r8 + r11*2]
nop dword [rax + rax]
movzx r11d, byte [rsi + 1]
movzx r9d, byte [rsi]
mov r10d, 1
lea ecx, [r11 + rbp]
mov edx, dword [rsp + r11*4 + 0x120]
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 0x1401580e8
add rsi, 2
mov dword [rsp + r11*4 + 0x120], r10d
cmp r14, rsi
jne 0x1401580b0
mov edx, dword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
mov dword [rsp + rax*4 + 0xd0], edx
mov rax, qword [rsp + 0x48]
add r10, 2
cmp r10, rax
jne 0x140157f88
mov rbp, qword [rsp + 0x68]
mov rax, rbp
add rsp, 0x908
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbp, 0xffffffffffffffd4
jmp 0x14015813a
mov esi, dword [rsp + 0x40]
add r9d, ebx
cmp r9d, esi
jb 0x140157ee5
mov edx, eax
lea esi, [rax - 1]
lea r11, [rsp + 0x4c0]
mov edi, eax
and edx, 0xfffffffc
mov dword [rsp + 0x68], esi
shr edi, 2
lea ecx, [rdx + 1]
mov dword [rsp + 0x44], ebx
lea rsi, [rcx*4]
lea ecx, [rdx + 2]
add edx, 3
mov qword [rsp + 0x48], rsi
lea r12, [r11 + rsi]
lea rsi, [rcx*4]
mov qword [rsp + 0x50], rsi
lea r15, [r11 + rsi]
lea rsi, [rdx*4]
mov qword [rsp + 0x60], rsi
lea r14, [r11 + rsi]
mov esi, eax
mov dword [rsp + 0x5c], edx
and esi, 3
mov dword [rsp + 0x58], ecx
mov ecx, dword [rsp + 0x40]
mov ebx, esi
mov r10d, ecx
mov rdx, r10
shl rdx, 4
add rdx, r10
shl rdx, 2
cmp dword [rsp + 0x68], 2
lea r8, [r11 + rdx]
ja 0x140158227
mov edx, dword [rsp + 0x4c4]
shr edx, cl
mov dword [r8 + 4], edx
cmp eax, 1
jne 0x1401584ab
add ecx, 1
cmp r9d, ecx
jb 0x14015845a
mov r8d, ecx
mov rdx, r8
shl rdx, 4
add rdx, r8
lea r8, [r11 + rdx*4]
jmp 0x1401581f2
lea rsi, [rdx - 4]
cmp rsi, 8
ja 0x1401583a7
mov edx, dword [rsp + 0x4c4]
shr edx, cl
mov dword [r8 + 4], edx
mov edx, dword [rsp + 0x4c8]
shr edx, cl
mov dword [r8 + 8], edx
mov edx, dword [rsp + 0x4cc]
shr edx, cl
mov dword [r8 + 0xc], edx
cmp eax, 3
je 0x1401584c1
mov edx, dword [rsp + 0x4d0]
shr edx, cl
mov dword [r8 + 0x10], edx
cmp eax, 4
je 0x140158378
mov edx, dword [rsp + 0x4d4]
shr edx, cl
mov dword [r8 + 0x14], edx
cmp eax, 5
je 0x140158378
mov edx, dword [rsp + 0x4d8]
shr edx, cl
mov dword [r8 + 0x18], edx
cmp eax, 6
je 0x140158378
mov edx, dword [rsp + 0x4dc]
shr edx, cl
mov dword [r8 + 0x1c], edx
cmp eax, 7
je 0x140158378
mov edx, dword [rsp + 0x4e0]
shr edx, cl
mov dword [r8 + 0x20], edx
cmp eax, 8
je 0x140158378
mov edx, dword [rsp + 0x4e4]
shr edx, cl
mov dword [r8 + 0x24], edx
cmp eax, 9
je 0x140158378
mov edx, dword [rsp + 0x4e8]
shr edx, cl
mov dword [r8 + 0x28], edx
cmp eax, 0xa
je 0x140158378
mov edx, dword [rsp + 0x4ec]
shr edx, cl
mov dword [r8 + 0x2c], edx
cmp eax, 0xb
je 0x140158378
mov edx, dword [rsp + 0x4f0]
shr edx, cl
mov dword [r8 + 0x30], edx
cmp eax, 0xc
je 0x140158378
mov edx, dword [rsp + 0x4f4]
shr edx, cl
mov dword [r8 + 0x34], edx
cmp eax, 0xd
je 0x140158378
mov edx, dword [rsp + 0x4f8]
shr edx, cl
mov dword [r8 + 0x38], edx
cmp eax, 0xe
je 0x140158378
mov edx, dword [rsp + 0x4fc]
shr edx, cl
mov dword [r8 + 0x3c], edx
cmp eax, 0xf
je 0x140158378
mov edx, dword [rsp + 0x500]
shr edx, cl
mov dword [r8 + 0x40], edx
cmp eax, 0x10
je 0x140158378
mov edx, dword [rsp + 0x504]
shr edx, cl
mov dword [r8 + 0x44], edx
nop dword [rax]
add ecx, 1
cmp r9d, ecx
jb 0x14015845a
mov r10d, ecx
mov rdx, r10
shl rdx, 4
add rdx, r10
shl rdx, 2
lea rsi, [rdx - 4]
lea r8, [r11 + rdx]
cmp rsi, 8
jbe 0x140158235
movdqu xmm0, xmmword [rsp + 0x4c4]
movq xmm5, r10
lea rdx, [r11 + rdx + 4]
psrld xmm0, xmm5
movups xmmword [rdx], xmm0
cmp edi, 1
je 0x140158403
movdqu xmm0, xmmword [rsp + 0x4d4]
psrld xmm0, xmm5
movups xmmword [rdx + 0x10], xmm0
cmp edi, 2
je 0x140158403
movdqu xmm0, xmmword [rsp + 0x4e4]
psrld xmm0, xmm5
movups xmmword [rdx + 0x20], xmm0
cmp edi, 3
je 0x140158403
movdqu xmm0, xmmword [rsp + 0x4f4]
psrld xmm0, xmm5
movups xmmword [rdx + 0x30], xmm0
test ebx, ebx
je 0x140158378
mov edx, dword [r12]
mov rsi, qword [rsp + 0x48]
shr edx, cl
mov dword [r8 + rsi], edx
mov esi, dword [rsp + 0x58]
cmp eax, esi
jb 0x140158378
mov edx, dword [r15]
mov rsi, qword [rsp + 0x50]
shr edx, cl
mov dword [r8 + rsi], edx
mov esi, dword [rsp + 0x5c]
cmp eax, esi
jb 0x140158378
mov edx, dword [r14]
mov rsi, qword [rsp + 0x60]
shr edx, cl
add ecx, 1
mov dword [r8 + rsi], edx
cmp r9d, ecx
jae 0x140158384
mov ebx, dword [rsp + 0x44]
jmp 0x140157ee5
cmp r9d, edx
jae 0x14015811c
mov rsi, qword [rsp + 0x950]
sub r11d, 1
add r11, r9
lea rcx, [rsi + r9*4]
mov rsi, qword [rsp + 0x60]
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 0x140158490
jmp 0x14015811c
mov edx, dword [rsp + 0x4c8]
shr edx, cl
mov dword [r8 + 8], edx
cmp eax, 3
je 0x14015824f
add ecx, 1
cmp r9d, ecx
jae 0x1401581d6
jmp 0x14015845a
mov dword [rsp + 0x3c], edx
jmp 0x140157c50
mov dword [rsp + 0x40], 1
mov eax, r10d
mov r9d, 0xffffffff
jmp 0x140157aae
mov dword [rsp + 0x174], 0
mov edx, ebx
sub edx, r10d
jmp 0x140157cd7
mov r11d, dword [rsp + 0x7c]
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x174], 0
test r11d, r11d
jne 0x140157c69
jmp 0x140157ee5
mov dword [rsp + 0x3c], ecx
jmp 0x140157c50