Function at 0x1401850e0
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, 0xf0
movzx esi, word [rsp + 0x140]
xor eax, eax
mov r12, rdx
mov r14, r8
mov rdx, rcx
mov r15d, eax
mov edi, eax
mov qword [rsp + 0x38], rax
test si, si
je 0x140185145
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x60], 0x40
je 0x140185145
xor al, al
add rsp, 0xf0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov qword [rsp + 0xe0], rbp
movzx ebp, word [r12]
mov word [rsp + 0x68], bp
cmp bp, 0x3f
jbe 0x140185164
xor al, al
jmp 0x140185ae1
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xd8], r13
movzx r13d, bp
xor ebp, ebp
mov ecx, r13d
mov ebx, 1
shl rbx, cl
mov ecx, 0x803
mov al, 1
dec rbx
mov r10d, 0x182
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x88], rbp
mov r11d, ebp
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x60], rbp
mov dword [rsp + 0x50], r10d
test cx, r9w
je 0x1401851c9
mov r10d, 0x183
mov dword [rsp + 0x50], r10d
mov rcx, rbp
mov r8d, ebp
mov dword [rsp + 0x6c], ebp
mov qword [rsp + 0x80], rcx
mov r10d, dword [rsp + 0x50]
cmp rdi, rbx
jae 0x140185a89
movzx eax, si
cmp r8d, eax
jg 0x140185a82
test r8d, r8d
jle 0x140185203
or r11, qword [r15 + 8]
mov qword [rsp + 0x60], r11
cmp r8d, eax
jge 0x140185228
mov rax, qword [r14 + 0x18]
mov r8, qword [rax + rcx*8]
mov eax, 0x800
mov qword [rsp + 0x48], r8
test ax, r9w
je 0x140185235
mov r15, r8
jmp 0x140185a45
mov r8, qword [rsp + 0x148]
mov qword [rsp + 0x48], r8
test dword [r8 + 0x38], 0x400
jne 0x140185a76
movzx eax, r9w
mov ecx, pe_nt_image_headers64
and ax, cx
mov word [rsp + 0x70], ax
je 0x14018525b
mov word [r8 + 0x1e], bp
movzx eax, byte [r8 + 0x10]
mov r15d, ebp
imul rcx, rax, 0x70
mov rax, qword [rdx + 8]
mov ebx, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x5c], ebx
test r13d, r13d
jle 0x14018540f
lea r14, [r12 + 8]
mov eax, 1
mov r12d, ebx
nop dword [rax]
mov ecx, r15d
mov rbp, rax
shl rbp, cl
test rdi, rbp
jne 0x1401853e4
mov rbx, qword [r14]
test rbx, rbx
je 0x1401853e4
nop
mov eax, dword [rbx + 4]
test eax, 0x41000
je 0x1401852d8
bt eax, 0x12
jae 0x1401852ca
mov rax, qword [rbx + 0x20]
mov rbx, qword [rax + 8]
jmp 0x1401852ce
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x1401852b0
jmp 0x1401853df
test rbx, rbx
je 0x1401853df
movzx eax, byte [rbx]
add al, 0x59
test al, 0xfd
jne 0x1401853df
cmp dword [rbx + 0x2c], r12d
jne 0x1401853df
movsx r8d, word [rbx + 0x30]
mov r9, r11
lea rcx, [rdx + 0x78]
movzx eax, r10w
not r9
mov edx, r12d
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call fcn.14016fba0
mov rsi, rax
test rax, rax
je 0x1401853cd
movzx r9d, word [rax + 0x14]
cmp r9w, 1
jne 0x140185368
mov r8, qword [rsp + 0x48]
xor ecx, ecx
movzx edx, word [r8 + 0x3c]
test edx, edx
jle 0x140185364
mov r8, qword [r8 + 0x48]
nop dword [rax]
movsxd rax, ecx
cmp rsi, qword [r8 + rax*8]
je 0x14018535f
inc ecx
cmp ecx, edx
jl 0x140185350
mov r8, qword [rsp + 0x48]
cmp ecx, edx
jge 0x1401853d2
test r9b, 0x82
je 0x1401853be
cmp word [rbx + 0x30], 0
jl 0x1401853be
mov rbx, qword [rsp + 0x120]
mov rdx, qword [r14]
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.14012c530
mov rdi, rax
test rax, rax
jne 0x14018539a
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rdx, qword [rsi]
mov rcx, rbx
call fcn.14012ca50
test rax, rax
je 0x1401853c8
mov rdx, qword [rax]
mov rcx, qword [rdi]
call fcn.140153e10
mov rdi, qword [rsp + 0x38]
test eax, eax
jne 0x1401853cd
or rdi, rbp
mov qword [rsp + 0x38], rdi
jmp 0x1401853cd
mov rdi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x120]
mov r11, qword [rsp + 0x60]
mov eax, 1
mov r10d, dword [rsp + 0x50]
inc r15d
add r14, 0x20
cmp r15d, r13d
jl 0x140185290
movzx r9d, word [rsp + 0x138]
mov ebx, r12d
mov r12, qword [rsp + 0x128]
xor ebp, ebp
mov eax, dword [r8 + 0x38]
bt eax, 0xc
jb 0x14018588a
bt eax, 8
jae 0x140185436
mov esi, dword [rsp + 0x30]
mov r13, rbp
mov word [rsp + 0x54], bp
mov ecx, 1
jmp 0x140185476
mov r13, qword [r8 + 0x20]
test r13, r13
je 0x140185ac6
test byte [r13 + 0x64], 4
jne 0x140185ac6
cmp byte [r13 + 0x62], 0
movzx ecx, word [r13 + 0x5e]
mov word [rsp + 0x54], cx
movzx ecx, word [r13 + 0x60]
je 0x14018546f
bt eax, 0xf
jb 0x14018546f
mov sil, 1
jmp 0x140185472
xor sil, sil
mov dword [rsp + 0x30], esi
xor al, al
xor r11b, r11b
mov r15d, ebp
mov byte [rsp + 0x34], al
mov byte [rsp + 0x35], al
movzx eax, cx
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x74], eax
test eax, eax
jle 0x140185885
nop word [rax + rax]
movzx r10d, word [r8 + 0x18]
mov r14b, 1
cmp r15d, r10d
jge 0x14018551a
movzx eax, word [r8 + 0x3e]
cmp r15d, eax
jl 0x14018551a
mov r9, qword [r8 + 0x48]
mov edx, dword [rsp + 0x50]
movsxd rax, r15d
mov rcx, qword [r9 + rax*8]
movzx eax, word [rcx + 0x14]
test dx, ax
je 0x1401854f2
movzx r9d, word [rsp + 0x138]
mov ecx, 0x180
test cx, ax
je 0x14018582b
xor sil, sil
mov dword [rsp + 0x30], esi
jmp 0x14018582b
test al, 1
je 0x14018551a
mov r8, qword [rcx]
lea edx, [r15 + 1]
cmp edx, r10d
jge 0x14018551a
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r8
je 0x140185517
inc edx
cmp edx, r10d
jl 0x140185502
jmp 0x14018551a
xor r14b, r14b
test r13, r13
je 0x140185548
mov rax, qword [r13 + 8]
movsxd rcx, r15d
movsx ebp, word [rax + rcx*2]
mov rax, qword [r13 + 0x38]
movzx r12d, byte [rcx + rax]
mov rax, qword [r13 + 0x18]
movsx ecx, word [rax + 0x34]
and r12b, 1
cmp ebp, ecx
jne 0x14018554e
or ebp, 0xffffffff
jmp 0x14018554e
or ebp, 0xffffffff
xor r12b, r12b
test sil, sil
je 0x1401855a3
test ebp, ebp
js 0x14018558f
cmp r15d, r10d
jl 0x14018558f
movsxd rax, ebp
mov r8d, 0
movzx esi, sil
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + 8]
test byte [rcx + rdx*8 + 8], 0xf
cmove esi, r8d
cmp ebp, 0xfffffffe
movzx eax, sil
cmove eax, r8d
mov byte [rsp + 0x30], al
jmp 0x1401855a6
xor r8d, r8d
movzx eax, sil
cmp ebp, 0xfffffffe
cmove eax, r8d
mov byte [rsp + 0x30], al
jmp 0x1401855a6
xor r8d, r8d
mov esi, r8d
test r14b, r14b
je 0x14018584a
cmp esi, dword [rsp + 0x58]
jge 0x140185845
mov eax, esi
bt rdi, rax
jb 0x140185791
movsxd rdi, esi
shl rdi, 5
add rdi, qword [rsp + 0x128]
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x14018578c
mov eax, dword [rdx + 4]
test eax, 0x41000
je 0x14018560c
bt eax, 0x12
jae 0x1401855fe
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + 8]
jmp 0x140185602
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x1401855e4
jmp 0x14018578c
test rdx, rdx
je 0x14018578c
test byte [rsp + 0x138], 0xc0
movzx r14d, r14b
cmove r14d, r8d
cmp ebp, 0xffffffff
jl 0x14018564e
movzx eax, byte [rdx]
add al, 0x59
test al, 0xfd
jne 0x14018578c
cmp dword [rdx + 0x2c], ebx
jne 0x14018578c
movsx eax, word [rdx + 0x30]
cmp eax, ebp
jne 0x14018578c
jmp 0x1401856c5
mov rax, qword [r13 + 0x50]
movsxd rcx, r15d
shl rcx, 5
mov r8, qword [rcx + rax + 8]
test r8, r8
je 0x140185690
mov eax, dword [r8 + 4]
test eax, 0x41000
je 0x140185690
bt eax, 0x12
jae 0x14018567e
mov rax, qword [r8 + 0x20]
mov r8, qword [rax + 8]
jmp 0x140185682
mov r8, qword [r8 + 0x10]
test r8, r8
jne 0x140185663
nop word [rax + rax]
mov eax, dword [rdx + 4]
test eax, 0x41000
je 0x1401856b3
bt eax, 0x12
jae 0x1401856aa
mov rax, qword [rdx + 0x20]
mov rdx, qword [rax + 8]
jmp 0x1401856ae
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x140185690
mov r9d, ebx
xor ecx, ecx
call fcn.14012c7c0
test eax, eax
jne 0x140185789
cmp ebp, 0xffffffff
je 0x140185711
mov rax, qword [rsp + 0x120]
mov rdx, qword [rdi + 8]
mov rbx, qword [rax]
mov rcx, rbx
call fcn.14012c530
test rax, rax
jne 0x1401856ed
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov r8, qword [rax]
mov rax, qword [r13 + 0x40]
movsxd rcx, r15d
mov r9, qword [rax + rcx*8]
sub r9, r8
nop
movzx ecx, byte [r8]
movzx eax, byte [r9 + r8]
cmp ecx, eax
jne 0x14018576c
test ecx, ecx
jne 0x140185781
cmp word [rsp + 0x70], 0
mov r8, qword [rsp + 0x48]
je 0x140185727
lea eax, [r15 + 1]
mov word [r8 + 0x1e], ax
movzx r9d, word [rsp + 0x138]
test r9b, 0x40
jne 0x1401857d2
mov rcx, qword [rsp + 0x128]
movsxd rax, esi
shl rax, 5
cmp byte [rsp + 0x34], 0
je 0x1401857a5
movzx ecx, byte [rax + rcx + 0x18]
xor r12b, byte [rsp + 0x35]
and cl, 1
cmp r12b, cl
je 0x1401857d2
mov r11d, dword [rsp + 0x40]
jmp 0x140185853
lea r10, [0x1401dcbb0]
movzx edx, byte [rax + r10]
movzx ecx, byte [rcx + r10]
cmp ecx, edx
jne 0x140185789
inc r8
jmp 0x140185700
xor r8d, r8d
mov rdi, qword [rsp + 0x38]
inc esi
test r14b, r14b
je 0x140185845
mov ebx, dword [rsp + 0x5c]
jmp 0x1401855b2
movzx ebx, byte [rax + rcx + 0x18]
and bl, 1
xor bl, r12b
mov byte [rsp + 0x35], bl
je 0x1401857cd
mov ecx, dword [rsp + 0x6c]
mov eax, 1
shl rax, cl
mov rcx, qword [rsp + 0x150]
or qword [rcx], rax
mov byte [rsp + 0x34], 1
mov r12, qword [rsp + 0x128]
movsxd rax, esi
shl rax, 5
test byte [rax + r12 + 0x18], 2
je 0x1401857fb
movzx eax, word [r8 + 0x18]
cmp r15d, eax
jne 0x14018583e
or dword [r8 + 0x38], 0x80000
mov r11d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
cmp ebp, 0xffffffff
mov eax, 1
mov ecx, esi
mov esi, dword [rsp + 0x30]
movzx r11d, r11b
cmove r11d, eax
shl rax, cl
or rdi, rax
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x38], rdi
inc r15d
cmp r15d, dword [rsp + 0x74]
jge 0x140185874
mov ebx, dword [rsp + 0x5c]
jmp 0x1401854a0
mov r11d, dword [rsp + 0x40]
jmp 0x14018585b
mov r11d, dword [rsp + 0x40]
movzx r9d, word [rsp + 0x138]
mov r12, qword [rsp + 0x128]
test r15d, r15d
je 0x14018586a
movzx eax, word [rsp + 0x54]
cmp r15d, eax
jge 0x14018586f
mov byte [rsp + 0x30], 0
mov rdi, qword [rsp + 0x38]
mov r13d, dword [rsp + 0x58]
test r11b, r11b
je 0x14018588a
mov byte [rsp + 0x30], 1
jmp 0x140185895
mov r13d, dword [rsp + 0x58]
cmp byte [rsp + 0x30], 0
je 0x140185a6f
mov rcx, qword [rsp + 0x88]
mov r15, qword [rsp + 0x48]
xor r10d, r10d
or rcx, qword [r15 + 8]
mov ebp, r10d
mov qword [rsp + 0x88], rcx
test r13d, r13d
jle 0x140185a23
lea r14, [r12 + 8]
mov r12, qword [rsp + 0x120]
mov r15, rcx
mov r11d, 1
mov ecx, ebp
mov rsi, r11
shl rsi, cl
test rdi, rsi
jne 0x1401859fc
mov rdi, qword [r14]
lea rax, [r12 + 0x260]
test rdi, rdi
je 0x140185947
cmp byte [rdi], 0xa7
jne 0x1401859c7
test byte [rdi + 4], 8
jne 0x1401859c7
mov r8d, dword [rdi + 0x2c]
cmp dword [rax + 8], r8d
jne 0x140185916
mov rbx, r11
jmp 0x14018594a
movsxd r9, dword [rax + 4]
mov edx, r11d
mov rcx, r11
cmp r11, r9
jge 0x140185947
add rax, 0xc
nop dword [rax]
cmp dword [rax], r8d
je 0x1401859bd
inc rcx
inc edx
add rax, 4
cmp rcx, r9
jl 0x140185930
mov rbx, r10
test rbx, rbx
jne 0x14018599d
lea rax, [fcn.1400dd3e0]
mov word [rsp + 0xbc], r11w
mov dword [rsp + 0xc0], r10d
mov qword [rsp + 0xa0], rax
lea rax, [0x140152270]
mov qword [rsp + 0xa8], rax
test rdi, rdi
je 0x14018599d
lea rcx, [rsp + 0x98]
mov rdx, rdi
call fcn.1401814e0
cmp word [rsp + 0xbc], bx
je 0x1401859ee
mov rdi, qword [rsp + 0x38]
mov rax, r15
mov r11d, 1
not rax
test rbx, rax
jne 0x1401859f9
or rdi, rsi
mov qword [rsp + 0x38], rdi
jmp 0x1401859f9
mov ecx, edx
mov rbx, r11
shl rbx, cl
jmp 0x14018594a
test dword [rdi + 4], 0x804000
jne 0x140185947
mov rdx, rdi
mov rcx, rax
call fcn.14016fa00
xor r10d, r10d
mov rbx, rax
lea r11d, [r10 + 1]
jmp 0x14018594a
mov rdi, qword [rsp + 0x38]
mov r11d, 1
xor r10d, r10d
inc ebp
add r14, 0x20
cmp ebp, r13d
jl 0x1401858d3
mov r15, qword [rsp + 0x48]
mov r12, qword [rsp + 0x128]
movzx r9d, word [rsp + 0x138]
xor ebp, ebp
mov rdx, qword [rsp + 0x120]
mov r11, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x78]
movzx esi, word [rsp + 0x140]
mov r14, qword [rsp + 0x130]
mov r8d, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x30]
inc qword [rsp + 0x80]
inc r8d
mov dword [rsp + 0x6c], r8d
test al, al
je 0x140185a86
mov rcx, qword [rsp + 0x80]
jmp 0x1401851db
mov r15, qword [rsp + 0x48]
jmp 0x140185a21
cmp byte [r8 + 0x20], 0
je 0x140185a82
test r9b, r9b
jns 0x140185a8b
mov eax, dword [rsp + 0x30]
cmp rdi, rbx
jne 0x140185a92
movzx eax, byte [rsp + 0x68]
jmp 0x140185ad1
test al, al
jne 0x140185acf
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x140185ac6
nop
cmp ecx, 0x40
jge 0x140185ab2
mov edx, 1
shl rdx, cl
dec rdx
jmp 0x140185ab5
mov rdx, rbp
mov rax, rdx
and rax, rdi
cmp rax, rdx
je 0x140185aca
dec ecx
test ecx, ecx
jg 0x140185aa0
xor al, al
jmp 0x140185ad1
movzx eax, cl
jmp 0x140185ad1
mov al, 0xff
mov rbx, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xe0]
add rsp, 0xf0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret