Function at 0x1401c1b38
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 rbp, r8
movzx eax, r9w
mov r8, rdx
mov r11, rcx
mov r13d, r14d
mov ebx, r14d
cmp word [rsp + 0x100], r14w
je 0x1401c1b9c
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x5c], 0x40
je 0x1401c1b94
xor al, al
jmp 0x1401c225a
movzx eax, word [rsp + 0xf8]
movzx r9d, word [rdx]
mov word [rsp + 0x50], r9w
cmp r9w, 0x3f
ja 0x1401c1b8d
movzx r12d, r9w
mov edi, 1
mov ecx, r12d
mov dword [rsp + 0x40], r12d
mov edx, edi
mov qword [rsp + 0x68], r14
shl rdx, cl
mov r9d, 0x800
sub rdx, rdi
mov qword [rsp + 0x58], r14
movzx ecx, ax
mov qword [rsp + 0x70], rdx
and cx, r9w
mov dword [rsp + 0x4c], r14d
mov r10b, dil
mov word [rsp + 0x3c], cx
movzx eax, cx
mov dword [rsp + 0x38], r10d
neg ax
mov qword [rsp + 0x78], r14
mov rsi, r14
mov r15d, r14d
sbb r9w, r9w
mov rdi, r14
neg r9w
add r9w, 0x182
mov word [rsp + 0x30], r9w
cmp rbx, rdx
jae 0x1401c2219
movzx eax, word [rsp + 0x100]
cmp r15d, eax
jg 0x1401c2219
test r15d, r15d
jle 0x1401c1c44
or rsi, qword [r13 + 8]
mov qword [rsp + 0x58], rsi
cmp r15d, eax
jge 0x1401c1c64
mov rax, qword [rbp + 0x18]
mov r13, qword [rax + rdi*8]
mov qword [rsp + 0x80], r13
test cx, cx
jne 0x1401c21ea
jmp 0x1401c1c74
mov r13, qword [rsp + 0x108]
mov qword [rsp + 0x80], r13
test dword [r13 + 0x28], 0x400
jne 0x1401c220b
movzx eax, byte [r13 + 0x10]
mov ebp, r14d
imul rcx, rax, 0x70
mov word [r13 + 0x1e], r14w
mov rax, qword [r11 + 8]
mov eax, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x54], eax
test r12d, r12d
jle 0x1401c1d9a
lea rsi, [r8 + 8]
mov r15d, eax
mov eax, ebp
bt rbx, rax
jb 0x1401c1d76
mov rcx, qword [rsi]
call fcn.1401f89b8
mov rdi, rax
cmp byte [rax], 0x9e
jne 0x1401c1d76
cmp dword [rax + 0x2c], r15d
jne 0x1401c1d76
movsx r8d, word [rdi + 0x30]
lea rcx, [r11 + 0x68]
movzx eax, r9w
xor edx, edx
mov r9, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdx
not r9
mov edx, r15d
mov dword [rsp + 0x20], eax
call fcn.1401c55d8
mov r8, rax
xor eax, eax
test r8, r8
je 0x1401c1d68
lea r10d, [rax + 1]
cmp word [r8 + 0x14], r10w
jne 0x1401c1d3b
movzx edx, word [r13 + 0x2c]
mov ecx, eax
test edx, edx
jle 0x1401c1d37
mov r9, qword [r13 + 0x38]
movsxd rax, ecx
cmp r8, qword [r9 + rax*8]
je 0x1401c1d35
add ecx, r10d
cmp ecx, edx
jl 0x1401c1d25
xor eax, eax
cmp ecx, edx
jge 0x1401c1d68
test byte [r8 + 0x14], 0x82
je 0x1401c1d64
cmp word [rdi + 0x30], ax
jl 0x1401c1d64
mov rcx, qword [rsp + 0xe0]
mov r8, qword [r8]
mov rdx, qword [rsi]
mov rcx, qword [rcx]
call fcn.1401f87a4
xor ecx, ecx
test eax, eax
je 0x1401c1d68
bts rbx, r14
movzx r9d, word [rsp + 0x30]
mov r11, qword [rsp + 0xe0]
mov eax, 1
add rsi, 0x28
add ebp, eax
add r14, rax
cmp ebp, r12d
jl 0x1401c1caf
mov r10d, dword [rsp + 0x38]
xor r14d, r14d
mov r15d, dword [rsp + 0x4c]
test dword [r13 + 0x28], 0x1000
jne 0x1401c210d
mov edx, VarUI2FromI4
test dword [r13 + 0x28], edx
je 0x1401c1dc8
mov r9d, 1
mov word [rsp + 0x44], r14w
movzx eax, r9w
mov rsi, r14
jmp 0x1401c1dff
mov rsi, qword [r13 + 0x20]
test rsi, rsi
je 0x1401c1b8d
test byte [rsi + 0x64], 4
jne 0x1401c1b8d
movzx eax, word [rsi + 0x5e]
mov r9d, 1
cmp byte [rsi + 0x62], r14b
mov word [rsp + 0x44], ax
movzx eax, word [rsi + 0x60]
setne r10b
mov dword [rsp + 0x38], r10d
movzx eax, ax
mov r11b, r14b
mov byte [rsp + 0x34], r14b
mov edi, r14d
mov byte [rsp + 0x33], r14b
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x60], eax
test eax, eax
jle 0x1401c210d
mov r14b, r9b
movzx r9d, word [r13 + 0x18]
cmp edi, r9d
jge 0x1401c1ea2
movzx eax, word [r13 + 0x2e]
cmp edi, eax
jl 0x1401c1ea2
mov r8, qword [r13 + 0x38]
movsxd rax, edi
mov rcx, qword [r8 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x30], ax
je 0x1401c1e73
mov r14d, 0
test dx, ax
movzx eax, r10b
mov ecx, r14d
cmove ecx, eax
mov r10b, cl
mov dword [rsp + 0x38], r10d
lea r9d, [r14 + 1]
jmp 0x1401c20d6
mov ebp, 1
test bpl, al
je 0x1401c1ea2
mov r10, qword [rcx]
lea edx, [rdi + 1]
jmp 0x1401c1e93
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r10
je 0x1401c1e9a
add edx, ebp
cmp edx, r9d
jl 0x1401c1e85
jmp 0x1401c1e9d
xor r14b, r14b
mov r10d, dword [rsp + 0x38]
test rsi, rsi
je 0x1401c1ecd
mov rax, qword [rsi + 8]
movsxd rcx, edi
movsx r15d, word [rax + rcx*2]
mov rax, qword [rsi + 0x38]
mov dl, byte [rcx + rax]
mov rax, qword [rsi + 0x18]
mov byte [rsp + 0x32], dl
movsx ecx, word [rax + 0x44]
cmp r15d, ecx
jne 0x1401c1ed6
jmp 0x1401c1ed2
mov byte [rsp + 0x32], 0
or r15d, 0xffffffff
test r10b, r10b
je 0x1401c1f03
test r15d, r15d
js 0x1401c1f03
cmp edi, r9d
jl 0x1401c1f03
mov rax, qword [rsi + 0x18]
mov rcx, qword [rax + 8]
movsxd rax, r15d
shl rax, 5
mov al, byte [rax + rcx + 0x18]
neg al
sbb cl, cl
and cl, r10b
mov byte [rsp + 0x38], cl
xor ebp, ebp
test r14b, r14b
je 0x1401c2014
cmp ebp, r12d
jge 0x1401c200f
mov eax, ebp
bt rbx, rax
jb 0x1401c2004
mov r8, qword [rsp + 0xe8]
movsxd rax, ebp
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + rdx*8 + 8]
mov qword [rsp + 0x88], rdx
call fcn.1401f89b8
mov r9, rax
mov al, byte [rsp + 0xf8]
and al, 0xc0
neg al
sbb al, al
and al, r14b
mov r14b, al
mov r12b, al
cmp r15d, 0xffffffff
jl 0x1401c1f87
cmp byte [r9], 0x9e
jne 0x1401c1fff
mov eax, dword [rsp + 0x54]
cmp dword [r9 + 0x2c], eax
jne 0x1401c1fff
movsx eax, word [r9 + 0x30]
cmp eax, r15d
jne 0x1401c1fff
jmp 0x1401c1fb8
mov r8d, dword [rsp + 0x54]
movsxd rax, edi
lea rcx, [rax + rax*4]
mov rax, qword [rsi + 0x50]
mov rdx, qword [rax + rcx*8 + 8]
mov rcx, r9
call fcn.1401f2a5c
test eax, eax
jne 0x1401c1fff
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0xe8]
cmp r15d, 0xffffffff
je 0x1401c2034
mov rax, qword [rsp + 0xe0]
mov rdx, qword [r8 + rdx*8 + 8]
mov r14, qword [rax]
mov rcx, r14
call fcn.1401f8844
mov rcx, rax
test rax, rax
jne 0x1401c1fe5
mov rax, qword [r14]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rsi + 0x40]
mov r14b, r12b
mov rcx, qword [rcx]
movsxd rax, edi
mov rdx, qword [rdx + rax*8]
call fcn.140225414
test eax, eax
je 0x1401c2034
mov r12d, dword [rsp + 0x40]
inc ebp
test r14b, r14b
jne 0x1401c1f0e
mov r11d, dword [rsp + 0x48]
xor r14d, r14d
lea r9d, [r14 + 1]
test edi, edi
je 0x1401c202c
movzx eax, word [rsp + 0x44]
cmp edi, eax
jge 0x1401c20ee
mov r10b, r14b
jmp 0x1401c20f3
mov r9d, 1
xor r14d, r14d
test byte [rsp + 0xf8], 0x40
mov dl, r9b
lea eax, [r9 + rdi]
mov word [r13 + 0x1e], ax
jne 0x1401c20aa
mov r8, qword [rsp + 0xe8]
movsxd rax, ebp
lea rcx, [rax + rax*4]
cmp byte [rsp + 0x34], r14b
je 0x1401c207b
mov al, byte [rsp + 0x32]
xor al, byte [rsp + 0x33]
cmp al, byte [r8 + rcx*8 + 0x20]
sete dl
jmp 0x1401c20a6
mov al, byte [r8 + rcx*8 + 0x20]
xor al, byte [rsp + 0x32]
mov byte [rsp + 0x33], al
je 0x1401c20a1
mov r8, qword [rsp + 0x110]
movsxd rax, dword [rsp + 0x4c]
mov rcx, qword [r8]
bts rcx, rax
mov qword [r8], rcx
mov byte [rsp + 0x34], r9b
test dl, dl
je 0x1401c20e4
mov r11d, dword [rsp + 0x48]
cmp r15d, 0xffffffff
mov r10d, dword [rsp + 0x38]
mov edx, VarUI2FromI4
mov r12d, dword [rsp + 0x40]
movzx r11d, r11b
cmove r11d, r9d
movsxd rax, ebp
mov dword [rsp + 0x48], r11d
bts rbx, rax
add edi, r9d
cmp edi, dword [rsp + 0x60]
jge 0x1401c20f3
jmp 0x1401c1e23
mov r11d, dword [rsp + 0x48]
jmp 0x1401c201b
mov r10d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x40]
test r11b, r11b
mov r15d, dword [rsp + 0x4c]
movzx r10d, r10b
cmovne r10d, r9d
mov dword [rsp + 0x38], r10d
test r10b, r10b
je 0x1401c21bd
mov rsi, qword [rsp + 0x68]
mov edi, r14d
or rsi, qword [r13 + 8]
mov qword [rsp + 0x68], rsi
test r12d, r12d
jle 0x1401c21bd
mov r13, qword [rsp + 0xe0]
mov r15, r14
mov r14, qword [rsp + 0xe8]
add r14, 8
mov eax, edi
bt rbx, rax
jb 0x1401c2195
mov rbp, qword [r14]
xor eax, eax
test rbp, rbp
je 0x1401c2168
lea rcx, [r13 + 0x290]
mov rdx, rbp
call fcn.1401c5d18
mov rsi, rax
test rax, rax
jne 0x1401c2184
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rbp
call fcn.1401f68fc
xor ecx, ecx
test eax, eax
je 0x1401c2195
mov rax, qword [rsp + 0x68]
not rax
test rsi, rax
jne 0x1401c2195
bts rbx, r15
mov eax, 1
add r14, 0x28
add edi, eax
add r15, rax
cmp edi, r12d
jl 0x1401c2147
mov r13, qword [rsp + 0x80]
xor r14d, r14d
mov r10d, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0xe8]
mov r11, qword [rsp + 0xe0]
movzx r9d, word [rsp + 0x30]
movzx ecx, word [rsp + 0x3c]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xf0]
mov edi, 1
add qword [rsp + 0x78], rdi
add r15d, edi
mov dword [rsp + 0x4c], r15d
test r10b, r10b
je 0x1401c221e
mov rdi, qword [rsp + 0x78]
jmp 0x1401c1c1c
cmp byte [r13 + 0x1d], r14b
mov rcx, rdx
cmove rcx, rbx
mov rbx, rcx
mov edi, 1
cmp rbx, rdx
jne 0x1401c2229
mov al, byte [rsp + 0x50]
jmp 0x1401c225a
test r10b, r10b
jne 0x1401c2258
lea ecx, [r12 - 1]
jmp 0x1401c224b
mov rdx, rdi
shl rdx, cl
sub rdx, rdi
mov rax, rdx
and rax, rbx
cmp rax, rdx
je 0x1401c2254
sub ecx, edi
test ecx, ecx
jg 0x1401c2235
jmp 0x1401c1b8d
mov al, cl
jmp 0x1401c225a
mov al, 0xff
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret