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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov r15, rcx
mov rax, qword [rcx]
mov qword [rsp + 0x98], rax
mov r14, qword [rax]
movzx r12d, byte [rcx + 0x42]
xor eax, eax
cmp r12d, 2
setne al
lea eax, [rax + rax*4 + 5]
mov edi, 1
cmovae edi, eax
xor ebp, ebp
mov qword [rsp + 0x78], rdx
test dx, dx
je 0x140068156
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x140068156
mov ebp, dword [rax]
lea eax, [r12*8 + 0x20]
lea ebx, [rdi + rdi]
imul eax, ebx
movsxd rsi, ebp
add rsi, rsi
add eax, esi
movsxd rdx, eax
mov rcx, r14
call fcn.140027672
test rax, rax
je 0x140068221
mov r13, rax
mov qword [rsp + 0xb0], r14
mov dword [rsp + 0x64], ebp
mov qword [rsp + 0x68], rdi
mov edi, edi
shl rdi, 5
lea rbp, [rax + rdi]
xorps xmm0, xmm0
movups xmmword [rax + rdi + 0x10], xmm0
movups xmmword [rax + rdi], xmm0
lea rdx, [rdi + rbp]
inc ebx
lea rax, [r12*8]
mov rcx, r13
add rcx, 0x18
mov qword [rcx], rdx
dec ebx
add rdx, rax
add rcx, 0x20
cmp ebx, 1
ja 0x1400681bf
mov qword [rsp + 0x80], rdx
mov r14d, dword [rsp + 0x64]
test r14d, r14d
je 0x140068235
xor ebx, ebx
mov rcx, qword [rsp + 0x80]
xor edx, edx
mov r8, rsi
call fcn.140202180
mov rax, qword [rsp + 0x98]
mov ecx, dword [rax + 0xac]
cmp ecx, 0x30
mov eax, 0x30
cmovb eax, ecx
mov rcx, r12
neg rcx
sbb ebx, ebx
or bl, r14b
mov byte [r13 + rdi + 0x16], bl
jmp 0x140068258
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x98]
mov ecx, dword [rax + 0xac]
cmp ecx, 0x30
mov eax, 0x30
cmovb eax, ecx
xor ecx, ecx
mov qword [rsp + 0x80], rcx
mov word [r13 + rdi + 0x10], ax
test r12d, r12d
mov rbx, qword [rsp + 0xb0]
je 0x14006876b
mov rax, qword [rsp + 0x78]
add eax, 0xffffffce
mov dword [rsp + 0xa8], eax
mov rax, qword [rsp + 0x68]
cmp eax, 3
mov r9d, 2
cmovae r9d, eax
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r10d, r10d
xor edi, edi
xor r11d, r11d
mov rax, r13
mov qword [rsp + 0x88], r15
mov esi, ecx
mov rcx, rax
test esi, esi
jg 0x1400682ce
inc rdx
inc r8d
xor esi, esi
mov rax, rbp
mov rbp, rcx
cmp r12, rdx
jne 0x1400682af
jmp 0x140068711
mov dword [rsp + 0xac], esi
mov dword [rsp + 0x70], r8d
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0xc0], rdx
lea rax, [rdx*8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x90], rcx
lea rax, [rcx + 0x34]
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0x74], 0
mov dword [rsp + 0x44], 0
mov qword [rsp + 0xc8], rbp
mov rsi, rbp
mov dword [rsp + 0x3c], r9d
mov rbp, qword [r15 + 0x50]
test rbp, rbp
je 0x140068674
mov r12b, byte [rsi + 0x16]
mov qword [rsp + 0x48], 0
mov r13, qword [rsi]
mov rax, r13
not rax
test qword [rbp], rax
jne 0x140068634
mov r14, qword [rbp + 8]
test r14, r13
jne 0x140068634
test byte [rbp + 0x29], 0x40
movzx r15d, word [rsi + 0x10]
je 0x140068386
cmp r15w, 3
jl 0x140068634
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x40], r10d
movzx edx, word [rbp + 0x14]
add dx, r15w
movzx ecx, word [rbp + 0x12]
call fcn.14006c7ee
movzx edx, word [rsi + 0x14]
mov ecx, eax
call fcn.14006c7ee
mov ebx, eax
add r15w, word [rbp + 0x16]
test r12b, r12b
js 0x1400683c3
mov rax, qword [rsi + 8]
mov qword [rsp + 0x48], rax
jmp 0x1400683f7
mov rcx, qword [rsp + 0x88]
movzx r9d, word [rcx + 0x40]
mov rdx, qword [rcx + 0x10]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov eax, dword [rsp + 0x70]
mov word [rsp + 0x20], ax
mov r8, rsi
call fcn.14006c855
mov r12d, eax
test r12b, r12b
mov r8d, dword [rsp + 0x44]
js 0x140068472
movsx ecx, r12b
mov eax, dword [rsp + 0x64]
sub eax, ecx
jle 0x140068472
movzx r8d, r12b
mov rcx, qword [rsp + 0x80]
movzx edx, word [rcx + r8*2]
test dx, dx
jne 0x1400684b1
mov qword [rsp + 0x50], r8
imul eax, eax, 0x64
cdq
idiv dword [rsp + 0x64]
movsxd rcx, eax
call fcn.140051261
mov r8d, eax
mov rax, qword [rsp + 0x88]
test byte [rax + 0x41], 0x40
mov rax, qword [rsp + 0x78]
je 0x140068468
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0x28]
mov rcx, qword [rsp + 0x78]
cmp ax, cx
cmovge eax, ecx
cmp ax, 0xb
jge 0x140068479
xor edx, edx
jmp 0x140068496
mov eax, ebx
add ebx, 0xfffffffe
jmp 0x1400684c0
movzx ecx, ax
mov dword [rsp + 0xa4], r8d
call fcn.140051261
mov r8d, dword [rsp + 0xa4]
mov edx, eax
add edx, 0xffffffdf
mov rcx, qword [rsp + 0x50]
add edx, dword [rsp + 0xa8]
add edx, r8d
mov rax, qword [rsp + 0x80]
mov word [rax + rcx*2], dx
mov ecx, ebx
call fcn.14006c7ee
add eax, 5
mov r8d, dword [rsp + 0x44]
test r8d, r8d
jle 0x1400684ee
or r14, r13
mov ecx, r8d
mov r13, qword [rsp + 0x90]
cmp qword [r13], r14
jne 0x1400684e6
mov dl, byte [r13 + 0x16]
xor dl, r12b
jns 0x140068617
add r13, 0x20
dec ecx
jne 0x1400684d3
mov ecx, r8d
cmp r8d, dword [rsp + 0x68]
jge 0x140068591
mov qword [rsp + 0x50], rdi
xor edx, edx
mov r14, qword [rsp + 0x68]
cmp r8d, r14d
setl dl
add r8d, edx
movsxd r13, ecx
shl r13, 5
add r13, qword [rsp + 0x90]
mov edi, r8d
mov rcx, qword [rbp + 8]
or rcx, qword [rsi]
mov qword [r13], rcx
mov rcx, qword [rsp + 0x48]
mov qword [r13 + 8], rcx
mov word [r13 + 0x10], r15w
mov word [r13 + 0x12], ax
mov word [r13 + 0x14], bx
mov byte [r13 + 0x16], r12b
mov rcx, qword [r13 + 0x18]
mov rdx, qword [rsi + 0x18]
mov r8, qword [rsp + 0xe0]
call fcn.140201ae0
mov rax, qword [r13 + 0x18]
mov rcx, qword [rsp + 0xc0]
mov qword [rax + rcx*8], rbp
cmp edi, r14d
mov dword [rsp + 0x44], edi
jge 0x1400685b4
mov r9d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
jmp 0x140068634
cmp ax, di
jg 0x14006861e
mov ecx, dword [rsp + 0x40]
jne 0x1400684fc
mov ecx, dword [rsp + 0x40]
cmp bx, word [rsp + 0x58]
jge 0x14006861e
jmp 0x1400684fc
xor r10d, r10d
mov rax, qword [rsp + 0x90]
movzx r11d, word [rax + 0x10]
movzx edi, word [rax + 0x12]
cmp byte [rsp + 0xb8], 2
jb 0x14006862f
xor r10d, r10d
mov eax, 1
mov rcx, qword [rsp + 0xd8]
mov r9d, dword [rsp + 0x3c]
movzx edx, word [rcx - 2]
cmp dx, di
jle 0x1400685f6
movzx r8d, word [rcx]
jmp 0x140068602
jne 0x14006860a
movzx r8d, word [rcx]
cmp r8w, r11w
jle 0x14006860a
mov r11d, r8d
mov edi, edx
mov r10d, eax
inc eax
add rcx, 0x20
cmp r9d, eax
jne 0x1400685e7
jmp 0x140068634
cmp word [r13 + 0x12], ax
jge 0x14006863d
mov r9d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x58]
jmp 0x140068634
mov r9d, dword [rsp + 0x3c]
mov rbp, qword [rbp + 0x40]
jmp 0x14006833a
jne 0x140068665
cmp word [r13 + 0x10], r15w
jl 0x14006861e
mov qword [rsp + 0x50], rdi
jne 0x14006866a
cmp word [r13 + 0x14], bx
mov r14, qword [rsp + 0x68]
mov edi, r8d
jg 0x140068523
jmp 0x140068578
mov qword [rsp + 0x50], rdi
mov r14, qword [rsp + 0x68]
jmp 0x140068520
mov eax, dword [rsp + 0x74]
inc eax
add rsi, 0x20
mov dword [rsp + 0x74], eax
cmp eax, dword [rsp + 0xac]
mov r15, qword [rsp + 0x88]
jne 0x140068336
mov rdx, qword [rsp + 0xc0]
inc rdx
mov r8d, dword [rsp + 0x70]
inc r8d
mov r12, qword [rsp + 0xb8]
cmp rdx, r12
mov rbx, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0x90]
mov rax, qword [rsp + 0xc8]
mov ecx, dword [rsp + 0x44]
jne 0x1400682ad
test ecx, ecx
je 0x140068711
cmp ecx, 2
jl 0x14006872a
mov ecx, ecx
lea rdx, [rbp + 0x20]
dec rcx
movzx r8d, word [rbp + 0x12]
mov rax, rdx
cmp r8w, word [rdx + 0x12]
jg 0x140068703
mov rax, rbp
add rdx, 0x20
mov rbp, rax
dec rcx
jne 0x1400686f1
jmp 0x14006872d
lea rdx, [0x1402b2660]
mov rcx, qword [rsp + 0x98]
call fcn.1400397e7
jmp 0x1400688fb
mov rax, rbp
mov rcx, qword [r15 + 8]
lea rdx, [r15 + 0x3e0]
xor r8d, r8d
mov r9, qword [rax + 0x18]
mov r9, qword [r9 + r8*8]
mov qword [rdx], r9
movzx r9d, byte [r9 + 0x10]
mov byte [rdx - 0x1c], r9b
imul r9, r9, 0x70
mov r9d, dword [rcx + r9 + 0x4c]
mov dword [rdx - 0x44], r9d
inc r8
add rdx, 0x58
cmp r12, r8
jne 0x14006873b
mov rbp, rax
movzx eax, word [r15 + 0x40]
and eax, 0x180
cmp eax, 0x100
jne 0x1400687d1
cmp word [rsp + 0x78], 0
je 0x1400687d1
cmp byte [r15 + 0x47], 0
jne 0x1400687d1
mov rax, qword [rbp + 0x18]
lea rcx, [r12 - 1]
mov rax, qword [rax + r12*8 - 8]
mov rdx, qword [r15 + 0x18]
lea r8, [rsp + 0x48]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], cx
mov rcx, r15
mov r8, rbp
mov r9w, 0x80
call fcn.14006c855
movsx eax, al
mov rcx, qword [r15 + 0x18]
cmp dword [rcx], eax
jne 0x1400687d1
mov byte [r15 + 0x47], 2
mov byte [r15 + 0x48], 0
mov rdx, qword [r15 + 0x10]
test rdx, rdx
je 0x1400688f2
movzx eax, word [r15 + 0x40]
mov cl, byte [rbp + 0x16]
test al, al
js 0x140068884
mov byte [r15 + 0x43], cl
mov r8, qword [rbp + 8]
mov qword [r15 + 0x58], r8
test cl, cl
jg 0x140068890
mov byte [r15 + 0x43], 0
test r12b, r12b
je 0x140068890
mov r8, qword [rbp + 0x18]
lea ecx, [r12 - 1]
mov r8, qword [r8 + rcx*8]
mov r9d, dword [r8 + 0x28]
bt r9d, 0xc
jb 0x140068890
and r9d, 0x104
cmp r9d, 0x104
je 0x140068890
lea rax, [rsp + 0x48]
mov qword [rax], 0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov word [rsp + 0x20], cx
mov rcx, r15
mov r8, rbp
mov r9w, 0x800
call fcn.14006c855
movsx eax, al
mov rdx, qword [r15 + 0x10]
cmp dword [rdx], eax
jne 0x14006887d
mov byte [r15 + 0x48], 1
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x58], rax
movzx eax, word [r15 + 0x40]
jmp 0x140068890
movsx ecx, cl
cmp dword [rdx], ecx
jne 0x140068890
mov byte [r15 + 0x47], 2
bt eax, 9
jae 0x1400688f2
movsx eax, byte [r15 + 0x43]
cmp dword [rdx], eax
jne 0x1400688f2
test r12b, r12b
je 0x1400688f2
lea rax, [rsp + 0x48]
mov qword [rax], 0
mov rcx, qword [rbp + 0x18]
dec r12d
mov rcx, qword [rcx + r12*8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov word [rsp + 0x20], r12w
mov rcx, r15
mov r8, rbp
xor r9d, r9d
call fcn.14006c855
movsx eax, al
mov rcx, qword [r15 + 0x10]
cmp dword [rcx], eax
jne 0x1400688f2
mov byte [r15 + 0x44], 1
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x58], rax
movzx eax, word [rbp + 0x10]
mov word [r15 + 0x60], ax
mov rcx, rbx
mov rdx, r13
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14001fb53