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

Disassembly:
mov word [rsp + 0x20], r9w
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, 0xa8
movzx eax, word [rsp + 0x110]
xor r15d, r15d
mov rbp, r8
mov r10, rdx
mov r11, rcx
mov r14d, r15d
mov r12d, r15d
test ax, ax
je 0x140220568
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x5c], 0x40
jne 0x140220cba
mov r10, qword [rsp + 0xf8]
movzx eax, word [rsp + 0x110]
movzx esi, word [r10]
mov word [rsp + 0x62], si
cmp esi, 0x3f
ja 0x140220cba
mov ecx, esi
mov dword [rsp + 0x4c], esi
mov r8d, r15d
mov byte [rsp + 0x34], 1
mov r13d, esi
mov qword [rsp + 0x80], r15
mov esi, 1
mov qword [rsp + 0x50], r15
mov ebx, esi
mov dword [rsp + 0x68], 0x800
shl rbx, cl
mov rdx, r15
dec rbx
mov qword [rsp + 0x90], rdx
mov ecx, 0x803
mov qword [rsp + 0x88], rbx
test cx, r9w
mov dword [rsp + 0x6c], 0x80
mov ecx, r15d
mov dword [rsp + 0x70], 0x180
setne r8b
mov dword [rsp + 0x48], ecx
add r8w, 0x182
mov dword [rsp + 0x64], 0xffffffff
mov dword [rsp + 0x38], r8d
mov rdi, r15
nop word [rax + rax]
cmp r12, rbx
jae 0x140220c73
movzx eax, ax
cmp ecx, eax
jg 0x140220c88
test ecx, ecx
jle 0x140220621
or rdi, qword [r14 + 8]
mov qword [rsp + 0x50], rdi
cmp ecx, eax
jge 0x140220642
mov rax, qword [rbp + 0x18]
mov r14, qword [rax + rdx*8]
mov eax, dword [rsp + 0x68]
mov qword [rsp + 0x58], r14
test ax, r9w
jne 0x140220c47
jmp 0x14022064f
mov r14, qword [rsp + 0x118]
mov qword [rsp + 0x58], r14
test dword [r14 + 0x28], 0x400
jne 0x140220c7c
movzx eax, r9w
and ax, word [rsp + 0x6c]
mov word [rsp + 0x60], ax
je 0x140220672
mov word [r14 + 0x1e], r15w
movzx eax, byte [r14 + 0x10]
mov ebp, r15d
imul rcx, rax, 0x70
mov rax, qword [r11 + 8]
mov edx, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x3c], edx
test r13d, r13d
je 0x1402207b0
mov r15, qword [rsp + 0x58]
nop dword [rax + rax]
mov eax, ebp
bt r12, rax
jb 0x14022079d
mov esi, ebp
shl rsi, 5
add rsi, r10
mov r14d, ebp
mov rcx, qword [rsi + 8]
call fcn.1401ec030
mov rbx, rax
cmp byte [rax], 0xa4
jne 0x14022079d
cmp dword [rax + 0x2c], edx
jne 0x14022079d
movzx eax, r8w
lea rcx, [r11 + 0x68]
movsx r8d, word [rbx + 0x30]
mov r9, rdi
not r9
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call fcn.140213030
mov rdi, rax
test rax, rax
je 0x14022077f
movzx r9d, word [rax + 0x14]
cmp r9w, 1
jne 0x140220735
movzx r8d, word [r15 + 0x2c]
xor eax, eax
test r8d, r8d
je 0x140220730
mov rdx, qword [r15 + 0x38]
nop
movsxd rcx, eax
cmp rdi, qword [rdx + rcx*8]
je 0x140220730
inc eax
cmp eax, r8d
jl 0x140220720
cmp eax, r8d
jge 0x14022077f
test r9b, 0x82
je 0x14022077b
cmp word [rbx + 0x30], 0
jl 0x14022077b
mov rbx, qword [rsp + 0xf0]
mov rdx, qword [rsi + 8]
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.1401ebde0
mov rdx, qword [rdi]
mov rcx, rbx
mov rsi, rax
call fcn.1401eaa60
test rax, rax
je 0x14022077f
mov rdx, qword [rax]
mov rcx, qword [rsi]
call fcn.1401ffef0
test eax, eax
jne 0x14022077f
bts r12, r14
mov edx, dword [rsp + 0x3c]
mov r10, qword [rsp + 0xf8]
mov r11, qword [rsp + 0xf0]
mov r8d, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x50]
inc ebp
cmp ebp, r13d
jl 0x1402206a0
mov r14, r15
mov esi, 1
mov eax, dword [r14 + 0x28]
bt eax, 0xc
jb 0x140220b6c
bt eax, 8
jae 0x1402207de
mov ebp, dword [rsp + 0x34]
xor r8d, r8d
mov r11d, r8d
mov qword [rsp + 0x78], r8
mov word [rsp + 0x44], r8w
movzx ecx, si
jmp 0x140220826
mov r11, qword [r14 + 0x20]
mov qword [rsp + 0x78], r11
test r11, r11
je 0x140220cba
test byte [r11 + 0x64], 4
jne 0x140220cba
cmp byte [r11 + 0x62], 0
movzx ecx, word [r11 + 0x5e]
mov word [rsp + 0x44], cx
movzx ecx, word [r11 + 0x60]
je 0x14022081c
bt eax, 0xf
jb 0x14022081c
mov bpl, 1
jmp 0x14022081f
xor bpl, bpl
xor r8d, r8d
mov dword [rsp + 0x34], ebp
xor al, al
xor dl, dl
xor dil, dil
mov byte [rsp + 0x32], al
movzx eax, cx
mov r13d, r8d
mov byte [rsp + 0x31], dl
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x74], eax
test eax, eax
je 0x140220b67
nop dword [rax + rax]
movzx r9d, word [r14 + 0x18]
mov bl, 1
cmp r13d, r9d
jge 0x1402208ca
movzx eax, word [r14 + 0x2e]
cmp r13d, eax
jl 0x1402208ca
mov r8, qword [r14 + 0x38]
movsxd rax, r13d
mov r10, qword [r8 + rax*8]
movzx eax, word [r10 + 0x14]
test word [rsp + 0x38], ax
je 0x1402208a0
mov ecx, dword [rsp + 0x70]
mov r8d, 0
test cx, ax
movzx eax, bpl
mov ecx, r8d
cmove ecx, eax
movzx ebp, cl
mov dword [rsp + 0x34], ebp
jmp 0x140220b54
test bl, al
je 0x1402208c7
mov r10, qword [r10]
lea edx, [r13 + 1]
cmp edx, r9d
jge 0x1402208c7
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r10
je 0x1402208c5
inc edx
cmp edx, r9d
jl 0x1402208b0
jmp 0x1402208c7
xor bl, bl
xor r8d, r8d
test r11, r11
je 0x1402208fd
mov rax, qword [r11 + 8]
movsxd rcx, r13d
movsx r15d, word [rax + rcx*2]
mov rax, qword [r11 + 0x38]
movzx edx, byte [rcx + rax]
mov rax, qword [r11 + 0x18]
and dl, 1
mov byte [rsp + 0x30], dl
movsx ecx, word [rax + 0x44]
cmp r15d, ecx
cmove r15d, dword [rsp + 0x64]
jmp 0x140220907
mov r15d, dword [rsp + 0x64]
mov byte [rsp + 0x30], 0
test bpl, bpl
je 0x140220936
test r15d, r15d
js 0x140220936
cmp r13d, r9d
jl 0x140220936
mov rax, qword [r11 + 0x18]
movzx ebp, bpl
mov rcx, qword [rax + 8]
movsxd rax, r15d
shl rax, 5
cmp byte [rax + rcx + 0x18], 0
cmove ebp, r8d
mov dword [rsp + 0x34], ebp
mov esi, r8d
test bl, bl
je 0x140220ab6
cmp esi, dword [rsp + 0x4c]
jge 0x140220aad
mov eax, esi
bt r12, rax
jb 0x140220aa3
mov r10, qword [rsp + 0xf8]
movsxd r14, esi
shl r14, 5
add r14, r10
mov rcx, qword [r14 + 8]
call fcn.1401ec030
movzx edx, word [rsp + 0x108]
mov r9, rax
test dl, 0xc0
movzx eax, bl
mov ecx, r8d
cmovne ecx, eax
movzx ebx, cl
movzx ebp, cl
cmp r15d, 0xffffffff
jl 0x1402209c6
cmp byte [r9], 0xa4
jne 0x140220aa3
mov eax, dword [rsp + 0x3c]
cmp dword [r9 + 0x2c], eax
jne 0x140220aa3
movsx eax, word [r9 + 0x30]
cmp eax, r15d
jne 0x140220aa3
movsxd rdi, r13d
cmp r15d, 0xffffffff
je 0x140220a33
jmp 0x1402209ee
mov rax, qword [r11 + 0x50]
mov r8d, dword [rsp + 0x3c]
movsxd rdi, r13d
mov rcx, rdi
shl rcx, 5
mov rdx, qword [rcx + rax + 8]
mov rcx, r9
call fcn.1401eaa90
test eax, eax
jne 0x140220a9b
mov rax, qword [rsp + 0xf0]
mov rdx, qword [r14 + 8]
mov rcx, qword [rax]
call fcn.1401ebde0
mov r11, qword [rsp + 0x78]
movzx ebx, bpl
mov rcx, qword [rax]
mov rdx, qword [r11 + 0x40]
mov rdx, qword [rdx + rdi*8]
call fcn.1401ffef0
test eax, eax
jne 0x140220aa0
mov r10, qword [rsp + 0xf8]
movzx edx, word [rsp + 0x108]
cmp word [rsp + 0x60], 0
mov r14, qword [rsp + 0x58]
je 0x140220a49
lea eax, [r13 + 1]
mov word [r14 + 0x1e], ax
mov r9b, 1
test dl, 0x40
jne 0x140220b0d
movzx ebp, byte [rsp + 0x32]
movsxd rax, esi
shl rax, 5
movzx edx, byte [rax + r10 + 0x18]
and dl, r9b
test bpl, bpl
je 0x140220ae7
movzx edi, byte [rsp + 0x31]
xor eax, eax
movzx r8d, byte [rsp + 0x30]
mov ecx, eax
xor r8b, dil
movzx eax, r9b
cmp r8b, dl
mov byte [rsp + 0x31], dil
mov byte [rsp + 0x32], bpl
cmove ecx, eax
test cl, cl
je 0x140220ab2
jmp 0x140220b0d
mov r11, qword [rsp + 0x78]
xor r8d, r8d
inc esi
test bl, bl
jne 0x140220941
mov r14, qword [rsp + 0x58]
mov edi, dword [rsp + 0x40]
test r13d, r13d
je 0x140220ac5
movzx eax, word [rsp + 0x44]
cmp r13d, eax
jge 0x140220aca
mov byte [rsp + 0x34], 0
mov esi, 1
mov r13d, dword [rsp + 0x4c]
test dil, dil
je 0x140220b6c
mov byte [rsp + 0x34], 1
jmp 0x140220b77
xor dl, byte [rsp + 0x30]
mov byte [rsp + 0x31], dl
je 0x140220b08
mov rdx, qword [rsp + 0x120]
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x32], r9b
movsxd rcx, esi
mov rax, rcx
shl rax, 5
test byte [rax + r10 + 0x18], 2
je 0x140220b31
movzx eax, word [r14 + 0x18]
cmp r13d, eax
jne 0x140220ab2
or dword [r14 + 0x28], 0x80000
mov edi, dword [rsp + 0x40]
cmp r15d, 0xffffffff
mov ebp, dword [rsp + 0x34]
mov esi, 1
movzx edi, dil
cmove edi, esi
bts r12, rcx
xor r8d, r8d
mov dword [rsp + 0x40], edi
inc r13d
cmp r13d, dword [rsp + 0x74]
jl 0x140220850
jmp 0x140220acf
mov r13d, dword [rsp + 0x4c]
cmp byte [rsp + 0x34], 0
je 0x140220c0d
mov rax, qword [rsp + 0x80]
xor r15d, r15d
or rax, qword [r14 + 8]
mov ebx, r15d
mov qword [rsp + 0x80], rax
test r13d, r13d
je 0x140220c10
mov r15, qword [rsp + 0xf8]
mov r14, qword [rsp + 0xf0]
nop word [rax + rax]
mov eax, ebx
bt r12, rax
jb 0x140220bfc
mov eax, ebx
lea rcx, [r14 + 0x290]
shl rax, 5
mov ebp, ebx
mov rdi, qword [rax + r15 + 8]
mov rdx, rdi
call fcn.140212f00
mov rsi, rax
test rax, rax
jne 0x140220be8
mov rcx, rdi
call fcn.1401eb700
test eax, eax
je 0x140220bfc
mov rax, qword [rsp + 0x80]
not rax
test rsi, rax
jne 0x140220bfc
bts r12, rbp
inc ebx
cmp ebx, r13d
jl 0x140220bb0
mov r14, qword [rsp + 0x58]
mov esi, 1
xor r15d, r15d
mov r10, qword [rsp + 0xf8]
mov r11, qword [rsp + 0xf0]
movzx r9d, word [rsp + 0x108]
mov ecx, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x100]
inc qword [rsp + 0x90]
inc ecx
cmp byte [rsp + 0x34], 0
mov rdx, qword [rsp + 0x90]
movzx eax, word [rsp + 0x110]
mov dword [rsp + 0x48], ecx
jne 0x140220600
cmp r12, rbx
jne 0x140220c88
movzx eax, byte [rsp + 0x62]
jmp 0x140220cbc
cmp byte [r14 + 0x1d], 0
je 0x140220c88
test r9b, r9b
jns 0x140220c75
cmp byte [rsp + 0x34], 0
jne 0x140220cd5
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x140220cba
nop word [rax + rax]
mov rdx, rsi
shl rdx, cl
dec rdx
mov rax, rdx
and rax, r12
cmp rax, rdx
je 0x140220cd0
dec ecx
test ecx, ecx
jg 0x140220ca0
xor al, al
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, cl
jmp 0x140220cbc
mov al, 0xff
jmp 0x140220cbc