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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x118
mov rax, qword [0x1402fe828]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
xor r10d, r10d
mov rbx, qword [rcx + 0x10]
mov rsi, r8
movzx r13d, r9w
mov word [rsp + 0x30], r9w
mov r8, rdx
mov qword [rsp + 0x78], rdx
mov rax, qword [rax]
mov r12, rcx
mov qword [rsp + 0x70], rax
mov ebp, r10d
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x68], r10
mov r15, qword [rax]
mov qword [rsp + 0x48], r15
cmp byte [r15 + 0x67], r10b
je 0x14022aa7c
lea eax, [r10 + 7]
jmp 0x14022b40d
mov eax, dword [rbx + 0x38]
movzx edi, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, edi
mov dword [rsp + 0x60], eax
and al, 0x20
neg al
mov qword [rsp + 0x28], rsi
movzx eax, word [rbx + 0x1a]
mov word [rsp + 0x40], ax
sbb edx, edx
movzx eax, word [rbx + 0x1c]
and edx, 0xfffffe59
mov word [rsp + 0x42], ax
add edx, 0x1bf
movzx eax, word [rbx + 0x3e]
mov ecx, edx
mov word [rsp + 0x46], ax
and ecx, 0xffffffc3
movzx eax, word [rbx + 0x3c]
mov word [rsp + 0x44], ax
mov rax, qword [rbx]
mov qword [rsp + 0x88], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x32], ax
mov eax, dword [rsi + 0x64]
and al, 4
mov word [rsp + 0x3a], di
mov dword [rsp + 0x3c], edi
cmove ecx, edx
mov rdx, qword [r12 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x90]
call fcn.14022e38c
xor r11d, r11d
mov r14, rax
mov word [rbx + 0x12], r11w
mov rax, qword [rsi + 0x10]
lea ecx, [r11 + 0xa]
movsx rax, word [rax]
mov word [rsp + 0x58], ax
cmp ax, cx
jg 0x14022ab32
mov word [rsp + 0x38], r11w
jmp 0x14022ab43
mov rcx, rax
call fcn.1401fc5b0
sub ax, 0x21
mov word [rsp + 0x38], ax
mov edx, 2
mov ecx, 0x100
lea r8d, [rdx + 0xe]
lea r9d, [rdx - 1]
test r14, r14
je 0x14022b2d9
movzx r13d, word [r14 + 0x14]
mov eax, dword [r12 + 0x28]
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x80], eax
cmp r13w, cx
je 0x14022ab81
test byte [r14 + 0x12], 0x80
je 0x14022abc5
mov rax, qword [rsi + 8]
movzx ecx, di
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x14022abb0
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test byte [rax + rcx*8 + 8], 0xf
jne 0x14022b279
mov edx, 2
jmp 0x14022abba
cmp r8d, 0xffffffff
je 0x14022b279
mov r8d, 0x10
mov ecx, 0x100
mov rax, qword [rbx + 8]
test qword [r14 + 0x28], rax
jne 0x14022b279
test word [r14 + 0x12], cx
je 0x14022abe4
cmp r13w, r8w
je 0x14022b279
mov rax, qword [rsp + 0x78]
test byte [rax + 0x3c], 0x58
je 0x14022ac08
mov rcx, qword [r14]
test byte [rcx + 4], 3
je 0x14022b279
mov eax, dword [rax + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x14022b279
cmp byte [rsi + 0x62], r11b
je 0x14022ac23
movzx eax, word [rsi + 0x5e]
sub eax, r9d
movzx ecx, di
cmp ecx, eax
jne 0x14022ac23
or byte [r12 + 0x2c], dl
jmp 0x14022ac28
or byte [r12 + 0x2c], r9b
mov eax, dword [rsp + 0x60]
mov rdx, rbx
mov dword [rbx + 0x38], eax
mov rcx, r15
movzx eax, word [rsp + 0x40]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x44]
mov word [rbx + 0x18], di
mov word [rbx + 0x3c], ax
lea r8d, [r9 + rax]
call fcn.14022c740
xor r11d, r11d
test eax, eax
jne 0x14022b2cd
movzx ecx, word [rbx + 0x3c]
lea r10d, [r11 + 1]
mov rax, qword [rbx + 0x48]
movzx r15d, r13w
mov qword [rax + rcx*8], r14
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0x88]
add dx, r10w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r14 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r15w, r10w
je 0x14022adb8
mov r8, qword [r14]
test dword [r8 + 4], 0x1000
je 0x14022acf3
movzx ecx, dx
lea r10d, [r11 + 0x2e]
dec ecx
mov dword [rsp + 0x34], r10d
test ecx, ecx
jle 0x14022ad14
mov rax, qword [rbx + 0x48]
lea r9d, [r11 + 1]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x14022ace3
cmp qword [rcx], r8
cmove r10d, r11d
add rax, 8
sub rdx, r9
jne 0x14022acd4
mov dword [rsp + 0x34], r10d
jmp 0x14022ad14
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x14022ad0f
cmp dword [rax], r11d
je 0x14022ad0f
movsxd rcx, dword [rax]
call fcn.1401fc5b0
movsx r10d, ax
jmp 0x14022acec
mov r10d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x14022ad97
movzx r11d, word [rsp + 0x38]
mov edx, 0xa
cmp r11w, dx
jl 0x14022ad94
mov rax, qword [rsi + 0x10]
movzx ecx, di
movzx r9d, word [rax + rcx*2]
cmp r10w, dx
jg 0x14022ad44
xor edx, edx
movzx eax, dx
jmp 0x14022ad51
movsx rcx, r10w
call fcn.1401fc5b0
sub ax, 0x21
sub ax, r10w
sub ax, r11w
add ax, r9w
movzx r9d, word [rsp + 0x30]
add ax, 0xa
jns 0x14022ad8f
mov eax, 2
cmp r9w, ax
jge 0x14022b273
mov rcx, qword [rsp + 0x48]
test dword [rcx + 0x60], 0x20000
jne 0x14022b26a
bts dword [rbx + 0x38], 0x14
xor r11d, r11d
jmp 0x14022ad9d
xor r11d, r11d
movzx r9d, word [rsp + 0x30]
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
jmp 0x14022af7f
test r13b, 0x82
je 0x14022ae45
mov rax, qword [rsi + 8]
movzx r9d, word [rsp + 0x30]
movzx ecx, di
movsx r8d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r10d
mov dword [rbx + 0x38], ecx
cmp r8d, 0xffffffff
je 0x14022ae2c
mov edx, ecx
test r8d, r8d
js 0x14022ae35
test r9w, r9w
jne 0x14022ae35
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
sub eax, r10d
movzx r10d, di
cmp r10d, eax
mov r10d, 1
jne 0x14022ae35
test byte [rsi + 0x64], 8
jne 0x14022ae2c
cmp r8w, r10w
jne 0x14022ae26
cmp byte [rsi + 0x62], r11b
je 0x14022ae26
lea eax, [r10 + 1]
cmp r13w, ax
je 0x14022ae2c
bts edx, 0x10
jmp 0x14022ae32
mov edx, ecx
bts edx, 0xc
mov dword [rbx + 0x38], edx
cmp byte [rsp + 0xb9], r10b
jbe 0x14022ae5c
bts edx, 0x15
jmp 0x14022ae59
bt r13w, 8
mov edx, dword [rbx + 0x38]
jae 0x14022ae70
movzx r9d, word [rsp + 0x30]
or edx, 8
mov dword [rbx + 0x38], edx
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
jmp 0x14022af85
mov rax, qword [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], r14
test r13b, 0x24
je 0x14022af2d
mov edi, dword [rsp + 0x3c]
or edx, 0x22
mov rcx, qword [rsp + 0x70]
mov r9d, edi
mov dword [rbx + 0x38], edx
mov edx, dword [rax + 0x44]
call fcn.14022e1e8
mov word [rbx + 0x1a], ax
xor r11d, r11d
mov eax, 0x100
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x50], r11
test word [r14 + 0x12], ax
je 0x14022af0f
movzx r8d, word [rbx + 0x3c]
lea rax, [r14 + 0x38]
mov rcx, qword [rsp + 0x48]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x50], rax
call fcn.14022c740
xor r11d, r11d
test eax, eax
jne 0x14022b2ad
movzx ecx, word [rbx + 0x3c]
lea r10d, [r11 + 1]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x50]
mov qword [rax + rcx*8], rdx
lea eax, [r11 + 0x10]
add word [rbx + 0x3c], r10w
or dword [rbx + 0x38], eax
mov word [rbx + 0x1c], r10w
jmp 0x14022af15
mov r10d, 1
mov edx, dword [rbx + 0x38]
mov rcx, r14
movzx r9d, word [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
jmp 0x14022af85
mov rbp, qword [rsp + 0x70]
or edx, 0x12
mov r9d, dword [rsp + 0x3c]
mov rcx, rbp
mov dword [rbx + 0x38], edx
mov edx, dword [rax + 0x44]
call fcn.14022e1e8
mov edx, dword [rbx + 0x38]
xor r11d, r11d
movzx r9d, word [rsp + 0x30]
mov word [rbx + 0x1c], ax
mov rax, r14
mov qword [rsp + 0x50], rax
test dl, 0x20
je 0x14022af77
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r14
jmp 0x14022af7a
mov rcx, r11
mov qword [rsp + 0x68], rcx
mov r10d, 1
test dl, 2
je 0x14022afa9
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, rbp
mov r9, rax
mov rdx, r12
call fcn.14022dab0
movzx edi, word [rbx + 0x16]
jmp 0x14022b171
movzx eax, word [rbx + 0x18]
add ax, r10w
movzx edi, ax
mov word [rbx + 0x18], di
movzx edx, word [r14 + 0x10]
test dx, dx
jg 0x14022afe8
movzx ecx, word [rsp + 0x3a]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], r11w
jl 0x14022afe8
mov r14d, dword [rsp + 0x34]
sub dx, r14w
add word [rbx + 0x16], dx
movzx edi, word [rbx + 0x16]
jmp 0x14022b176
mov dword [rsp + 0x5c], r11d
test r9w, r9w
jne 0x14022b147
cmp dword [rsi + 0x68], r11d
je 0x14022b147
cmp edi, dword [rsi + 0x6c]
jg 0x14022b147
test r15w, r15w
je 0x14022b020
mov rax, qword [r14]
test dword [rax + 4], 0x1000
jne 0x14022b147
mov r15, qword [rsp + 0x48]
test dword [r15 + 0x60], 0x800
jne 0x14022b147
mov r8, qword [r14]
lea r9, [rsp + 0x5c]
mov eax, 0x182
mov rdx, r12
mov rcx, rbp
test ax, r13w
je 0x14022b057
mov r8, qword [r8 + 0x18]
call fcn.140229bbc
jmp 0x14022b060
mov r8, qword [r8 + 0x20]
call fcn.140229c80
xor r11d, r11d
cmp eax, 0xc
mov ebp, r11d
cmovne ebp, eax
test ebp, ebp
jne 0x14022b2bb
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x14022b147
lea r8d, [r11 + 0x28]
movzx ecx, r8w
cmp rax, 8
jae 0x14022b0ac
cmp rax, 2
jae 0x14022b09d
movzx ecx, r11w
lea eax, [rbp + 0xa]
jmp 0x14022b0ed
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x14022b09d
jmp 0x14022b0d7
mov edx, 0xff
jmp 0x14022b0bb
add cx, r8w
shr rax, 4
cmp rax, rdx
ja 0x14022b0b3
cmp rax, 0xf
jbe 0x14022b0d7
mov edx, 0xa
add cx, dx
shr rax, 1
cmp rax, 0xf
ja 0x14022b0cb
and eax, 7
lea rdx, [0x1402f9ea0]
add cx, word [rdx + rax*2]
mov eax, 0xa
sub cx, ax
mov r9d, 1
mov word [rbx + 0x16], cx
cmp di, r9w
jne 0x14022b129
movsx edx, cx
add edx, eax
mov rax, qword [rsi + 0x10]
movsx ecx, word [rax]
cmp edx, ecx
jle 0x14022b129
mov eax, 0x4000
or word [r14 + 0x12], ax
mov eax, 0x2000
test word [r14 + 0x12], ax
je 0x14022b129
or byte [r12 + 0x2d], 4
movzx edi, word [rbx + 0x16]
cmp di, word [rsp + 0x32]
mov r14d, dword [rsp + 0x34]
cmovg di, word [rsp + 0x32]
sub di, r14w
mov word [rbx + 0x16], di
jmp 0x14022b17c
mov rax, qword [rsi + 0x10]
mov rcx, rdi
movzx edi, word [rax + rdi*2]
sub di, word [rax + rcx*2 - 2]
add di, word [rbx + 0x16]
bt r13w, 8
mov word [rbx + 0x16], di
movzx eax, di
jae 0x14022b171
lea edi, [rax + 0xa]
mov word [rbx + 0x16], di
mov r14d, dword [rsp + 0x34]
mov r9d, 1
movsx eax, word [rsi + 0x5c]
mov r15, qword [rsp + 0x78]
imul eax, eax, 0xf
mov rcx, qword [r15 + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
movzx ecx, word [rsp + 0x38]
idiv r8d
lea edx, [rdi + rax]
add dx, r9w
call fcn.1401fc610
test dword [rbx + 0x38], 0x140
jne 0x14022b1be
mov edx, 0x10
movzx ecx, ax
add edx, edi
call fcn.1401fc610
movzx r13d, word [rsp + 0x30]
add ax, r14w
movzx r8d, word [rsp + 0x58]
add ax, r13w
mov word [rbx + 0x14], ax
mov rdx, rbx
lea eax, [r14 + rdi]
add ax, r13w
mov word [rbx + 0x16], ax
mov rcx, qword [r12 + 8]
call fcn.14022c58c
mov rdx, rbx
mov rcx, r12
call fcn.14022c3b4
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x32]
test r8b, dl
mov ebp, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x14022b249
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x14022b249
cmp cx, word [rsi + 0x5e]
jb 0x14022b237
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x14022b249
lea r9d, [r14 + r13]
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14022aa08
movzx ecx, word [rsp + 0x32]
mov eax, dword [rsp + 0x80]
movzx edi, word [rsp + 0x3a]
mov word [rbx + 0x16], cx
mov dword [r12 + 0x28], eax
mov r15, qword [rsp + 0x48]
jmp 0x14022b27f
movzx r13d, r9w
mov r15, rcx
jmp 0x14022b27f
movzx r13d, r9w
jmp 0x14022b263
movzx r13d, word [rsp + 0x30]
lea rcx, [rsp + 0x90]
call fcn.14022e480
xor r11d, r11d
mov r14, rax
mov ecx, 0x100
lea edx, [r11 + 2]
lea r9d, [r11 + 1]
lea r8d, [r11 + 0x10]
test ebp, ebp
je 0x14022ab55
jmp 0x14022b2d9
movzx r13d, word [rsp + 0x30]
mov r9d, 1
jmp 0x14022b2dd
movzx r13d, word [rsp + 0x30]
mov r9d, 1
mov edi, dword [rsp + 0x3c]
jmp 0x14022b2e2
movzx r13d, word [rsp + 0x30]
mov r9d, 1
mov edi, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x88]
movzx r14d, word [rsp + 0x3a]
movzx ecx, word [rsp + 0x46]
movzx edx, word [rsp + 0x44]
mov qword [rbx], rax
movzx eax, word [rsp + 0x40]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0x60]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], cx
mov word [rbx + 0x3c], dx
cmp r14w, cx
jne 0x14022b40b
movzx ecx, word [rsi + 0x5e]
lea eax, [rdi + 1]
cmp eax, ecx
jae 0x14022b40b
cmp r14w, dx
jne 0x14022b40b
test byte [rsi + 0x64], 0x40
jne 0x14022b40b
test byte [rsi + 0x64], 0x80
je 0x14022b40b
mov eax, 0x4000
test dword [r15 + 0x60], eax
jne 0x14022b40b
mov rax, qword [rsi + 0x10]
movsxd rdi, edi
cmp word [rax + rdi*2 + 2], 0x2a
jl 0x14022b40b
lea r8d, [r9 + rdx]
mov rcx, r15
mov rdx, rbx
call fcn.14022c740
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x14022b40b
movzx ecx, word [rbx + 0x3c]
lea r9d, [rax + 1]
add word [rbx + 0x18], r9w
mov r8, rsi
add word [rbx + 0x3e], r9w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
mov rcx, r12
add word [rbx + 0x3c], r9w
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x78]
movzx r10d, word [r9 + r14*2]
sub r10w, word [r9 + rdi*2 + 2]
sub word [rbx + 0x16], r10w
lea r9d, [r10 + r13]
add r9w, 5
call fcn.14022aa08
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x46]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x60]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x18], r14w
mov eax, ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1402358e0
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret