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

Disassembly:
mov word [rsp + 0x20], r9w
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x100
mov rax, qword [rcx]
mov r12, rdx
movzx edi, word [rsp + 0x150]
xor edx, edx
mov qword [rsp + 0x60], rdx
mov r14, r8
mov r10, rcx
mov esi, edx
mov rax, qword [rax]
mov r15d, edx
mov qword [rsp + 0x80], rax
test di, di
je 0x14015193c
test byte [rax + 0x50], 0x80
je 0x14015193c
xor al, al
add rsp, 0x100
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
movzx eax, word [r12]
mov word [rsp + 0x70], ax
cmp ax, 0x3f
ja 0x14015192a
mov qword [rsp + 0xf8], rbx
mov r8d, edx
mov qword [rsp + 0xf0], rbp
mov ebx, 1
mov qword [rsp + 0xe8], r13
mov bpl, 1
movzx r13d, ax
mov r11, rdx
mov ecx, r13d
mov dword [rsp + 0x34], ebp
shl rbx, cl
mov eax, 0x800
dec rbx
mov dword [rsp + 0x54], r13d
and r9w, ax
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x98], rdx
mov ecx, edx
setne r8b
mov qword [rsp + 0x68], rdx
add r8w, 0x182
mov word [rsp + 0x3c], r9w
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x50], edx
mov qword [rsp + 0x90], rdx
nop dword [rax]
cmp r15, rbx
jae 0x14015212f
movzx eax, di
cmp ecx, eax
jg 0x14015212c
test ecx, ecx
jle 0x1401519f1
or r11, qword [rsi + 8]
mov qword [rsp + 0x68], r11
cmp ecx, eax
jge 0x140151a0e
mov rax, qword [r14 + 0x18]
mov rsi, qword [rax + rdx*8]
mov qword [rsp + 0x58], rsi
test r9w, r9w
jne 0x1401520f6
jmp 0x140151a1b
mov rsi, qword [rsp + 0x158]
mov qword [rsp + 0x58], rsi
test dword [rsi + 0x28], 0x400
jne 0x14015211e
movzx eax, byte [rsi + 0x10]
xor edi, edi
imul rcx, rax, 0x78
mov rax, qword [r10 + 8]
mov esi, edi
mov edx, dword [rcx + rax + 0x50]
mov dword [rsp + 0x40], edx
test r13d, r13d
jle 0x140151bb1
mov r13, qword [rsp + 0x58]
mov ebp, edi
mov r14d, edi
mov eax, esi
bt r15, rax
jb 0x140151b95
mov rax, qword [r12 + 8]
mov rbx, qword [r14 + rax]
test rbx, rbx
je 0x140151a95
nop dword [rax]
mov eax, dword [rbx + 4]
bt eax, 0xc
jae 0x140151a95
bt eax, 0x12
jae 0x140151a8c
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
mov rbx, qword [rcx]
jmp 0x140151a90
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140151a70
cmp byte [rbx], 0x98
jne 0x140151b95
cmp dword [rbx + 0x2c], edx
jne 0x140151b95
movzx eax, r8w
lea rcx, [r10 + 0x60]
movsx r8d, word [rbx + 0x30]
mov r9, r11
not r9
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.140143e90
mov rdi, rax
test rax, rax
je 0x140151b7d
movzx r10d, word [rax + 0x14]
cmp r10w, 1
jne 0x140151b0c
movzx r9d, word [r13 + 0x2c]
xor eax, eax
mov edx, eax
mov ecx, eax
test r9d, r9d
je 0x140151b07
mov rax, qword [r13 + 0x38]
cmp rdi, qword [rax]
je 0x140151b07
inc edx
inc rcx
add rax, 8
cmp rcx, r9
jl 0x140151af4
cmp edx, r9d
jge 0x140151b7d
test r10b, 0x82
je 0x140151b79
cmp word [rbx + 0x30], 0
jl 0x140151b79
mov rdx, qword [r12 + 8]
mov rcx, qword [rsp + 0x130]
mov rdx, qword [r14 + rdx]
mov rcx, qword [rcx]
call fcn.140111730
test rax, rax
jne 0x140151b43
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
mov rbx, qword [rax]
mov rax, qword [rsp + 0x130]
mov rdx, qword [rdi]
mov rcx, qword [rax]
call fcn.140111730
test rax, rax
jne 0x140151b6a
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax]
mov rcx, rbx
call fcn.14012cc10
test eax, eax
jne 0x140151b7d
bts r15, rbp
mov r11, qword [rsp + 0x68]
xor edi, edi
mov r8d, dword [rsp + 0x38]
mov r10, qword [rsp + 0x130]
mov edx, dword [rsp + 0x40]
inc esi
inc rbp
add r14, 0x28
cmp esi, dword [rsp + 0x54]
jl 0x140151a53
mov ebp, dword [rsp + 0x34]
mov qword [rsp + 0x60], r15
mov rsi, qword [rsp + 0x58]
mov eax, dword [rsi + 0x28]
bt eax, 0xc
jb 0x140151fa8
mov r14d, 0x100
test r14d, eax
je 0x140151bdd
xor edx, edx
mov r13d, edx
mov word [rsp + 0x44], dx
lea eax, [rdx + 1]
jmp 0x140151c13
mov r13, qword [rsi + 0x20]
test r13, r13
je 0x14015216c
test byte [r13 + 0x64], 4
jne 0x14015216c
cmp byte [r13 + 0x62], 0
movzx eax, word [r13 + 0x5e]
setne bpl
mov word [rsp + 0x44], ax
movzx eax, word [r13 + 0x60]
xor edx, edx
mov dword [rsp + 0x34], ebp
xor cl, cl
mov dword [rsp + 0x48], edx
xor bl, bl
mov byte [rsp + 0x31], cl
mov byte [rsp + 0x30], cl
mov r11d, edx
movzx ecx, ax
mov r12, rdx
mov dword [rsp + 0x4c], ebx
test ecx, ecx
je 0x140151fa8
mov eax, ecx
mov qword [rsp + 0xa0], rcx
mov r10, rdx
mov qword [rsp + 0x78], rdx
nop word [rax + rax]
movzx r9d, word [rsi + 0x18]
mov dil, 1
cmp r11d, r9d
jge 0x140151cc1
movzx eax, word [rsi + 0x2e]
cmp r11d, eax
jl 0x140151cc1
mov r8, qword [rsi + 0x38]
mov rcx, qword [r8 + r12*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x38], ax
je 0x140151c92
test r14w, ax
mov ecx, edx
movzx eax, bpl
cmove ecx, eax
movzx ebp, cl
mov dword [rsp + 0x34], ebp
jmp 0x140151f78
test al, 1
je 0x140151cc1
mov r10, qword [rcx]
lea edx, [r11 + 1]
cmp edx, r9d
jge 0x140151cba
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r10
je 0x140151cb7
inc edx
cmp edx, r9d
jl 0x140151ca2
jmp 0x140151cba
xor dil, dil
mov r10, qword [rsp + 0x78]
xor edx, edx
test r13, r13
je 0x140151ceb
mov rax, qword [r13 + 8]
movsx r14d, word [rax + r12*2]
mov rax, qword [r13 + 0x38]
movzx r15d, byte [r12 + rax]
mov rax, qword [r13 + 0x18]
movsx ecx, word [rax + 0x40]
cmp r14d, ecx
jne 0x140151cf2
or r14d, 0xffffffff
jmp 0x140151cf2
or r14d, 0xffffffff
xor r15b, r15b
test bpl, bpl
je 0x140151d20
test r14d, r14d
js 0x140151d20
cmp r11d, r9d
jl 0x140151d20
mov rax, qword [r13 + 0x18]
movzx ebp, bpl
mov rcx, qword [rax + 8]
movsxd rax, r14d
shl rax, 5
cmp byte [rax + rcx + 0x18], 0
cmove ebp, edx
mov dword [rsp + 0x34], ebp
mov ebp, edx
test dil, dil
je 0x140151ee3
nop dword [rax + rax]
cmp ebp, dword [rsp + 0x54]
jge 0x140151ed5
mov rcx, qword [rsp + 0x60]
mov eax, ebp
bt rcx, rax
jb 0x140151e8b
mov r8, qword [rsp + 0x138]
movsxd rax, ebp
lea rcx, [rax + rax*4]
lea rsi, [rcx*8]
mov rcx, qword [r8 + 8]
mov rcx, qword [rsi + rcx]
test rcx, rcx
je 0x140151d95
nop
mov eax, dword [rcx + 4]
bt eax, 0xc
jae 0x140151d95
bt eax, 0x12
jae 0x140151d8c
mov rax, qword [rcx + 0x20]
mov rcx, qword [rax + 8]
mov rcx, qword [rcx]
jmp 0x140151d90
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140151d70
test byte [rsp + 0x148], 0xc0
movzx eax, dil
cmovne edx, eax
movzx edi, dl
movzx ebx, dl
cmp r14d, 0xffffffff
jl 0x140151dd5
cmp byte [rcx], 0x98
jne 0x140151e89
mov eax, dword [rsp + 0x40]
cmp dword [rcx + 0x2c], eax
jne 0x140151e89
movsx eax, word [rcx + 0x30]
cmp eax, r14d
jne 0x140151e89
jmp 0x140151dfb
mov rax, qword [r13 + 0x50]
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + r10]
call fcn.1401118d0
test eax, eax
jne 0x140151e89
mov r8, qword [rsp + 0x138]
test r14d, r14d
js 0x140151e9c
mov rdx, qword [r8 + 8]
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsi + rdx]
mov rcx, qword [rax]
call fcn.140111730
test rax, rax
jne 0x140151e2d
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax]
lea r11, [0x140203820]
mov rax, qword [r13 + 0x40]
movzx r8d, byte [rdx]
mov r10, qword [rax + r12*8]
movzx r9d, byte [r8 + r11]
movzx eax, byte [r10]
movzx eax, byte [rax + r11]
sub r9d, eax
jne 0x140151e81
sub r10, rdx
nop dword [rax]
test r8b, r8b
je 0x140151e81
movzx r8d, byte [rdx + 1]
inc rdx
movzx eax, byte [r10 + rdx]
movzx r9d, byte [r8 + r11]
movzx ecx, byte [rax + r11]
sub r9d, ecx
je 0x140151e60
movzx edi, bl
test r9d, r9d
je 0x140151e9c
xor edx, edx
inc ebp
test dil, dil
je 0x140151ed5
mov r10, qword [rsp + 0x78]
jmp 0x140151d30
test byte [rsp + 0x148], 0x40
jne 0x140151f35
cmp byte [rsp + 0x31], 0
movsxd rax, ebp
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0x138]
mov rax, qword [rax + 8]
je 0x140151f0b
xor r15b, byte [rsp + 0x30]
cmp r15b, byte [rax + rcx*8 + 0x18]
sete al
test al, al
jne 0x140151f35
mov r11d, dword [rsp + 0x48]
mov ebx, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x58]
test r12, r12
je 0x140151ef2
movzx eax, word [rsp + 0x44]
cmp r11d, eax
jge 0x140151ef7
mov byte [rsp + 0x34], 0
test bl, bl
je 0x140151f9f
mov bpl, 1
mov dword [rsp + 0x34], ebp
jmp 0x140151fb1
movzx edx, byte [rax + rcx*8 + 0x18]
xor dl, r15b
mov byte [rsp + 0x30], dl
je 0x140151f30
mov rdx, qword [rsp + 0x160]
movsxd rax, dword [rsp + 0x50]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x31], 1
mov ebx, dword [rsp + 0x4c]
cmp r14d, 0xffffffff
mov rcx, qword [rsp + 0x60]
mov eax, 1
mov r11d, dword [rsp + 0x48]
mov r14d, 0x100
mov r10, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
movzx ebx, bl
cmove ebx, eax
movsxd rax, ebp
mov ebp, dword [rsp + 0x34]
bts rcx, rax
mov qword [rsp + 0x60], rcx
xor edx, edx
mov dword [rsp + 0x4c], ebx
inc r11d
add r10, 0x28
inc r12
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x78], r10
cmp r12, qword [rsp + 0xa0]
jl 0x140151c50
jmp 0x140151ef7
mov r15, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x34]
test bpl, bpl
je 0x1401520bd
mov r12, qword [rsp + 0x98]
xor eax, eax
or r12, qword [rsi + 8]
mov ebx, eax
mov r13d, dword [rsp + 0x54]
mov r15, qword [rsp + 0x60]
mov qword [rsp + 0x98], r12
test r13d, r13d
jle 0x1401520c2
mov esi, eax
mov r14d, eax
mov eax, ebx
bt r15, rax
jb 0x14015209b
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
add rcx, 0x288
mov rax, qword [rax + 8]
mov rdi, qword [r14 + rax]
mov rdx, rdi
call fcn.140143da0
mov rbp, rax
test rax, rax
jne 0x14015208c
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xc0], rax
lea rax, [0x1400e7c30]
mov qword [rsp + 0xb0], rax
lea rax, [0x1400ff790]
mov qword [rsp + 0xb8], rax
mov byte [rsp + 0xcc], 1
mov dword [rsp + 0xd0], 0
test rdi, rdi
je 0x14015208c
mov rdx, rdi
lea rcx, [rsp + 0xa8]
call fcn.14014ea20
cmp byte [rsp + 0xcc], 0
je 0x14015209b
mov rax, r12
not rax
test rbp, rax
jne 0x14015209b
bts r15, rsi
inc ebx
inc rsi
add r14, 0x28
cmp ebx, r13d
jl 0x140151fe1
mov rsi, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x34]
mov qword [rsp + 0x60], r15
jmp 0x1401520c2
mov r13d, dword [rsp + 0x54]
mov r10, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x38]
mov r11, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
movzx edi, word [rsp + 0x150]
movzx r9d, word [rsp + 0x3c]
mov r14, qword [rsp + 0x140]
inc qword [rsp + 0x90]
inc ecx
mov dword [rsp + 0x50], ecx
test bpl, bpl
je 0x14015212c
mov r12, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x90]
jmp 0x1401519d0
cmp byte [rsi + 0x1d], 0
mov rcx, rbx
cmove rcx, r15
mov r15, rcx
cmp r15, rbx
jne 0x140152138
movzx eax, byte [rsp + 0x70]
jmp 0x140152177
test bpl, bpl
jne 0x140152175
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x14015216c
nop word [rax + rax]
mov edx, 1
shl rdx, cl
dec rdx
mov rax, rdx
and rax, r15
cmp rax, rdx
je 0x140152170
dec ecx
test ecx, ecx
jg 0x140152150
xor al, al
jmp 0x140152177
movzx eax, cl
jmp 0x140152177
mov al, 0xff
mov rbp, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xe8]
add rsp, 0x100
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret