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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x6c], r9d
mov ebx, dword [rsp + 0x6c]
mov r15, rcx
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], r8
mov word [rsp + 0x64], bx
mov word [rsp + 0xac], ax
test ax, ax
je 0x14020c59b
mov rax, qword [rcx]
mov rax, qword [rax]
test byte [rax + 0x60], 0x40
je 0x14020c59b
xor eax, eax
jmp 0x14020cc9a
mov rax, qword [rsp + 0x108]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
cmp word [rsp + 0x50], 0x3f
ja 0x14020c594
movzx eax, word [rsp + 0x50]
mov cl, byte [rsp + 0x50]
mov bpl, 1
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x78], 0
mov dword [rsp + 0x54], eax
mov eax, 1
mov qword [rsp + 0x70], 0
shl rax, cl
mov qword [rsp + 0x30], 0
dec rax
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x6c]
and ax, 0x803
cmp ax, 1
sbb eax, eax
xor ebx, ebx
mov dword [rsp + 0x68], eax
add word [rsp + 0x68], 0x183
mov r12d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rdi
jae 0x14020cc26
test bpl, 1
je 0x14020cc26
movzx eax, word [rsp + 0xac]
mov edx, r12d
cmp eax, r12d
jl 0x14020cc22
test r12d, r12d
je 0x14020c657
mov rbx, qword [rbx + 8]
or qword [rsp + 0x78], rbx
cmp eax, edx
jle 0x14020c682
mov rax, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x40]
mov bpl, 1
mov rax, qword [rax + 0x18]
mov rbx, qword [rax + rbx*8]
test word [rsp + 0x64], 0x800
jne 0x14020cc18
jmp 0x14020c68a
mov rbx, qword [rsp + 0x128]
test byte [rbx + 0x39], 4
je 0x14020c6b8
cmp byte [rbx + 0x20], 0
mov al, 0xff
je 0x14020cc9a
mov r9d, dword [rsp + 0x6c]
and r9w, 0x280
cmp r9w, 0x80
jne 0x14020cc35
jmp 0x14020cc9a
mov eax, dword [rsp + 0x64]
and ax, 0x80
mov word [rsp + 0xa6], ax
je 0x14020c6d0
mov word [rbx + 0x1e], 0
movzx eax, byte [rbx + 0x10]
movzx r14d, word [rsp + 0x68]
xor edi, edi
lea r13, [r15 + 0x70]
imul rax, rax, 0x68
add rax, qword [r15 + 8]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x108]
add rax, 8
mov qword [rsp + 0x80], rax
mov rbp, rax
mov rax, qword [rsp + 0x78]
not rax
mov qword [rsp + 0x38], rax
cmp edi, dword [rsp + 0x54]
je 0x14020c820
mov rsi, qword [rsp + 0x30]
mov ecx, edi
shr rsi, cl
and esi, 1
jne 0x14020c815
mov rcx, qword [rbp]
call fcn.1401bfba0
mov r10, rax
test rax, rax
je 0x14020c815
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14020c815
mov eax, dword [rsp + 0x60]
cmp dword [r10 + 0x2c], eax
jne 0x14020c815
movsx r8d, word [r10 + 0x30]
mov dword [rsp + 0x20], r14d
mov edx, eax
mov rcx, r13
mov qword [rsp + 0x28], 0
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x48], r10
call fcn.1401f56e0
mov r8, rax
test rax, rax
je 0x14020c815
mov eax, dword [rax + 0x14]
mov r10, qword [rsp + 0x48]
cmp ax, 1
jne 0x14020c7ca
movzx edx, word [rbx + 0x3c]
cmp edx, esi
jle 0x14020c815
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rsi*8]
inc rsi
cmp rax, r8
jne 0x14020c7a5
mov eax, 1
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14020c815
mov qword [rsp + 0x58], r8
test al, 0x82
je 0x14020c7b9
cmp word [r10 + 0x30], 0
js 0x14020c7b9
mov rcx, qword [r15]
mov rdx, qword [rbp]
mov qword [rsp + 0x48], rcx
call fcn.1401bf920
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov rsi, rax
mov rdx, qword [r8]
call fcn.1401be800
test rax, rax
je 0x14020c815
mov rdx, qword [rax]
mov rcx, qword [rsi]
call fcn.1401e2200
test eax, eax
je 0x14020c7b9
inc edi
add rbp, 0x20
jmp 0x14020c713
mov eax, dword [rbx + 0x38]
bt eax, 0xc
jb 0x14020cb96
bt eax, 8
jb 0x14020c86e
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x14020c594
test byte [rdi + 0x64], 4
jne 0x14020c594
mov si, word [rdi + 0x5e]
mov edx, dword [rdi + 0x60]
mov word [rsp + 0xa4], si
xor esi, esi
cmp byte [rdi + 0x62], 0
je 0x14020c882
shr eax, 0xf
xor eax, 1
and eax, 1
mov esi, eax
jmp 0x14020c882
mov word [rsp + 0xa4], 0
xor edi, edi
mov edx, 1
mov sil, 1
mov eax, 1
mov ecx, r12d
mov byte [rsp + 0x67], 0
xor r13d, r13d
shl rax, cl
mov byte [rsp + 0x66], 0
xor ebp, ebp
mov qword [rsp + 0x98], rax
movzx eax, dx
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0xa0], r13d
cmp dword [rsp + 0xa8], r13d
jle 0x14020cb8d
movzx edx, word [rbx + 0x18]
lea rax, [r13*8]
mov qword [rsp + 0x90], rax
cmp edx, r13d
jle 0x14020c938
movzx eax, word [rbx + 0x3e]
cmp eax, dword [rsp + 0x48]
jg 0x14020c938
mov rax, qword [rsp + 0x90]
mov rcx, qword [rbx + 0x48]
mov r8, qword [rcx + rax]
mov eax, dword [r8 + 0x14]
test word [rsp + 0x68], ax
je 0x14020c915
test ax, 0x180
mov al, 0
cmovne esi, eax
jmp 0x14020cb85
mov r11b, 1
test al, 1
je 0x14020c93b
mov r8, qword [r8]
lea rax, [r13 + 1]
cmp edx, eax
jle 0x14020c938
mov r10, qword [rcx + rax*8]
inc rax
cmp qword [r10], r8
jne 0x14020c923
xor r11d, r11d
jmp 0x14020c93b
mov r11b, 1
test rdi, rdi
je 0x14020cc80
mov rcx, qword [rdi + 0x38]
mov rax, qword [rdi + 8]
mov cl, byte [rcx + r13]
movsx rax, word [rax + r13*2]
and ecx, 1
mov byte [rsp + 0xae], cl
mov rcx, qword [rdi + 0x18]
cmp ax, word [rcx + 0x34]
je 0x14020cc88
movsx r12d, ax
test sil, sil
je 0x14020c99a
test r12d, r12d
jns 0x14020c981
cmp r12d, 0xfffffffe
jmp 0x14020c996
cmp edx, dword [rsp + 0xa0]
jg 0x14020c99a
imul rax, rax, 0x18
add rax, qword [rcx + 8]
test byte [rax + 8], 0xf
setne sil
mov rax, qword [rsp + 0x80]
movsxd r14, dword [rsp + 0x48]
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x58], rax
shl r14, 5
mov edx, dword [rsp + 0x54]
cmp dword [rsp + 0x38], edx
jge 0x14020cb2b
test r11b, r11b
je 0x14020cb2b
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x38]
shr rax, cl
test al, 1
jne 0x14020cad4
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call fcn.1401bfba0
mov rcx, rax
test rax, rax
je 0x14020cad4
test byte [rsp + 0x64], 0xc0
setne r11b
cmp r12d, 0xffffffff
jl 0x14020ca33
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14020cad7
mov eax, dword [rsp + 0x60]
cmp dword [rcx + 0x2c], eax
jne 0x14020cad7
movsx eax, word [rcx + 0x30]
cmp eax, r12d
je 0x14020ca9a
jmp 0x14020cad7
mov rax, qword [rdi + 0x50]
mov r8d, dword [rsp + 0x60]
mov byte [rsp + 0xaf], r11b
add rax, r14
mov rdx, qword [rax + 8]
call fcn.1401be820
mov r11b, byte [rsp + 0xaf]
test eax, eax
jne 0x14020cad7
mov rax, qword [rsp + 0x58]
mov rcx, qword [r15]
mov byte [rsp + 0xaf], r11b
mov rdx, qword [rax]
call fcn.1401bf920
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rdi + 0x40]
mov rdx, qword [rdx + rcx]
mov rcx, qword [rax]
call fcn.1401e2200
mov r11b, byte [rsp + 0xaf]
test eax, eax
je 0x14020caa0
jmp 0x14020cad7
cmp r12d, 0xffffffff
jne 0x14020ca5c
cmp word [rsp + 0xa6], 0
je 0x14020cab3
lea eax, [r13 + 1]
mov word [rbx + 0x1e], ax
movsxd rax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x108]
shl rax, 5
mov al, byte [rdx + rax + 0x18]
test byte [rsp + 0x64], 0x40
je 0x14020cae6
jmp 0x14020cb54
mov r11b, 1
inc dword [rsp + 0x38]
add qword [rsp + 0x58], 0x20
jmp 0x14020c9b8
cmp byte [rsp + 0x66], 0
je 0x14020cb03
mov edx, eax
mov cl, byte [rsp + 0xae]
xor cl, byte [rsp + 0x67]
and edx, 1
cmp cl, dl
jne 0x14020cb2b
jmp 0x14020cb54
mov edx, eax
and edx, 1
cmp dl, byte [rsp + 0xae]
je 0x14020cb4a
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x98]
mov byte [rsp + 0x67], 1
or qword [rdx], rcx
jmp 0x14020cb4f
cmp dword [rsp + 0x48], 0
je 0x14020cc78
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0x48]
jg 0x14020cc78
jmp 0x14020cb8d
mov byte [rsp + 0x67], 0
mov byte [rsp + 0x66], 1
test al, 2
je 0x14020cb6c
movzx eax, word [rbx + 0x18]
cmp eax, dword [rsp + 0xa0]
jne 0x14020cb2b
or dword [rbx + 0x38], 0x80000
inc r12d
mov al, 1
mov cl, byte [rsp + 0x38]
cmove ebp, eax
mov eax, 1
shl rax, cl
or qword [rsp + 0x30], rax
inc r13
jmp 0x14020c8ae
or bpl, sil
je 0x14020cc18
mov rdi, qword [rbx + 8]
or qword [rsp + 0x70], rdi
xor esi, esi
lea rbp, [r15 + 0x258]
mov r12, qword [rsp + 0x70]
mov r13d, 1
not r12
mov edi, esi
cmp dword [rsp + 0x54], esi
jle 0x14020cc15
mov rax, qword [rsp + 0x30]
mov ecx, esi
shr rax, cl
test al, 1
jne 0x14020cc10
mov rdx, qword [rsp + 0x108]
mov rax, rsi
mov rcx, rbp
shl rax, 5
mov r14, qword [rdx + rax + 8]
mov rdx, r14
call fcn.1401f55c0
test rax, rax
jne 0x14020cc0b
mov rcx, r14
call fcn.1401bf350
test eax, eax
je 0x14020cc10
mov rax, r13
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14020cc10
test r12, rax
je 0x14020cbfc
inc rsi
jmp 0x14020cbb6
mov bpl, 1
inc qword [rsp + 0x40]
jmp 0x14020c613
mov al, 0xff
jmp 0x14020cc9a
mov rbx, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rbx
jne 0x14020cc3b
mov al, byte [rsp + 0x50]
jmp 0x14020cc9a
mov al, 0xff
test bpl, bpl
jne 0x14020cc9a
mov ecx, dword [rsp + 0x54]
mov edx, 1
dec ecx
test ecx, ecx
jle 0x14020c594
cmp ecx, 0x3f
jg 0x14020cc70
mov rax, rdx
mov r8, qword [rsp + 0x30]
shl rax, cl
dec rax
and r8, rax
cmp r8, rax
jne 0x14020cc74
mov eax, ecx
jmp 0x14020cc9a
dec ecx
jmp 0x14020cc4d
test bpl, bpl
jmp 0x14020cb90
mov byte [rsp + 0xae], 0
or r12d, 0xffffffff
test sil, sil
je 0x14020c99a
jmp 0x14020c97b
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret