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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov rdi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd8]
mov r14, qword [rcx + 0x10]
mov eax, dword [rdi + 4]
mov r13d, r9d
mov r9, rdx
movzx edx, byte [rdi]
xor esi, esi
mov r12, r8
mov dword [rsp + 0xc8], eax
mov rbx, rcx
mov dword [rsp + 0x30], edx
test rbp, rbp
je 0x14009ad7d
movzx eax, byte [rbp + 1]
jmp 0x14009ad7f
mov eax, esi
mov rcx, qword [rsp + 0xd0]
mov dword [rsp + 0xd8], eax
test rcx, rcx
je 0x14009ada0
cmp qword [rcx], rsi
jne 0x14009adbc
mov qword [rsp + 0xd0], rsi
test eax, eax
jne 0x14009adbc
mov r8d, dword [rsp + 0xe8]
mov edx, dword [r9 + 0x10]
mov rcx, r14
call fcn.14009aba0
mov edx, dword [rsp + 0x30]
mov eax, dword [rdi + 8]
movsxd r12, dword [r12]
mov dword [rsp + 0x3c], r12d
test eax, eax
jne 0x14009adda
mov eax, dword [rbx + 0x54]
inc eax
mov dword [rdi + 8], eax
add dword [rbx + 0x54], r12d
jmp 0x14009adeb
mov ecx, dword [rbx + 0x54]
add eax, r12d
cmp eax, ecx
jle 0x14009adeb
lea eax, [rcx + r12]
mov dword [rbx + 0x54], eax
mov r15d, dword [rdi + 8]
mov dword [rdi + 0xc], r12d
mov dword [rsp + 0x38], r15d
test r13d, r13d
js 0x14009ae79
mov edi, esi
test r12d, r12d
jle 0x14009ae32
nop dword [rax]
nop dword [rax + rax]
lea eax, [rdi + r15]
mov r9d, edi
mov r8d, r13d
mov edx, 0x2e
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.1400608a0
inc edi
cmp edi, r12d
jl 0x14009ae10
mov r13, qword [rsp + 0xc0]
cmp dword [rsp + 0xd8], esi
je 0x14009b095
movzx ecx, byte [rbp + 1]
dec ecx
je 0x14009b05e
dec ecx
je 0x14009aea2
mov edi, dword [rsp + 0xe8]
mov edx, dword [rbp + 4]
mov r9d, r12d
mov rcx, rbx
mov r8d, edi
mov dword [rsp + 0x20], r15d
call fcn.14009ac40
jmp 0x14009b070
cmp edx, 3
je 0x14009ae32
mov r13, qword [rsp + 0xc0]
lea eax, [rdx - 9]
mov r8d, r15d
test eax, 0xfffffffb
mov rdx, r13
mov rcx, rbx
sete r9b
call fcn.1400784f0
jmp 0x14009ae3a
mov eax, dword [rbx + 0x54]
mov rcx, r14
lea edi, [rax + 1]
add eax, r12d
mov dword [rbx + 0x54], eax
mov edx, dword [rbp + 8]
mov dword [rsp + 0xd8], edi
call fcn.140060fc0
mov ecx, dword [rbp + 8]
test ecx, ecx
jns 0x14009aecd
mov ecx, dword [r14 + 0x3c]
dec ecx
mov rax, qword [r14]
cmp byte [rax + 0x50], sil
je 0x14009aedf
lea rax, [0x140183868]
jmp 0x14009aeee
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov byte [rax], 0x1c
mov dword [rax + 4], 1
mov dword [rax + 8], edi
mov eax, dword [r14 + 0x3c]
add eax, r12d
mov dword [rsp + 0x34], eax
test r12d, r12d
jle 0x14009b040
lea eax, [r12 - 1]
mov ebp, r15d
mov rdi, rsi
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xd8]
mov qword [rsp + 0x48], rsi
sub eax, r15d
mov dword [rsp + 0x44], eax
mov eax, r15d
mov r15d, dword [rsp + 0x44]
neg eax
mov dword [rsp + 0x40], eax
nop
mov rdx, qword [r13 + 8]
mov rcx, rbx
mov rdx, qword [rdi + rdx]
call fcn.140073470
mov ecx, dword [rsp + 0x40]
mov r8d, ebp
add ecx, ebp
mov r13, rax
cmp ecx, dword [rsp + 0x50]
jge 0x14009af76
mov r9d, dword [rsp + 0x34]
lea ecx, [r15 + rbp]
mov edx, 0x4e
mov dword [rsp + 0x20], ecx
jmp 0x14009af8b
mov r9d, dword [rsp + 0xe8]
lea eax, [r15 + rbp]
mov edx, 0x4f
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.1400608a0
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
test r8, r8
je 0x14009aff0
cmp byte [rcx + 0x50], sil
jne 0x14009aff0
mov eax, dword [r14 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140060e70
mov qword [rdi + 0x10], rsi
test r13, r13
jne 0x14009afdc
mov qword [rdi + 0x10], rsi
mov byte [rdi + 1], sil
mov rdi, qword [rsp + 0x48]
jmp 0x14009affd
mov qword [rdi + 0x10], r13
mov byte [rdi + 1], 0xfc
mov rdi, qword [rsp + 0x48]
jmp 0x14009affd
mov r8, r13
mov edx, 0xfffffffc
call fcn.140060e70
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14009b013
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x80
mov r13, qword [rsp + 0xc0]
add rdi, 0x28
inc ebp
mov qword [rsp + 0x48], rdi
dec r12
jne 0x14009af40
mov r15d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x3c]
mov edi, dword [rsp + 0xd8]
lea eax, [r12 - 1]
mov r9d, edi
mov r8d, r15d
mov edx, 0x21
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.1400608a0
jmp 0x14009b069
mov edx, dword [rbp + 8]
mov rcx, r14
call fcn.140060fc0
mov edi, dword [rsp + 0xe8]
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xb8]
test r13, r13
jne 0x14009b0a5
mov edx, dword [rbp + 0x10]
mov r8d, edi
mov rcx, r14
call fcn.14009aba0
jmp 0x14009b0a5
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xb8]
mov r8d, dword [rsp + 0x30]
lea eax, [r8 - 1]
cmp eax, 0xd
ja case.0x14009b0ca.4
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x9b830]
add rcx, rdx
jmp rcx
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14009b0dc
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x14009b0e8
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, r12d
mov r8d, r15d
mov edx, 0x30
mov rcx, r14
mov dword [rsp + 0x20], edi
call fcn.1400608a0
mov r8d, dword [rsp + 0xc8]
mov r9d, edi
mov edx, 0x6b
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
test edi, edi
je case.0x14009b0ca.4
movzx ecx, byte [rbx + 0x1f]
cmp cl, 8
jae case.0x14009b0ca.4
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x14009b156
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x14009b137
movzx eax, cl
mov dword [rbx + rax*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp case.0x14009b0ca.4
mov byte [rax + 6], 1
jmp case.0x14009b0ca.4
mov r8d, dword [rsp + 0xc8]
mov r9d, r15d
mov edx, 0x6c
mov rcx, r14
mov dword [rsp + 0x20], r12d
call fcn.1400608a0
jmp case.0x14009b0ca.4
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14009b191
inc dword [rbx + 0x54]
mov ebp, dword [rbx + 0x54]
jmp 0x14009b19d
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ebp, dword [rbx + rax*4 + 0x24]
mov r9d, r12d
mov r8d, r15d
mov edx, 0x30
mov rcx, r14
mov dword [rsp + 0x20], ebp
call fcn.1400608a0
cmp dword [rsp + 0x30], 6
mov r15d, dword [rsp + 0xc8]
jne 0x14009b1fc
mov r9d, dword [r14 + 0x3c]
lea r8d, [r15 + 1]
mov edx, 0x42
mov rcx, r14
add r9d, 4
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call fcn.140060a80
lea r8d, [r15 + 1]
mov r9d, ebp
mov edx, 0x6b
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
test r13, r13
je 0x14009b21f
mov rdi, qword [rsp + 0xb8]
mov r9d, ebp
mov rdx, r13
mov r8, rdi
mov rcx, rbx
call fcn.14009a7b0
jmp 0x14009b2bd
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14009b22f
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x14009b23b
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, edi
mov r8d, r15d
mov edx, 0x45
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
mov r9d, ebp
mov r8d, r15d
mov edx, 0x46
mov rcx, r14
mov dword [rsp + 0x20], edi
call fcn.1400608a0
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14009b27f
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
test edi, edi
je 0x14009b2b5
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x14009b2b5
mov ecx, esi
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x14009b2b1
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14009b295
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x14009b2b5
mov byte [rax + 6], 1
mov rdi, qword [rsp + 0xb8]
test ebp, ebp
je 0x14009b7ec
movzx ecx, byte [rbx + 0x1f]
cmp cl, 8
jae 0x14009b7ec
lea rax, [rbx + 0x88]
nop dword [rax]
cmp dword [rax + 0xc], ebp
je 0x14009b2ff
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x14009b2e0
movzx eax, cl
mov dword [rbx + rax*4 + 0x24], ebp
inc byte [rbx + 0x1f]
jmp 0x14009b7ec
mov byte [rax + 6], 1
jmp 0x14009b7ec
mov r12, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xe0]
mov rax, qword [r12 + 8]
movzx edi, byte [rbp + 1]
inc rbp
mov rcx, qword [rax]
call fcn.140073240
test al, al
je 0x14009b347
test dil, dil
je 0x14009b350
cmp al, 0x63
jge 0x14009b343
cmp dil, 0x63
jge 0x14009b343
mov al, 0x62
jmp 0x14009b353
mov al, 0x63
jmp 0x14009b353
test dil, dil
jne 0x14009b350
mov al, 0x62
jmp 0x14009b353
add al, dil
mov byte [rbp], al
test r13, r13
je 0x14009b379
mov rdi, qword [rsp + 0xb8]
mov r9d, r15d
mov rdx, r13
mov r8, rdi
mov rcx, rbx
call fcn.14009a7b0
jmp 0x14009b7ec
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14009b38a
inc dword [rbx + 0x54]
mov r12d, dword [rbx + 0x54]
jmp 0x14009b397
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r12d, dword [rbx + rax*4 + 0x24]
mov r9d, 1
mov r8d, r15d
mov rcx, r14
lea edx, [r9 + 0x2f]
mov dword [rsp + 0x20], r12d
call fcn.1400608a0
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
test r8, r8
je 0x14009b41b
cmp byte [rcx + 0x50], sil
jne 0x14009b41b
test eax, eax
jns 0x14009b3cd
mov eax, dword [r14 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140060e70
mov qword [rdi + 0x10], rsi
test rbp, rbp
jne 0x14009b400
mov qword [rdi + 0x10], rsi
mov byte [rdi + 1], sil
jmp 0x14009b428
mov rcx, qword [r14]
mov r8d, 1
mov rdx, rbp
call fcn.140041040
mov byte [rdi + 1], 0xff
mov qword [rdi + 0x10], rax
jmp 0x14009b428
mov r8, rbp
mov edx, 1
call fcn.140060e70
mov r8d, 1
mov edx, r15d
mov rcx, rbx
call fcn.140076940
mov r8d, dword [rsp + 0xc8]
mov r9d, r12d
mov edx, 0x6b
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
mov edx, r12d
mov rcx, rbx
call fcn.140079840
mov rdi, qword [rsp + 0xb8]
jmp 0x14009b7f9
mov r9d, dword [rsp + 0xc8]
mov edx, 0x19
mov rcx, r14
lea r8d, [rdx - 0x18]
mov dword [rsp + 0x20], esi
call fcn.1400608a0
jmp case.0x14009b0ca.4
mov rcx, rbx
test r13, r13
je 0x14009b4aa
mov r9d, r15d
mov r8, rbp
mov rdx, r13
call fcn.14009a7b0
jmp case.0x14009b0ca.4
mov r8d, dword [rsp + 0xc8]
mov r9d, 1
mov edx, r15d
call fcn.140076cb0
mov rdi, qword [rsp + 0xb8]
jmp 0x14009b7f9
test r13, r13
je 0x14009b559
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x14009b4e6
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x14009b4f2
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, r12d
mov r8d, r15d
mov edx, 0x30
mov rcx, r14
mov dword [rsp + 0x20], edi
call fcn.1400608a0
mov r9d, edi
mov r8, rbp
mov rdx, r13
mov rcx, rbx
call fcn.14009a7b0
test edi, edi
je case.0x14009b0ca.4
movzx ecx, byte [rbx + 0x1f]
cmp cl, 8
jae case.0x14009b0ca.4
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x14009b156
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x14009b536
movzx eax, cl
mov dword [rbx + rax*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp case.0x14009b0ca.4
mov dword [rsp + 0x20], esi
mov rcx, r14
cmp r8d, 0xd
jne 0x14009b58b
mov rax, qword [rsp + 0xe0]
xor r9d, r9d
mov r8d, dword [rax + 4]
lea edx, [r9 + 0x16]
call fcn.1400608a0
mov rdi, qword [rsp + 0xb8]
jmp 0x14009b7f9
mov r9d, r12d
mov r8d, r15d
mov edx, 0x23
call fcn.1400608a0
mov r8d, r12d
mov edx, r15d
mov rcx, rbx
call fcn.140076940
mov rdi, qword [rsp + 0xb8]
jmp 0x14009b7f9
mov rax, qword [rsp + 0xe0]
mov dword [rsp + 0xd8], esi
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x58], rax
mov edx, dword [rax]
movzx eax, byte [rbx + 0x1f]
mov dword [rsp + 0x3c], edx
test al, al
jne 0x14009b5e5
inc dword [rbx + 0x54]
mov r13d, dword [rbx + 0x54]
jmp 0x14009b5f2
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r13d, dword [rbx + rax*4 + 0x24]
mov ecx, dword [rbx + 0x44]
mov ebp, dword [rbx + 0x48]
lea edi, [rdx + 2]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0xe0], ebp
cmp edi, ecx
jg 0x14009b617
lea eax, [rdi + rbp]
sub ecx, edi
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x14009b629
mov eax, dword [rbx + 0x54]
lea ebp, [rax + 1]
add eax, edi
mov dword [rsp + 0xe0], ebp
mov dword [rbx + 0x54], eax
lea eax, [rdx + rbp]
mov dword [rsp + 0x34], eax
inc eax
mov dword [rsp + 0xc0], eax
cmp r8d, 8
jne 0x14009b671
mov r8d, dword [rsp + 0xc8]
xor r9d, r9d
mov rcx, r14
lea edx, [r9 + 0x42]
inc r8d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r15d
call fcn.140060a80
mov dword [rsp + 0xd8], eax
mov eax, dword [rsp + 0xc0]
mov r9d, r12d
mov r8d, r15d
mov edx, 0x30
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.1400608a0
cmp dword [rsp + 0x30], 8
jne 0x14009b6c9
mov r8d, dword [rsp + 0xc8]
mov r9d, dword [rsp + 0xc0]
mov edx, 0x6b
mov rcx, r14
inc r8d
mov dword [rsp + 0x20], esi
call fcn.1400608a0
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14009b6c9
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
movsxd r12, dword [rsp + 0x3c]
test r12, r12
jle 0x14009b722
mov rbx, qword [rsp + 0x58]
mov rdi, rsi
nop dword [rax + rax]
mov rax, qword [rbx + 8]
mov r9d, ebp
mov edx, 0x22
movzx r8d, word [rdi + rax + 0x20]
mov rcx, r14
mov dword [rsp + 0x20], esi
dec r8d
add r8d, r15d
call fcn.1400608a0
inc ebp
lea rdi, [rdi + 0x28]
dec r12
jne 0x14009b6e0
mov rbx, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0xe0]
mov edi, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x34]
mov r8d, dword [rsp + 0xc8]
mov edx, 0x44
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
mov r9d, edi
mov r8d, ebp
mov edx, 0x30
mov rcx, r14
mov dword [rsp + 0x20], r13d
call fcn.1400608a0
mov r8d, dword [rsp + 0xc8]
mov r9d, r13d
mov edx, 0x6b
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.1400608a0
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x14009b7a0
mov edx, dword [r14 + 0x3c]
cmp edx, eax
jbe 0x14009b793
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
test r13d, r13d
je 0x14009b7d7
movzx ecx, byte [rbx + 0x1f]
cmp cl, 8
jae 0x14009b7d7
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], r13d
je 0x14009b7d3
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x14009b7b5
movzx eax, cl
mov dword [rbx + rax*4 + 0x24], r13d
inc byte [rbx + 0x1f]
jmp 0x14009b7d7
mov byte [rax + 6], 1
mov r8d, edi
mov edx, ebp
mov rcx, rbx
call fcn.140079890
mov rdi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
jne 0x14009b81f
mov r8d, dword [rdi + 0xc]
test r8d, r8d
je 0x14009b81f
mov r9d, dword [rsp + 0xf0]
mov edx, 0x88
mov rcx, r14
mov dword [rsp + 0x20], 0xffffffff
call fcn.1400608a0
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret