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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x1b38
call fcn.14008dbc0
sub rsp, rax
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffc0
mov dword [rsp + 0x44], r9d
mov esi, r8d
mov rdi, rdx
mov r14, rcx
mov eax, dword [rcx + 0x264]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x520]
mov qword [rdx + 0x40], rax
mov rax, qword [rdx]
mov dword [rax], 0
mov rax, qword [rcx + 0x250]
mov qword [rsp + 0x78], rax
mov rax, qword [rcx + 0x258]
mov rcx, qword [rax + 0x30]
or rcx, qword [rax + 0x38]
setne byte [rdx + 0x30]
mov r8d, dword [rdx + 0x10]
lea rdx, [rsp + 0x6c]
mov rcx, r14
call fcn.140004080
test al, al
jne 0x14002168e
mov r8d, dword [rdi + 0x10]
movzx ecx, byte [rdi + 0x30]
cmp r8d, 0xf6
jge 0x1400216b6
mov eax, dword [rbp + 0x1b20]
test cl, cl
sete r13b
test eax, eax
sets bl
mov rax, qword [r14 + 0x258]
mov r12, qword [rax + 0x20]
mov r9d, dword [rax + 0x14]
cmp r9d, 0xe
jge 0x1400215cb
mov r10, qword [0x142202560]
mov rax, r12
mul qword [0x142202558]
shl rdx, 5
lea rax, [r10 + rdx]
cmp word [r10 + rdx], r12w
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x2c], esi
je 0x140020cad
movzx r11d, byte [rax + 2]
test r11d, r11d
je 0x140020cad
lea r15, [rax + 0xa]
mov r10d, 1
cmp word [rax + 0xa], r12w
je 0x1400214b5
movzx edi, byte [rax + 0xc]
test edi, edi
je 0x1400214b0
lea rdx, [rax + 0x14]
mov r10d, 2
cmp word [rax + 0x14], r12w
je 0x1400214bd
movzx esi, byte [rax + 0x16]
test esi, esi
je 0x1400214bd
movzx r8d, byte [0x142202568]
add r8d, 0x107
movzx r9d, byte [rax + 3]
mov r10d, r8d
sub r10d, r9d
and r10d, 0xf8
sub r11d, r10d
movzx r9d, byte [rax + 0xd]
mov r10d, r8d
sub r10d, r9d
and r10d, 0xf8
sub edi, r10d
cmp r11d, edi
cmovle r15, rax
movzx r9d, byte [r15 + 2]
movzx r10d, byte [r15 + 3]
mov r11d, r8d
sub r11d, r10d
and r11d, 0xf8
sub r9d, r11d
mov r11, r15
movzx eax, byte [rax + 0x17]
sub r8d, eax
and r8d, 0xf8
sub esi, r8d
cmp r9d, esi
cmovg r11, rdx
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 0x32], 0
jmp 0x140021478
xor r10d, r10d
mov r11, rax
lea rdx, [r10 + r10*4]
movzx r10d, byte [rax + rdx*2 + 3]
and r10b, 7
or r10b, byte [0x142202568]
mov byte [rax + rdx*2 + 3], r10b
cmp byte [rax + rdx*2 + 2], 0
setne byte [rdi + 0x32]
je 0x140021478
movsx r15d, word [r11 + 6]
cmp r15d, 0x7d02
je 0x14002146d
cmp r15d, 0x7c0a
jge 0x140021574
cmp r15d, 0xffff83f6
jle 0x140021660
movzx eax, byte [r11 + 3]
and al, 4
shr al, 2
mov dword [rsp + 0x3c], eax
movzx esi, word [r11 + 4]
test cl, cl
jne 0x1400214f2
movsx eax, word [r11 + 8]
mov dword [rdi + 0x24], eax
cmp eax, 0x7d02
je 0x1400216d1
cmp r15d, 0x7d02
je 0x1400214a8
movzx edx, byte [r11 + 3]
xor ecx, ecx
cmp r15d, eax
setg cl
inc ecx
test edx, ecx
cmove r15d, eax
cmp r15d, dword [rsp + 0x44]
jge 0x1400213f0
mov ecx, dword [rsp + 0x2c]
cmp r15d, ecx
cmovg ecx, r15d
mov dword [rsp + 0x2c], ecx
add eax, 0x68
mov dword [rsp + 0x4c], eax
and bl, r13b
mov rax, qword [rdi - 0x38]
mov qword [rsp + 0x80], rax
mov rax, qword [rdi - 0x78]
mov qword [rsp + 0x88], rax
mov eax, dword [rdi - 0x2c]
mov dword [rsp + 0x50], 0x5a
test eax, eax
mov qword [rsp + 0x70], r12
je 0x140020db6
cmp eax, 0x81
je 0x140020db6
and eax, 0x7f
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x60], r11
movzx r12d, bl
mov rdx, qword [rsp + 0x78]
lea rax, [rdx + 0x6ce8]
lea rcx, [rdx + 0x16ce8]
add rdx, 0xfee6e8
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rdx
mov dword [rsp + 0xd8], esi
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x114], eax
mov eax, dword [rbp + 0x1b20]
mov dword [rsp + 0x11c], eax
mov rax, qword [r14 + 0x258]
mov rdi, qword [rax + 0x30]
mov rbx, qword [rax + 0x38]
mov eax, 1
test esi, esi
jne 0x140021597
mov rcx, qword [rsp + 0x30]
add rcx, 0x40
mov qword [rsp + 0x98], rcx
neg r12d
mov qword [rsp + 0xa0], r12
lea ecx, [rax + 7]
add eax, 0xd
or rdi, rbx
cmovne eax, ecx
mov dword [rsp + 0x110], eax
xor esi, esi
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x54], 0
mov ebx, r15d
lea rcx, [rsp + 0xb0]
xor edx, edx
call fcn.140009900
test eax, eax
je 0x14002132e
mov r13d, eax
mov rcx, r14
mov edx, eax
call fcn.140003ca0
mov r15d, ebx
test al, al
je 0x140020e85
mov rcx, r14
mov edx, r13d
call fcn.140003910
mov r10d, eax
mov r12d, r13d
and r12d, 0x7f
mov r11d, dword [r14 + r12*4]
lea r9d, [rsi + 1]
mov rdi, qword [r14 + 0x258]
cmp ebx, 0xffff83f7
jl 0x140020ff0
mov rax, qword [rsp + 0xa8]
cmp dword [rdi + rax*4 + 8], 0
je 0x140020ff0
cmp r12d, dword [rsp + 0x50]
je 0x140020f8c
mov eax, r10d
xor al, 1
je 0x140020f8c
cmp dword [rsp + 0x4c], 0xffff83f7
jl 0x140020f8c
mov r15d, ebx
cmp esi, 1
mov esi, r9d
jg 0x140020e85
lea rax, [0x1400d20e0]
mov r15d, dword [rax + r11*4]
mov eax, dword [rsp + 0x4c]
add r15d, eax
mov esi, dword [rsp + 0x2c]
cmp r15d, esi
jle 0x14002153f
mov qword [rsp + 0x58], r11
mov byte [rsp + 0x28], r10b
mov dword [rsp + 0x40], r9d
mov r8d, esi
sub r8d, eax
jge 0x140021502
shl r8d, 2
mov rcx, r14
mov edx, r13d
call fcn.14000fb20
mov r15d, esi
mov r9d, dword [rsp + 0x40]
mov esi, r9d
test al, al
movzx r10d, byte [rsp + 0x28]
mov r11, qword [rsp + 0x58]
je 0x140020e85
cmp dword [rsp + 0x54], 1
jg 0x140021684
test r11, r11
je 0x1400212b1
mov rcx, r14
mov edx, r13d
mov r8d, 0xffffff81
mov esi, r9d
mov r15d, r10d
mov dword [rsp + 0x28], r13d
mov r13d, ebx
mov rbx, r12
mov r12, r14
mov r14, rdi
mov rdi, r11
call fcn.14000fb20
mov r11, rdi
mov rdi, r14
mov r14, r12
mov r12, rbx
mov ebx, r13d
mov r13d, dword [rsp + 0x28]
mov r10d, r15d
mov r9d, esi
mov r15d, ebx
test al, al
je 0x140020e85
mov eax, r13d
sar eax, 7
movsxd rsi, eax
mov ecx, dword [r14 + rsi*4]
mov rdx, qword [0x142232e30]
xor rdx, qword [rdi + 0x20]
test r11, r11
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x58], rsi
jne 0x1400212fa
mov r15, r14
imul r8, rcx, 0x2d0
lea rax, [0x142230130]
add r8, rax
mov rax, qword [r8 + r12*8]
mov r14, rdi
xor rax, qword [r8 + rsi*8]
xor rax, rdx
mov edx, dword [rdi + 0x14]
cmp edx, 0xd
jge 0x140021637
mov r9, qword [rsp + 0x30]
mov r14, r15
xor r8d, r8d
test r11, r11
sete byte [rsp + 0x28]
setne r8b
mul qword [0x142202558]
mov rax, qword [0x142202560]
shl rdx, 5
prefetcht0 byte [rax + rdx]
mov r15d, dword [rsp + 0x44]
neg r15d
mov dword [r9 + 0x14], r13d
movzx eax, byte [r9 + 0x30]
test rax, rax
setne dil
imul rax, rax, 0x7e9000
add rax, qword [rsp + 0x78]
imul rcx, rcx, 0x3f480
add rcx, rax
imul rax, r8, 0x3f4800
add rcx, rax
imul rax, r12, 0xb40
add rax, rcx
add rax, 0x1c6e8
mov qword [r9 + 8], rax
mov eax, dword [rbp + 0x1b20]
lea esi, [rax - 1]
mov rcx, r14
mov edx, r13d
lea r8, [rsp + 0x900]
mov r9d, r10d
call fcn.140004ab0
mov r9d, dword [rsp + 0x2c]
neg r9d
mov dword [rsp + 0x20], esi
mov rcx, r14
mov rdx, qword [rsp + 0x98]
mov r8d, r15d
call fcn.140020ae0
xor byte [r14 + 0x264], 1
mov r8d, dword [r14 + r12*4]
mov rdx, r12
shl rdx, 4
lea r11, [0x142232e40]
mov rcx, qword [rdx + r11]
mov rdx, qword [rdx + r11 + 8]
mov rsi, qword [rsp + 0x58]
mov r9, rsi
shl r9, 4
mov r10, qword [r9 + r11]
mov r9, qword [r9 + r11 + 8]
or r9, rdx
xor qword [r14 + 0x178], r9
or r10, rcx
xor qword [r14 + 0x170], r10
mov r11d, r8d
and r11d, 7
shl r11, 4
xor qword [r14 + r11 + 0x178], r9
xor qword [r14 + r11 + 0x170], r10
mov r11d, r8d
sar r11d, 3
shl r11, 4
xor qword [r14 + r11 + 0x1f8], r9
xor qword [r14 + r11 + 0x1f0], r10
mov dword [r14 + r12*4], 0
mov dword [r14 + rsi*4], r8d
mov r8, qword [r14 + 0x258]
mov r9d, dword [r8 + 0x114]
test r9, r9
je 0x140021213
mov dword [r14 + r12*4], r9d
mov r10d, r9d
and r10d, 7
shl r10, 4
mov r11, qword [r14 + r10 + 0x178]
or r11, rdx
mov rsi, qword [r14 + r10 + 0x170]
or rsi, rcx
mov qword [r14 + r10 + 0x170], rsi
mov qword [r14 + r10 + 0x178], r11
or qword [r14 + 0x170], rsi
or qword [r14 + 0x178], r11
mov r10d, r9d
sar r10d, 3
shl r10, 4
or qword [r14 + r10 + 0x1f0], rcx
or qword [r14 + r10 + 0x1f8], rdx
inc dword [r14 + r9*4 + 0x210]
and r9d, 0xfffffff8
inc dword [r14 + r9*4 + 0x210]
and dil, byte [rsp + 0x28]
movzx ecx, dil
add dword [rsp + 0x54], ecx
mov rcx, qword [r8 + 0x40]
mov qword [r14 + 0x258], rcx
dec dword [r14 + 0x260]
mov rcx, qword [rcx + 0x20]
and ecx, 0x3fff
dec byte [r14 + rcx + 0x268]
neg eax
mov r15d, ebx
mov r10d, dword [rsp + 0x40]
mov esi, r10d
cmp ebx, eax
jge 0x140020e85
mov r15d, eax
mov esi, r10d
cmp dword [rsp + 0x2c], eax
jge 0x140020e85
mov rcx, qword [rsp + 0x30]
mov r8, qword [rcx]
mov rcx, qword [rcx + 0x40]
mov dword [r8], r13d
lea rdx, [r8 + 4]
test rcx, rcx
je 0x14002128d
mov r9d, dword [rcx]
test r9d, r9d
jne 0x1400214ca
mov dword [rdx], 0
mov r15d, eax
mov esi, r10d
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x2c], eax
cmp eax, dword [rsp + 0x44]
jge 0x140021335
jmp 0x140020e85
mov eax, r13d
sar eax, 7
cdqe
mov eax, dword [r14 + rax*4]
imul rax, rax, 0xb4
mov rcx, qword [rsp + 0x80]
add rcx, rax
cmp word [rcx + r12*2], 0
jns 0x140020fa0
add rax, qword [rsp + 0x88]
cmp word [rax + r12*2], 0
mov r15d, ebx
mov esi, r9d
js 0x140020e85
jmp 0x140020fa0
imul rax, r11, 0x2d0
lea r9, [0x142230130]
add rax, r9
mov rax, qword [rax + r12*8]
imul r8, rcx, 0x2d0
add r8, r9
xor rax, qword [r8 + r12*8]
xor rax, qword [r8 + rsi*8]
xor rax, rdx
mov r9, qword [rsp + 0x30]
jmp 0x140021051
mov eax, ebx
mov r13d, dword [rsp + 0x48]
mov ebx, eax
cmp eax, 0xffff82ff
je 0x14002161c
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + 0x10]
cmp ebx, 0x7c0a
jge 0x1400215f5
mov eax, ebx
cmp ebx, 0xffff83f6
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x60]
mov esi, dword [rsp + 0x3c]
jle 0x14002162e
cmp ebx, dword [rsp + 0x44]
setl dl
mov ecx, dword [r8 + 0x24]
movzx r8d, word [r11]
test r13d, r13d
mov rdi, qword [rsp + 0xa0]
jne 0x140021395
cmp r8w, r10w
je 0x14002139a
mov word [r11 + 4], r13w
cmp r8w, r10w
je 0x14002144a
mov r8b, 2
sub r8b, dl
mov word [r11], r10w
and dil, 1
xor dil, 7
mov byte [r11 + 2], dil
shl sil, 2
or sil, byte [0x142202568]
or sil, r8b
mov byte [r11 + 3], sil
mov word [r11 + 6], ax
mov word [r11 + 8], cx
mov r15d, ebx
mov eax, r15d
lea rsp, [rbp + 0x1ab8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [rdi + 0x32], 0
jne 0x1400213d9
mov ecx, dword [rdi + 0x10]
cmp r15d, 0x7c0a
jge 0x140021698
mov edx, r15d
cmp r15d, 0xffff83f6
jle 0x1400216a2
cmp word [r11], r12w
je 0x14002160c
mov word [r11 + 4], 0
mov word [r11], r12w
mov byte [r11 + 2], 1
movzx ecx, byte [0x142202568]
or cl, 2
mov byte [r11 + 3], cl
mov word [r11 + 6], dx
mov word [r11 + 8], ax
jmp 0x1400213d9
movzx r8d, sil
lea r8d, [rdi + r8*2]
add r8d, 7
movzx r9d, byte [r11 + 2]
add r9d, 0xfffffffc
cmp r8d, r9d
jg 0x1400213a4
jmp 0x1400213d6
mov r15d, 0x7d02
jmp 0x140020d08
test cl, cl
jne 0x14002155a
cmp dword [rdi - 0x2c], 0x81
je 0x1400216ac
mov rcx, r14
mov rsi, r11
call fcn.1400068a0
mov r11, rsi
mov dword [rdi + 0x24], eax
xor esi, esi
mov dword [rsp + 0x3c], 0
mov r15d, eax
jmp 0x140020d58
mov rdi, qword [rsp + 0x30]
mov r11, r15
jmp 0x140020cb3
mov r11, rdx
mov rdi, qword [rsp + 0x30]
jmp 0x140020cb3
mov dword [r8 + 4], r9d
mov edx, dword [rcx + 4]
test edx, edx
je 0x14002154e
mov dword [r8 + 8], edx
add r8, 0xc
mov r9d, dword [rcx + 8]
test r9d, r9d
jne 0x1400215ab
mov rdx, r8
jmp 0x14002128d
mov r15d, 0xffff82ff
mov eax, 0xffff82ff
jmp 0x140020d75
mov rcx, r14
mov edx, r13d
mov r8d, 1
call fcn.14000fb20
test al, al
mov r9d, dword [rsp + 0x40]
movzx r10d, byte [rsp + 0x28]
mov r11, qword [rsp + 0x58]
jne 0x140020f8c
mov eax, dword [rsp + 0x4c]
cmp ebx, eax
cmovle ebx, eax
mov r15d, ebx
mov esi, r9d
jmp 0x140020e85
cmp ebx, r15d
cmovg r15d, ebx
mov esi, r9d
jmp 0x140020e85
add r8, 8
mov rdx, r8
jmp 0x14002128d
mov r15d, 0xffff82ff
mov dword [rsp + 0x3c], 0
xor esi, esi
mov eax, 0xffff82ff
jmp 0x140020d75
mov eax, 0x7d00
sub eax, r15d
mov edx, 0x77
sub edx, r9d
sub r15d, r8d
cmp eax, edx
mov eax, 0x7c09
cmovg r15d, eax
jmp 0x140020d08
mov rcx, r14
mov edx, esi
call fcn.14000f990
xor al, 1
movzx eax, al
jmp 0x140020e44
add rcx, 0xc
mov rdx, r8
mov dword [rdx], r9d
add rdx, 4
mov r9d, dword [rcx]
add rcx, 4
test r9d, r9d
je 0x14002128d
jmp 0x1400215b2
lea eax, [r9 - 0xe]
shr eax, 3
movabs rdx, 0x5851f42d4c957f2d
imul rdx, rax
movabs rax, 0x14057b7ef767814f
add rax, rdx
xor r12, rax
jmp 0x140020bad
add ecx, ebx
mov eax, ecx
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x60]
mov esi, dword [rsp + 0x3c]
jmp 0x140021373
cmp byte [r11 + 2], 4
jbe 0x140021427
jmp 0x1400213d9
mov ebx, 0xffff8300
mov rax, qword [rsp + 0x30]
add ebx, dword [rax + 0x10]
jmp 0x1400213d6
mov eax, ebx
sub eax, ecx
jmp 0x140021373
add edx, 0xfffffff3
shr edx, 3
movabs r8, 0x5851f42d4c957f2d
imul r8, rdx
movabs rdx, 0x14057b7ef767814f
add rdx, r8
xor rax, rdx
jmp 0x140021049
mov eax, 0x77
sub eax, r9d
add r8d, r15d
add r15d, 0x7d00
cmp r15d, eax
mov r15d, 0xffff83f7
cmovle r15d, r8d
jmp 0x140020d08
mov r13d, dword [rsp + 0x48]
jmp 0x140021342
mov r15d, dword [rsp + 0x6c]
jmp 0x1400213d9
add ecx, r15d
mov edx, ecx
jmp 0x140021416
mov edx, r15d
sub edx, ecx
jmp 0x140021416
xor eax, eax
sub eax, dword [rdi - 0x1c]
jmp 0x14002149b
xor r15d, r15d
test cl, cl
jne 0x1400213d9
mov rcx, r14
call fcn.1400068a0
mov r15d, eax
jmp 0x1400213d9
mov rcx, r14
mov qword [rsp + 0x60], r11
call fcn.1400068a0
mov r11, qword [rsp + 0x60]
mov dword [rdi + 0x24], eax
jmp 0x140020d36