Function at 0x140218dc0
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 0x140218e1b
mov rax, qword [rcx]
mov rax, qword [rax]
test byte [rax + 0x60], 0x40
je 0x140218e1b
xor eax, eax
jmp 0x14021951a
mov rax, qword [rsp + 0x108]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
cmp word [rsp + 0x50], 0x3f
ja 0x140218e14
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 0x1402194a6
test bpl, 1
je 0x1402194a6
movzx eax, word [rsp + 0xac]
mov edx, r12d
cmp eax, r12d
jl 0x1402194a2
test r12d, r12d
je 0x140218ed7
mov rbx, qword [rbx + 8]
or qword [rsp + 0x78], rbx
cmp eax, edx
jle 0x140218f02
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 0x140219498
jmp 0x140218f0a
mov rbx, qword [rsp + 0x128]
test byte [rbx + 0x39], 4
je 0x140218f38
cmp byte [rbx + 0x20], 0
mov al, 0xff
je 0x14021951a
mov r9d, dword [rsp + 0x6c]
and r9w, 0x280
cmp r9w, 0x80
jne 0x1402194b5
jmp 0x14021951a
mov eax, dword [rsp + 0x64]
and ax, 0x80
mov word [rsp + 0xa6], ax
je 0x140218f50
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 0x1402190a0
mov rsi, qword [rsp + 0x30]
mov ecx, edi
shr rsi, cl
and esi, 1
jne 0x140219095
mov rcx, qword [rbp]
call fcn.1401cc420
mov r10, rax
test rax, rax
je 0x140219095
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x140219095
mov eax, dword [rsp + 0x60]
cmp dword [r10 + 0x2c], eax
jne 0x140219095
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.140201f60
mov r8, rax
test rax, rax
je 0x140219095
mov eax, dword [rax + 0x14]
mov r10, qword [rsp + 0x48]
cmp ax, 1
jne 0x14021904a
movzx edx, word [rbx + 0x3c]
cmp edx, esi
jle 0x140219095
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rsi*8]
inc rsi
cmp rax, r8
jne 0x140219025
mov eax, 1
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x140219095
mov qword [rsp + 0x58], r8
test al, 0x82
je 0x140219039
cmp word [r10 + 0x30], 0
js 0x140219039
mov rcx, qword [r15]
mov rdx, qword [rbp]
mov qword [rsp + 0x48], rcx
call fcn.1401cc1a0
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov rsi, rax
mov rdx, qword [r8]
call fcn.1401cb080
test rax, rax
je 0x140219095
mov rdx, qword [rax]
mov rcx, qword [rsi]
call fcn.1401eea80
test eax, eax
je 0x140219039
inc edi
add rbp, 0x20
jmp 0x140218f93
mov eax, dword [rbx + 0x38]
bt eax, 0xc
jb 0x140219416
bt eax, 8
jb 0x1402190ee
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x140218e14
test byte [rdi + 0x64], 4
jne 0x140218e14
mov si, word [rdi + 0x5e]
mov edx, dword [rdi + 0x60]
mov word [rsp + 0xa4], si
xor esi, esi
cmp byte [rdi + 0x62], 0
je 0x140219102
shr eax, 0xf
xor eax, 1
and eax, 1
mov esi, eax
jmp 0x140219102
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 0x14021940d
movzx edx, word [rbx + 0x18]
lea rax, [r13*8]
mov qword [rsp + 0x90], rax
cmp edx, r13d
jle 0x1402191b8
movzx eax, word [rbx + 0x3e]
cmp eax, dword [rsp + 0x48]
jg 0x1402191b8
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 0x140219195
test ax, 0x180
mov al, 0
cmovne esi, eax
jmp 0x140219405
mov r11b, 1
test al, 1
je 0x1402191bb
mov r8, qword [r8]
lea rax, [r13 + 1]
cmp edx, eax
jle 0x1402191b8
mov r10, qword [rcx + rax*8]
inc rax
cmp qword [r10], r8
jne 0x1402191a3
xor r11d, r11d
jmp 0x1402191bb
mov r11b, 1
test rdi, rdi
je 0x140219500
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 0x140219508
movsx r12d, ax
test sil, sil
je 0x14021921a
test r12d, r12d
jns 0x140219201
cmp r12d, 0xfffffffe
jmp 0x140219216
cmp edx, dword [rsp + 0xa0]
jg 0x14021921a
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 0x1402193ab
test r11b, r11b
je 0x1402193ab
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x38]
shr rax, cl
test al, 1
jne 0x140219354
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call fcn.1401cc420
mov rcx, rax
test rax, rax
je 0x140219354
test byte [rsp + 0x64], 0xc0
setne r11b
cmp r12d, 0xffffffff
jl 0x1402192b3
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x140219357
mov eax, dword [rsp + 0x60]
cmp dword [rcx + 0x2c], eax
jne 0x140219357
movsx eax, word [rcx + 0x30]
cmp eax, r12d
je 0x14021931a
jmp 0x140219357
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.1401cb0a0
mov r11b, byte [rsp + 0xaf]
test eax, eax
jne 0x140219357
mov rax, qword [rsp + 0x58]
mov rcx, qword [r15]
mov byte [rsp + 0xaf], r11b
mov rdx, qword [rax]
call fcn.1401cc1a0
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rdi + 0x40]
mov rdx, qword [rdx + rcx]
mov rcx, qword [rax]
call fcn.1401eea80
mov r11b, byte [rsp + 0xaf]
test eax, eax
je 0x140219320
jmp 0x140219357
cmp r12d, 0xffffffff
jne 0x1402192dc
cmp word [rsp + 0xa6], 0
je 0x140219333
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 0x140219366
jmp 0x1402193d4
mov r11b, 1
inc dword [rsp + 0x38]
add qword [rsp + 0x58], 0x20
jmp 0x140219238
cmp byte [rsp + 0x66], 0
je 0x140219383
mov edx, eax
mov cl, byte [rsp + 0xae]
xor cl, byte [rsp + 0x67]
and edx, 1
cmp cl, dl
jne 0x1402193ab
jmp 0x1402193d4
mov edx, eax
and edx, 1
cmp dl, byte [rsp + 0xae]
je 0x1402193ca
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x98]
mov byte [rsp + 0x67], 1
or qword [rdx], rcx
jmp 0x1402193cf
cmp dword [rsp + 0x48], 0
je 0x1402194f8
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0x48]
jg 0x1402194f8
jmp 0x14021940d
mov byte [rsp + 0x67], 0
mov byte [rsp + 0x66], 1
test al, 2
je 0x1402193ec
movzx eax, word [rbx + 0x18]
cmp eax, dword [rsp + 0xa0]
jne 0x1402193ab
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 0x14021912e
or bpl, sil
je 0x140219498
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 0x140219495
mov rax, qword [rsp + 0x30]
mov ecx, esi
shr rax, cl
test al, 1
jne 0x140219490
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.140201e40
test rax, rax
jne 0x14021948b
mov rcx, r14
call fcn.1401cbbd0
test eax, eax
je 0x140219490
mov rax, r13
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x140219490
test r12, rax
je 0x14021947c
inc rsi
jmp 0x140219436
mov bpl, 1
inc qword [rsp + 0x40]
jmp 0x140218e93
mov al, 0xff
jmp 0x14021951a
mov rbx, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rbx
jne 0x1402194bb
mov al, byte [rsp + 0x50]
jmp 0x14021951a
mov al, 0xff
test bpl, bpl
jne 0x14021951a
mov ecx, dword [rsp + 0x54]
mov edx, 1
dec ecx
test ecx, ecx
jle 0x140218e14
cmp ecx, 0x3f
jg 0x1402194f0
mov rax, rdx
mov r8, qword [rsp + 0x30]
shl rax, cl
dec rax
and r8, rax
cmp r8, rax
jne 0x1402194f4
mov eax, ecx
jmp 0x14021951a
dec ecx
jmp 0x1402194cd
test bpl, bpl
jmp 0x140219410
mov byte [rsp + 0xae], 0
or r12d, 0xffffffff
test sil, sil
je 0x14021921a
jmp 0x1402191fb
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret