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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x138
mov rax, qword [0x140265ac0]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov rax, qword [rcx]
mov r13, rcx
movzx r15d, r9w
mov word [rsp + 0x30], r9w
xor r9d, r9d
mov qword [rsp + 0x90], rcx
mov r12, r8
mov qword [rsp + 0x78], rdx
mov rax, qword [rax]
mov r8, rdx
mov rbx, qword [r13 + 0x10]
mov esi, r9d
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r9
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x60], r9
cmp dword [rax + 0x30], r9d
je 0x1401b11d3
mov eax, dword [rax + 0x18]
jmp 0x1401b1c34
mov eax, dword [rbx + 0x38]
mov r10d, 2
mov dword [rsp + 0x68], eax
mov r11d, 0x100
and al, 0x20
neg al
sbb ecx, ecx
and ecx, 0xfffffe59
add ecx, 0x1bf
test dword [r12 + 0x64], 0x104
je 0x1401b1226
mov edx, ecx
and edx, 0xffffffc3
test byte [r12 + 0x64], 4
cmove edx, ecx
mov ecx, edx
test dword [r12 + 0x64], r11d
je 0x1401b1226
test byte [r8 + 0x40], r10b
jne 0x1401b1226
and ecx, 0xffffff7c
movzx eax, word [rbx + 0x1a]
movzx edx, word [rbx + 0x3c]
movzx edi, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, edi
mov word [rsp + 0x3c], ax
movzx eax, word [rbx + 0x1c]
mov word [rsp + 0x3e], ax
movzx eax, word [rbx + 0x3e]
mov word [rsp + 0x42], ax
mov rax, qword [rbx]
mov qword [rsp + 0xa8], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x40], dx
mov rdx, qword [r13 + 8]
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xb0]
mov word [rsp + 0x32], ax
mov word [rsp + 0x3a], di
call fcn.1401b4f80
xor r11d, r11d
mov qword [rsp + 0xa0], rax
mov word [rbx + 0x12], r11w
mov r14, rax
mov rcx, qword [r12 + 0x10]
movsx rax, word [rcx]
lea ecx, [r11 + 0xa]
mov word [rsp + 0x5a], ax
cmp ax, cx
jg 0x1401b12ba
mov word [rsp + 0x38], r11w
jmp 0x1401b12cb
mov rcx, rax
call fcn.14018035c
sub ax, 0x21
mov word [rsp + 0x38], ax
mov ecx, 0x10
lea edx, [rcx - 0xd]
lea r9d, [rcx - 0xf]
test r14, r14
je 0x1401b1b09
movzx r15d, word [r14 + 0x14]
mov r8d, 0x100
mov eax, dword [r13 + 0x28]
mov ebp, r11d
mov word [rsp + 0x58], r15w
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x88], eax
cmp r15w, r8w
je 0x1401b1311
test byte [r14 + 0x12], 0x80
je 0x1401b1352
mov rax, qword [r12 + 8]
movzx ecx, di
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x1401b1341
mov rdx, qword [r12 + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x1401b1397
mov edx, 3
jmp 0x1401b1347
cmp r8d, 0xffffffff
je 0x1401b1397
mov r8d, 0x100
mov ecx, 0x10
mov rax, qword [r14 + 0x28]
test qword [rbx + 8], rax
jne 0x1401b1397
test word [r14 + 0x12], r8w
je 0x1401b1369
cmp r15w, cx
je 0x1401b1397
mov r10, qword [rsp + 0x78]
test byte [r10 + 0x3c], 0x58
je 0x1401b13d0
mov rcx, qword [r14]
test byte [rcx + 4], dl
je 0x1401b1397
mov eax, dword [r10 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1401b1397
test byte [r10 + 0x3c], 0x18
mov edx, 2
je 0x1401b13d5
test byte [rcx + 4], dl
je 0x1401b13d5
movzx r15d, word [rsp + 0x30]
lea rcx, [rsp + 0xb0]
call fcn.1401b5074
xor r11d, r11d
mov qword [rsp + 0xa0], rax
mov r14, rax
lea edx, [r11 + 3]
lea ecx, [rdx + 0xd]
lea r9d, [r11 + 1]
test esi, esi
je 0x1401b12d7
jmp 0x1401b1b09
mov edx, 2
cmp byte [r12 + 0x62], r11b
je 0x1401b13f2
movzx eax, word [r12 + 0x5e]
sub eax, r9d
movzx ecx, di
cmp ecx, eax
jne 0x1401b13f2
or byte [r13 + 0x2c], dl
jmp 0x1401b13f6
or byte [r13 + 0x2c], r9b
mov eax, dword [rsp + 0x68]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x40]
mov word [rbx + 0x18], di
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x1401b144d
mov rcx, qword [rsp + 0x70]
lea r8d, [r9 + rax]
mov rdx, rbx
call fcn.1401b3174
xor r11d, r11d
lea r9d, [r11 + 1]
test eax, eax
jne 0x1401b1b03
mov r10, qword [rsp + 0x78]
mov r8d, 0x100
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], r14
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0xa8]
add dx, r9w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r14 + 0x28]
and rcx, rax
mov qword [rbx], rcx
test r9b, r15b
je 0x1401b1580
mov r8, qword [r14]
test dword [r8 + 4], 0x1000
je 0x1401b14c6
movzx ecx, dx
mov ebp, 0x2e
dec ecx
mov dword [rsp + 0x34], ebp
test ecx, ecx
jle 0x1401b14e3
mov rax, qword [rbx + 0x48]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x1401b14bb
cmp qword [rcx], r8
cmove ebp, r11d
add rax, 8
sub rdx, r9
jne 0x1401b14ac
jmp 0x1401b14df
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1401b14e3
cmp dword [rax], r11d
je 0x1401b14e3
movsxd rcx, dword [rax]
call fcn.14018035c
movsx ebp, ax
mov dword [rsp + 0x34], ebp
test byte [r12 + 0x64], 0x80
je 0x1401b1564
movzx r10d, word [rsp + 0x38]
mov edx, 0xa
cmp r10w, dx
jl 0x1401b1564
mov rax, qword [r12 + 0x10]
movzx ecx, di
movzx r9d, word [rax + rcx*2]
cmp bp, dx
jg 0x1401b1514
movzx eax, r11w
jmp 0x1401b1526
movsx rcx, bp
call fcn.14018035c
sub ax, 0x21
mov edx, 0xa
sub ax, bp
sub ax, r10w
add ax, r9w
movzx r9d, word [rsp + 0x30]
add ax, dx
jns 0x1401b156a
mov eax, 2
cmp r9w, ax
jge 0x1401b1af4
mov rax, qword [rsp + 0x70]
test dword [rax + 0x60], 0x20000
jne 0x1401b1af4
bts dword [rbx + 0x38], 0x14
jmp 0x1401b156a
movzx r9d, word [rsp + 0x30]
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
jmp 0x1401b1724
test r15b, 0x82
je 0x1401b1624
mov rax, qword [r12 + 8]
movzx ecx, di
movsx r8d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r9d
movzx r9d, word [rsp + 0x30]
mov dword [rbx + 0x38], ecx
cmp r8d, 0xffffffff
je 0x1401b15f6
mov edx, ecx
test r8d, r8d
js 0x1401b15ff
test r9w, r9w
jne 0x1401b15ff
movzx r8d, word [r12 + 0x5e]
mov esi, 1
mov eax, r8d
movzx r10d, di
sub eax, esi
cmp r10d, eax
jne 0x1401b15ff
test byte [r12 + 0x64], 8
jne 0x1401b15f6
cmp r8w, si
jne 0x1401b15f0
cmp byte [r12 + 0x62], r11b
je 0x1401b15f0
lea eax, [rsi + 1]
cmp r15w, ax
je 0x1401b15f6
bts edx, 0x10
jmp 0x1401b15fc
mov edx, ecx
bts edx, 0xc
mov dword [rbx + 0x38], edx
mov esi, 1
cmp byte [rsp + 0xd9], sil
jbe 0x1401b1615
bts edx, 0x15
mov dword [rbx + 0x38], edx
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
jmp 0x1401b1729
test r8w, r15w
je 0x1401b1642
mov edx, dword [rbx + 0x38]
mov rax, qword [rsp + 0x48]
or edx, 8
mov rcx, qword [rsp + 0x60]
mov dword [rbx + 0x38], edx
jmp 0x1401b171e
mov edx, dword [r10 + 0x44]
mov r8, r12
mov rcx, qword [rsp + 0x50]
movzx r9d, di
mov qword [rsp + 0x20], r14
call fcn.1401b4d88
mov edx, dword [rbx + 0x38]
xor r11d, r11d
test r15b, 0x24
je 0x1401b16ed
or edx, 0x22
mov word [rbx + 0x1a], ax
mov eax, 0x100
mov dword [rbx + 0x38], edx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x48], r11
test word [r14 + 0x12], ax
je 0x1401b16d8
movzx r8d, word [rbx + 0x3c]
lea rbp, [r14 + 0x38]
mov rcx, qword [rsp + 0x70]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x48], rbp
call fcn.1401b3174
xor r11d, r11d
test eax, eax
jne 0x1401b1afd
movzx ecx, word [rbx + 0x3c]
lea esi, [r11 + 1]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rbp
lea eax, [rsi + 0xf]
add word [rbx + 0x3c], si
or dword [rbx + 0x38], eax
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x1c], si
jmp 0x1401b16dd
mov esi, 1
movzx r9d, word [rsp + 0x30]
mov rcx, r14
mov rax, qword [rsp + 0x48]
jmp 0x1401b1729
or edx, 0x12
mov word [rbx + 0x1c], ax
mov dword [rbx + 0x38], edx
mov rax, r14
mov qword [rsp + 0x48], rax
test dl, 0x20
je 0x1401b1716
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r14
jmp 0x1401b1719
mov rcx, r11
mov qword [rsp + 0x60], rcx
movzx r9d, word [rsp + 0x30]
mov esi, 1
test dl, 2
je 0x1401b174e
mov r14, qword [rsp + 0x50]
mov r8, rcx
mov rcx, r14
mov qword [rsp + 0x20], rbx
mov r9, rax
mov rdx, r13
call fcn.1401b462c
jmp 0x1401b19d2
movzx eax, word [rbx + 0x18]
add ax, si
movzx ebp, ax
mov word [rbx + 0x18], bp
movzx edx, word [r14 + 0x10]
mov dword [rsp + 0x6c], ebp
test dx, dx
jg 0x1401b1789
mov rax, qword [r12 + 8]
movzx ecx, di
cmp word [rax + rcx*2], r11w
jl 0x1401b1789
mov ebp, dword [rsp + 0x34]
sub dx, bp
add word [rbx + 0x16], dx
jmp 0x1401b1995
mov qword [rsp + 0x80], r11
mov rdi, r11
test r9w, r9w
jne 0x1401b19a1
cmp dword [r12 + 0x68], r11d
je 0x1401b19a1
cmp ebp, dword [r12 + 0x70]
jg 0x1401b19a1
test sil, r15b
je 0x1401b17c9
mov rax, qword [r14]
test dword [rax + 4], 0x1000
jne 0x1401b19a1
mov rax, qword [rsp + 0x70]
test dword [rax + 0x60], 0x800
jne 0x1401b19a1
mov rax, qword [r14]
mov ecx, 0x182
test cx, r15w
je 0x1401b180f
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x80]
mov rcx, qword [rsp + 0x50]
mov rdx, r13
call fcn.1401b02f8
mov rdi, qword [rsp + 0x80]
jmp 0x1401b18ba
mov r13, qword [rax + 0x20]
mov r11, qword [rsp + 0x90]
mov rax, qword [r11 + 0x10]
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + 0x10]
movzx ecx, word [rcx]
call fcn.1401804cc
xor ecx, ecx
lea r15, [r13 + 8]
mov r14, rax
mov esi, ecx
mov eax, dword [r11 + 0x28]
mov ebp, ecx
mov dword [rsp + 0x80], eax
mov eax, ecx
cmp ebp, dword [r13]
jge 0x1401b1896
mov r8, qword [r15]
lea r9, [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
mov rdx, r11
mov qword [rsp + 0x98], r14
call fcn.1401b02f8
mov r11, qword [rsp + 0x90]
inc ebp
add rsi, qword [rsp + 0x98]
add r15, 0x20
mov ecx, dword [rsp + 0x80]
mov dword [r11 + 0x28], ecx
test eax, eax
je 0x1401b1849
jmp 0x1401b18a0
cmp rsi, r14
mov rdi, rsi
cmova rdi, r14
mov ebp, dword [rsp + 0x6c]
mov r14, qword [rsp + 0xa0]
movzx r15d, word [rsp + 0x58]
mov r13, qword [rsp + 0x90]
xor r11d, r11d
cmp eax, 0xc
mov esi, r11d
cmovne esi, eax
test esi, esi
jne 0x1401b1afd
test rdi, rdi
je 0x1401b199c
lea edx, [rsi + 0x28]
movzx eax, dx
cmp rdi, 8
jae 0x1401b1901
cmp rdi, 2
jae 0x1401b18f2
movzx eax, r11w
lea ecx, [rsi + 0xa]
jmp 0x1401b1941
add ax, 0xfff6
add rdi, rdi
cmp rdi, 8
jb 0x1401b18f2
jmp 0x1401b192b
mov ecx, 0xff
jmp 0x1401b190f
add ax, dx
shr rdi, 4
cmp rdi, rcx
ja 0x1401b1908
cmp rdi, 0xf
jbe 0x1401b192b
mov ecx, 0xa
add ax, cx
shr rdi, 1
cmp rdi, 0xf
ja 0x1401b191f
and edi, 7
lea rcx, [0x140260a10]
add ax, word [rcx + rdi*2]
mov ecx, 0xa
sub ax, cx
mov esi, 1
mov word [rbx + 0x16], ax
cmp bp, si
jne 0x1401b197b
movsx edx, ax
mov rax, qword [r12 + 0x10]
add edx, ecx
movsx ecx, word [rax]
cmp edx, ecx
jle 0x1401b197b
mov eax, 0x4000
or ax, word [r14 + 0x12]
bt ax, 0xd
mov word [r14 + 0x12], ax
jae 0x1401b197b
or byte [r13 + 0x2d], 4
movzx eax, word [rbx + 0x16]
cmp ax, word [rsp + 0x32]
mov ebp, dword [rsp + 0x34]
cmovg ax, word [rsp + 0x32]
sub ax, bp
mov word [rbx + 0x16], ax
mov r14, qword [rsp + 0x50]
jmp 0x1401b19d6
mov esi, 1
mov rax, qword [r12 + 0x10]
mov r14, qword [rsp + 0x50]
movzx ecx, bp
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
add dx, word [rbx + 0x16]
bt r15w, 8
mov word [rbx + 0x16], dx
movzx eax, dx
jae 0x1401b19d2
add ax, 0xa
mov word [rbx + 0x16], ax
mov ebp, dword [rsp + 0x34]
mov eax, dword [r12 + 0x64]
mov ecx, 3
movzx edi, word [rbx + 0x16]
and eax, ecx
lea r10d, [rcx + 0xd]
cmp al, cl
jne 0x1401b19f4
lea eax, [r10 + rdi]
jmp 0x1401b1a15
mov rcx, qword [rsp + 0x78]
movsx eax, word [r12 + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
add ax, di
add ax, si
movzx ecx, word [rsp + 0x38]
movzx edx, ax
call fcn.1401803bc
test dword [rbx + 0x38], 0x4000140
movzx ecx, ax
jne 0x1401b1a3a
lea edx, [r10 + rdi]
call fcn.1401803bc
movzx ecx, ax
movzx r15d, word [rsp + 0x30]
lea eax, [rdi + rbp]
movzx r8d, word [rsp + 0x5a]
add cx, bp
add cx, r15w
add ax, r15w
mov word [rbx + 0x14], cx
mov rdx, rbx
mov word [rbx + 0x16], ax
mov rcx, qword [r13 + 8]
call fcn.1401b2fc8
mov rdx, rbx
mov rcx, r13
call fcn.1401b2d34
mov ecx, dword [rbx + 0x38]
mov edx, 2
test dl, cl
mov esi, eax
cmovne di, word [rsp + 0x32]
lea eax, [rdx + 0xe]
mov word [rbx + 0x16], di
test al, cl
jne 0x1401b1ad6
movzx ecx, word [rbx + 0x18]
cmp cx, word [r12 + 0x60]
jae 0x1401b1ad6
lea r8d, [rdx + 1]
cmp cx, word [r12 + 0x5e]
jb 0x1401b1ab4
mov eax, dword [r12 + 0x64]
and al, r8b
cmp al, dl
je 0x1401b1ad6
cmp cx, r8w
jbe 0x1401b1ac2
mov rcx, r14
call fcn.140188464
mov rdx, qword [rsp + 0x78]
lea r9d, [r15 + rbp]
mov r8, r12
mov rcx, r13
call fcn.1401b1158
movzx ecx, word [rsp + 0x32]
mov eax, dword [rsp + 0x88]
movzx edi, word [rsp + 0x3a]
mov word [rbx + 0x16], cx
mov dword [r13 + 0x28], eax
jmp 0x1401b139d
movzx r15d, r9w
jmp 0x1401b139d
mov r9d, 1
movzx r15d, word [rsp + 0x30]
mov rax, qword [rsp + 0xa8]
movzx ebp, word [rsp + 0x3a]
movzx ecx, word [rsp + 0x42]
movzx edx, word [rsp + 0x40]
mov r14d, dword [rsp + 0x68]
mov qword [rbx], rax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], bp
mov word [rbx + 0x3e], cx
mov dword [rbx + 0x38], r14d
mov word [rbx + 0x3c], dx
cmp bp, cx
jne 0x1401b1c32
movzx ecx, word [r12 + 0x5e]
lea eax, [r9 + rbp]
cmp eax, ecx
jae 0x1401b1c32
cmp bp, dx
jne 0x1401b1c32
test byte [r12 + 0x64], 0x40
jne 0x1401b1c32
test byte [r12 + 0x64], 0x80
je 0x1401b1c32
mov rcx, qword [rsp + 0x70]
test dword [rcx + 0x60], 0x4000
jne 0x1401b1c32
mov rax, qword [r12 + 0x10]
cmp word [rax + rbp*2 + 2], 0x2a
jl 0x1401b1c32
lea r8d, [r9 + rdx]
mov rdx, rbx
call fcn.1401b3174
xor edx, edx
mov esi, eax
test eax, eax
jne 0x1401b1c32
movzx ecx, word [rbx + 0x3c]
lea r8d, [rax + 1]
add word [rbx + 0x18], r8w
add word [rbx + 0x3e], r8w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
mov rcx, r13
add word [rbx + 0x3c], r8w
mov r8, r12
bts dword [rbx + 0x38], 0xf
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x78]
movzx r9d, word [rax + rbp*2]
sub r9w, word [rax + rbp*2 + 2]
sub word [rbx + 0x16], r9w
add r9w, 5
add r9w, r15w
call fcn.1401b1158
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x42]
mov word [rbx + 0x3e], ax
mov word [rbx + 0x18], bp
mov dword [rbx + 0x38], r14d
mov eax, esi
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.1401bcee0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret