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

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
xor r14d, r14d
mov rdi, r8
mov r8, rdx
mov r10, rcx
mov r15d, r14d
mov r11d, r14d
mov qword [rsp + 0x40], r14
cmp word [rsp + 0x100], r14w
je 0x1401b35d7
mov rax, qword [rcx]
mov r9, qword [rax]
test byte [r9 + 0x60], 0x40
jne 0x1401b3dc3
movzx r9d, word [rsp + 0xf8]
movzx edx, word [rdx]
mov word [rsp + 0x52], dx
cmp edx, 0x3f
ja 0x1401b3dc3
mov ecx, edx
mov dword [rsp + 0x54], edx
mov ebp, 1
mov qword [rsp + 0x70], r14
mov edx, ebp
mov dword [rsp + 0x48], r14d
shl rdx, cl
movzx eax, r9w
sub rdx, rbp
mov ecx, 0x803
and ax, cx
mov qword [rsp + 0x78], rdx
neg ax
mov r12b, bpl
mov rbx, r14
mov dword [rsp + 0x34], r12d
sbb si, si
mov qword [rsp + 0x60], rbx
neg si
mov rcx, r14
add si, 0x182
mov qword [rsp + 0x80], rcx
mov word [rsp + 0x32], si
mov r13d, r14d
cmp r11, rdx
jae 0x1401b3d95
movzx eax, word [rsp + 0x100]
cmp r13d, eax
jg 0x1401b3d84
test r13d, r13d
jle 0x1401b366f
or rbx, qword [r15 + 8]
mov qword [rsp + 0x60], rbx
cmp r13d, eax
jge 0x1401b3692
bt r9w, 0xb
mov rax, qword [rdi + 0x18]
mov r15, qword [rax + rcx*8]
mov qword [rsp + 0x88], r15
jb 0x1401b3d48
jmp 0x1401b36a2
mov r15, qword [rsp + 0x108]
mov qword [rsp + 0x88], r15
test dword [r15 + 0x38], 0x400
jne 0x1401b3d6a
movzx eax, r9w
mov ecx, 0x80
and ax, cx
mov word [rsp + 0x58], ax
je 0x1401b36c8
mov word [r15 + 0x1e], r14w
movzx eax, byte [r15 + 0x10]
mov ebp, r14d
imul rcx, rax, 0x68
mov rax, qword [r10 + 8]
mov eax, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x5c], eax
cmp dword [rsp + 0x54], r14d
jbe 0x1401b3850
mov r13, qword [rsp + 0xe0]
mov r12d, eax
mov eax, ebp
bt r11, rax
jb 0x1401b382e
mov edi, ebp
shl rdi, 5
mov r14d, ebp
mov rcx, qword [rdi + r8 + 8]
call fcn.14016c9a0
xor r10d, r10d
mov rbx, rax
test rax, rax
je 0x1401b382e
mov al, byte [rax]
add al, 0x59
test al, 0xfd
jne 0x1401b382e
cmp dword [rbx + 0x2c], r12d
jne 0x1401b382e
mov r9, qword [rsp + 0x60]
lea rcx, [r13 + 0x70]
movsx r8d, word [rbx + 0x30]
not r9
movzx eax, si
mov edx, r12d
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x20], eax
call fcn.1401a3264
xor r10d, r10d
mov rsi, rax
test rax, rax
je 0x1401b381c
lea r9d, [r10 + 1]
cmp word [rax + 0x14], r9w
jne 0x1401b379d
movzx edx, word [r15 + 0x3c]
mov ecx, r10d
test edx, edx
je 0x1401b3799
mov r8, qword [r15 + 0x48]
movsxd rax, ecx
cmp rsi, qword [r8 + rax*8]
je 0x1401b3799
add ecx, r9d
cmp ecx, edx
jl 0x1401b3789
cmp ecx, edx
jge 0x1401b381c
test byte [rsi + 0x14], 0x82
je 0x1401b380c
cmp word [rbx + 0x30], r10w
jl 0x1401b380c
mov rbx, qword [r13]
mov rdx, qword [rsp + 0xe8]
mov rcx, rbx
mov rdx, qword [rdi + rdx + 8]
call fcn.14016adc4
mov rdi, rax
test rax, rax
jne 0x1401b37d2
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rax, qword [rsi]
test dword [rax + 4], 0x400
je 0x1401b37e8
mov rdx, qword [rax + 0x18]
mov r8, qword [rax + 0x10]
jmp 0x1401b37f0
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
mov rcx, rbx
call fcn.14015e858
test rax, rax
je 0x1401b381c
mov rdx, qword [rax]
mov rcx, qword [rdi]
call fcn.14018e138
test eax, eax
jne 0x1401b381c
mov r11, qword [rsp + 0x40]
bts r11, r14
mov qword [rsp + 0x40], r11
jmp 0x1401b3821
mov r11, qword [rsp + 0x40]
mov r8, qword [rsp + 0xe8]
movzx esi, word [rsp + 0x32]
inc ebp
cmp ebp, dword [rsp + 0x54]
jl 0x1401b36f6
mov r12d, dword [rsp + 0x34]
xor r14d, r14d
movzx r9d, word [rsp + 0xf8]
mov r13d, dword [rsp + 0x48]
test dword [r15 + 0x38], 0x1000
jne 0x1401b3c59
test dword [r15 + 0x38], 0x100
je 0x1401b387f
mov ebx, dword [rsp + 0x34]
mov ebp, 1
movzx eax, bp
mov word [rsp + 0x50], r14w
mov r13, r14
jmp 0x1401b38cc
mov r13, qword [r15 + 0x20]
test r13, r13
je 0x1401b3dc3
test byte [r13 + 0x64], 4
jne 0x1401b3dc3
movzx eax, word [r13 + 0x5e]
mov word [rsp + 0x50], ax
movzx eax, word [r13 + 0x60]
cmp byte [r13 + 0x62], r14b
je 0x1401b38c0
test dword [r15 + 0x38], 0x8000
jne 0x1401b38c0
mov ebp, 1
mov bl, bpl
jmp 0x1401b38c8
mov bl, r14b
mov ebp, 1
mov dword [rsp + 0x34], ebx
movzx eax, ax
mov sil, r14b
mov byte [rsp + 0x39], r14b
mov edi, r14d
mov byte [rsp + 0x38], r14b
mov dword [rsp + 0x4c], esi
mov dword [rsp + 0x68], eax
test eax, eax
je 0x1401b3c4f
movzx r10d, word [r15 + 0x18]
cmp edi, r10d
jge 0x1401b395a
movzx eax, word [r15 + 0x3e]
cmp edi, eax
jl 0x1401b395a
mov r8, qword [r15 + 0x48]
movsxd rax, edi
mov rcx, qword [r8 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x32], ax
je 0x1401b393a
mov r8, qword [rsp + 0xe8]
mov ecx, 0x180
test cx, ax
je 0x1401b3c23
mov bl, r14b
mov dword [rsp + 0x34], ebx
jmp 0x1401b3c23
test bpl, al
je 0x1401b395a
mov r9, qword [rcx]
lea edx, [rdi + 1]
jmp 0x1401b3955
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r9
je 0x1401b3991
add edx, ebp
cmp edx, r10d
jl 0x1401b3947
mov r8b, bpl
test r13, r13
je 0x1401b3996
mov rax, qword [r13 + 8]
movsxd rcx, edi
movsx r14d, word [rax + rcx*2]
mov rax, qword [r13 + 0x38]
mov r12b, byte [rcx + rax]
mov rax, qword [r13 + 0x18]
and r12b, bpl
movsx ecx, word [rax + 0x34]
mov eax, 0xffffffff
cmp r14d, ecx
cmove r14d, eax
xor eax, eax
jmp 0x1401b399f
mov r8b, r14b
jmp 0x1401b395d
or r14d, 0xffffffff
xor eax, eax
mov r12b, al
test bl, bl
je 0x1401b39d9
test r14d, r14d
js 0x1401b39cb
xor ebx, ebx
cmp edi, r10d
jl 0x1401b39db
movsxd rax, r14d
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + 8]
test byte [rcx + rdx*8 + 8], 0xf
jne 0x1401b39db
mov byte [rsp + 0x34], bl
jmp 0x1401b39db
cmp r14d, 0xfffffffe
movzx ebx, bl
cmove ebx, eax
mov dword [rsp + 0x34], ebx
xor ebx, ebx
mov ebp, ebx
test r8b, r8b
je 0x1401b3b1a
cmp ebp, dword [rsp + 0x54]
jge 0x1401b3b16
mov eax, ebp
bt r11, rax
jb 0x1401b3b0b
mov r9, qword [rsp + 0xe8]
movsxd rsi, ebp
shl rsi, 5
mov rcx, qword [rsi + r9 + 8]
call fcn.14016c9a0
mov rdx, rax
test rax, rax
je 0x1401b3b0b
mov al, byte [rsp + 0xf8]
and al, 0xc0
neg al
sbb al, al
and al, r8b
mov byte [rsp + 0x30], al
or eax, 0xffffffff
cmp r14d, eax
jl 0x1401b3a65
mov al, byte [rdx]
add al, 0x59
test al, 0xfd
jne 0x1401b3b06
mov eax, dword [rsp + 0x5c]
cmp dword [rdx + 0x2c], eax
jne 0x1401b3b06
movsx eax, word [rdx + 0x30]
cmp eax, r14d
jne 0x1401b3b06
jmp 0x1401b3ab4
mov rax, qword [r13 + 0x50]
movsxd rcx, edi
shl rcx, 5
mov r8, qword [rcx + rax + 8]
jmp 0x1401b3a85
test dword [r8 + 4], 0x2000
je 0x1401b3a8a
mov r8, qword [r8 + 0x10]
test r8, r8
jne 0x1401b3a77
test dword [rdx + 4], 0x2000
je 0x1401b3a9c
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x1401b3a8a
mov r9d, dword [rsp + 0x5c]
xor ecx, ecx
call fcn.14016af84
test eax, eax
jne 0x1401b3b01
mov r9, qword [rsp + 0xe8]
or r11d, 0xffffffff
cmp r14d, r11d
je 0x1401b3b5a
mov rax, qword [rsp + 0xe0]
mov rdx, qword [rsi + r9 + 8]
mov rbx, qword [rax]
mov rcx, rbx
call fcn.14016adc4
mov rcx, rax
test rax, rax
jne 0x1401b3ae8
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
mov rdx, qword [r13 + 0x40]
mov rcx, qword [rcx]
movsxd rax, edi
mov rdx, qword [rdx + rax*8]
call fcn.14018e138
xor ebx, ebx
test eax, eax
je 0x1401b3b56
mov r11, qword [rsp + 0x40]
mov r8b, byte [rsp + 0x30]
inc ebp
test r8b, r8b
jne 0x1401b39e6
mov esi, dword [rsp + 0x4c]
movzx r9d, word [rsp + 0xf8]
mov r8, qword [rsp + 0xe8]
xor r14d, r14d
test edi, edi
je 0x1401b3b3f
movzx eax, word [rsp + 0x50]
cmp edi, eax
jge 0x1401b3c31
mov r11, qword [rsp + 0x40]
mov r12b, r14b
mov dword [rsp + 0x34], r12d
mov ebp, 1
jmp 0x1401b3c40
or r11d, 0xffffffff
mov r10d, 1
cmp word [rsp + 0x58], bx
je 0x1401b3b70
lea eax, [r10 + rdi]
mov word [r15 + 0x1e], ax
movzx r9d, word [rsp + 0xf8]
mov r8, qword [rsp + 0xe8]
test r9b, 0x40
jne 0x1401b3bd6
movsxd rax, ebp
shl rax, 5
mov cl, byte [rax + r8 + 0x18]
and cl, r10b
cmp byte [rsp + 0x39], bl
je 0x1401b3baf
xor r12b, byte [rsp + 0x38]
cmp r12b, cl
je 0x1401b3bd6
mov esi, dword [rsp + 0x4c]
jmp 0x1401b3b2b
mov dl, cl
xor dl, r12b
mov byte [rsp + 0x38], dl
je 0x1401b3bd1
mov rdx, qword [rsp + 0x110]
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x39], r10b
movsxd rax, ebp
shl rax, 5
test byte [rax + r8 + 0x18], 2
je 0x1401b3bf4
movzx eax, word [r15 + 0x18]
cmp edi, eax
jne 0x1401b3ba6
bts dword [r15 + 0x38], 0x13
mov esi, dword [rsp + 0x4c]
cmp r14d, r11d
mov r11, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x34]
movsxd rax, ebp
movzx esi, sil
cmove esi, r10d
bts r11, rax
xor r14d, r14d
mov dword [rsp + 0x4c], esi
mov qword [rsp + 0x40], r11
lea ebp, [r14 + 1]
add edi, ebp
cmp edi, dword [rsp + 0x68]
jl 0x1401b38ef
jmp 0x1401b3c3b
mov r11, qword [rsp + 0x40]
mov ebp, 1
mov r12d, dword [rsp + 0x34]
test sil, sil
je 0x1401b3c54
mov r12b, bpl
mov dword [rsp + 0x34], r12d
jmp 0x1401b3c67
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x48]
mov ebp, 1
test r12b, r12b
je 0x1401b3d29
mov rdi, qword [rsp + 0x70]
mov ebx, r14d
or rdi, qword [r15 + 8]
mov r13d, dword [rsp + 0x54]
mov qword [rsp + 0x70], rdi
test r13d, r13d
je 0x1401b3d24
mov r12, qword [rsp + 0xe0]
lea rsi, [r8 + 8]
mov r15, qword [rsp + 0x70]
mov rdi, r14
mov eax, ebx
bt r11, rax
jb 0x1401b3cf5
mov rbp, qword [rsi]
lea rcx, [r12 + 0x258]
mov rdx, rbp
call fcn.1401a30fc
mov r14, rax
test rax, rax
jne 0x1401b3ccb
mov rdx, rbp
xor ecx, ecx
call fcn.14016bf48
test eax, eax
je 0x1401b3ceb
mov r11, qword [rsp + 0x40]
mov rax, r15
not rax
mov ebp, 1
test r14, rax
jne 0x1401b3cf5
bts r11, rdi
mov qword [rsp + 0x40], r11
jmp 0x1401b3cf5
mov r11, qword [rsp + 0x40]
mov ebp, 1
add ebx, ebp
add rdi, rbp
add rsi, 0x20
cmp ebx, r13d
jl 0x1401b3c9a
mov r15, qword [rsp + 0x88]
xor r14d, r14d
mov r12d, dword [rsp + 0x34]
movzx r9d, word [rsp + 0xf8]
mov r8, qword [rsp + 0xe8]
mov r13d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x78]
mov r10, qword [rsp + 0xe0]
movzx esi, word [rsp + 0x32]
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0xf0]
add qword [rsp + 0x80], rbp
add r13d, ebp
mov dword [rsp + 0x48], r13d
test r12b, r12b
je 0x1401b3d92
mov rcx, qword [rsp + 0x80]
jmp 0x1401b3647
cmp byte [r15 + 0x20], r14b
je 0x1401b3d84
mov eax, 0x280
and r9w, ax
mov eax, 0x80
cmp r9w, ax
jne 0x1401b3d97
test r12b, r12b
jne 0x1401b3ddd
movzx edx, word [rsp + 0x52]
dec edx
jmp 0x1401b3dbf
cmp r11, rdx
jne 0x1401b3d84
mov al, byte [rsp + 0x52]
jmp 0x1401b3dc5
mov ecx, edx
mov rax, rbp
shl rax, cl
mov rcx, r14
sub rax, rbp
cmp edx, 0x40
cmovl rcx, rax
mov rax, rcx
and rax, r11
cmp rax, rcx
je 0x1401b3dd9
sub edx, ebp
test edx, edx
jg 0x1401b3d9d
xor al, al
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov al, dl
jmp 0x1401b3dc5
or eax, 0xffffffff
jmp 0x1401b3dc5