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

Disassembly:
mov r11, rsp
mov word [r11 + 0x20], r9w
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
xor ebp, ebp
movzx r10d, r9w
mov rbx, r8
mov r9, rdx
mov r15, rcx
mov edi, ebp
mov esi, ebp
cmp word [rsp + 0x100], bp
je 0x140195cf8
mov rax, qword [rcx]
mov r9, qword [rax]
test byte [r9 + 0x5c], 0x40
jne 0x14019645e
mov r9, rdx
movzx edx, word [r9]
mov word [rsp + 0x52], dx
cmp edx, 0x3f
ja 0x14019645e
mov eax, 1
mov dword [rsp + 0x44], edx
mov r8d, eax
mov byte [rsp + 0x30], al
mov ecx, edx
mov qword [rsp + 0x60], rbp
shl r8, cl
mov r12b, al
sub r8, rax
mov qword [rsp + 0x48], rbp
mov ecx, 0x803
mov qword [rsp + 0x68], r8
movzx eax, r10w
mov r13d, edx
and ax, cx
mov rdx, rbp
neg ax
mov qword [rsp + 0x70], rdx
mov ecx, ebp
mov r14, rbp
sbb r11w, r11w
mov dword [rsp + 0x40], ecx
neg r11w
add r11w, 0x182
mov word [rsp + 0x32], r11w
cmp rsi, r8
jae 0x140196428
movzx eax, word [rsp + 0x100]
cmp ecx, eax
jg 0x140196430
test ecx, ecx
jle 0x140195d91
or r14, qword [rdi + 8]
mov qword [rsp + 0x48], r14
cmp ecx, eax
jge 0x140195db0
bt r10w, 0xb
mov rax, qword [rbx + 0x18]
mov rdi, qword [rax + rdx*8]
mov qword [rsp + 0x78], rdi
jb 0x1401963f2
jmp 0x140195dbd
mov rdi, qword [rsp + 0x108]
mov qword [rsp + 0x78], rdi
mov edx, dword [rdi + 0x28]
bt edx, 0xa
jb 0x140196412
movzx eax, r10w
mov ecx, 0x80
and ax, cx
mov word [rsp + 0x50], ax
je 0x140195de1
mov word [rdi + 0x1e], bp
movzx eax, byte [rdi + 0x10]
mov r12d, ebp
imul rcx, rax, 0x70
mov rax, qword [r15 + 8]
mov r10d, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x38], r10d
test r13d, r13d
je 0x140195f42
mov r13, rbp
lea rbp, [r9 + 8]
mov r9d, 1
mov eax, r12d
bt rsi, rax
jb 0x140195f1e
mov rcx, qword [rbp]
call fcn.1401581dc
mov rbx, rax
cmp byte [rax], 0xa4
jne 0x140195f1e
cmp dword [rax + 0x2c], r10d
jne 0x140195f1e
movsx r8d, word [rbx + 0x30]
lea rcx, [r15 + 0x68]
xor edx, edx
movzx eax, r11w
mov qword [rsp + 0x28], rdx
mov r9, r14
mov edx, r10d
mov dword [rsp + 0x20], eax
not r9
call fcn.1401880c0
xor r11d, r11d
mov r14, rax
lea r9d, [r11 + 1]
test rax, rax
je 0x140195f0e
cmp word [rax + 0x14], r9w
jne 0x140195e9e
movzx edx, word [rdi + 0x2c]
mov ecx, r11d
test edx, edx
je 0x140195e9a
mov r8, qword [rdi + 0x38]
mov eax, ecx
cmp r14, qword [r8 + rax*8]
je 0x140195f04
add ecx, r9d
cmp ecx, edx
jl 0x140195e8b
cmp ecx, edx
jge 0x140195f0e
test byte [r14 + 0x14], 0x82
je 0x140195f04
cmp word [rbx + 0x30], r11w
jl 0x140195f04
mov rbx, qword [r15]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.140156c04
mov r15, rax
test rax, rax
jne 0x140195eca
mov rax, qword [rbx]
mov r15, qword [rax + 0x10]
mov rax, qword [r14]
test dword [rax + 4], 0x200
je 0x140195ee0
mov rdx, qword [rax + 0x18]
mov r8, qword [rax + 0x10]
jmp 0x140195ee8
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
mov rcx, rbx
call fcn.14014ba20
test rax, rax
je 0x140195f08
mov rdx, qword [rax]
mov rcx, qword [r15]
call fcn.140174cfc
test eax, eax
jne 0x140195f08
bts rsi, r13
mov r9d, 1
mov r10d, dword [rsp + 0x38]
movzx r11d, word [rsp + 0x32]
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0xe0]
add r12d, r9d
add r13, r9
add rbp, 0x20
cmp r12d, dword [rsp + 0x44]
jl 0x140195e10
mov edx, dword [rdi + 0x28]
xor ebp, ebp
jmp 0x140195f48
mov r9d, 1
bt edx, 0xc
jb 0x140196300
xor r15d, r15d
bt edx, 8
jae 0x140195f6c
mov r11b, byte [rsp + 0x30]
movzx eax, r9w
mov word [rsp + 0x3c], r15w
jmp 0x140195fae
mov rbp, qword [rdi + 0x20]
test rbp, rbp
je 0x14019645e
test byte [rbp + 0x64], 4
jne 0x14019645e
movzx eax, word [rbp + 0x5e]
mov word [rsp + 0x3c], ax
movzx eax, word [rbp + 0x60]
cmp byte [rbp + 0x62], r15b
je 0x140195fa6
bt edx, 0xf
jb 0x140195fa6
mov r11b, r9b
mov byte [rsp + 0x30], r9b
jmp 0x140195fae
mov r11b, r15b
mov byte [rsp + 0x30], r15b
movzx eax, ax
mov dl, r15b
mov byte [rsp + 0x35], r15b
mov ebx, r15d
mov byte [rsp + 0x34], r15b
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x58], eax
test eax, eax
je 0x1401962fe
movzx r8d, word [rdi + 0x18]
mov r14b, r9b
cmp ebx, r8d
jge 0x14019604f
movzx eax, word [rdi + 0x2e]
cmp ebx, eax
jl 0x14019604f
mov r9, qword [rdi + 0x38]
movsxd rax, ebx
mov rcx, qword [r9 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x32], ax
je 0x140196020
mov ecx, 0x180
mov r9d, 1
test cx, ax
movzx eax, r11b
mov ecx, r15d
cmove ecx, eax
mov r11b, cl
mov byte [rsp + 0x30], cl
jmp 0x1401962ea
mov r12d, 1
test r12b, al
je 0x14019604c
mov r10, qword [rcx]
lea edx, [rbx + 1]
jmp 0x140196042
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r10
je 0x140196049
add edx, r12d
cmp edx, r8d
jl 0x140196033
jmp 0x14019604c
mov r14b, r15b
mov r9, r12
test rbp, rbp
je 0x14019607a
mov rax, qword [rbp + 8]
movsxd rcx, ebx
movsx r12d, word [rax + rcx*2]
mov rax, qword [rbp + 0x38]
mov r13b, byte [rcx + rax]
mov rax, qword [rbp + 0x18]
and r13b, r9b
movsx ecx, word [rax + 0x44]
cmp r12d, ecx
jne 0x140196081
jmp 0x14019607d
mov r13b, r15b
or r12d, 0xffffffff
test r11b, r11b
je 0x1401960ae
test r12d, r12d
js 0x1401960ae
cmp ebx, r8d
jl 0x1401960ae
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + 8]
movsxd rax, r12d
shl rax, 5
mov al, byte [rax + rcx + 0x18]
neg al
sbb cl, cl
and cl, r11b
mov byte [rsp + 0x30], cl
test r14b, r14b
je 0x14019624e
cmp r15d, dword [rsp + 0x44]
jge 0x14019624e
mov eax, r15d
bt rsi, rax
jb 0x1401961d8
mov r9, qword [rsp + 0xe8]
movsxd r8, r15d
mov rax, r8
mov qword [rsp + 0x88], r8
shl rax, 5
mov qword [rsp + 0x80], rax
mov rcx, qword [rax + r9 + 8]
call fcn.1401581dc
movzx ecx, word [rsp + 0xf8]
mov rdx, rax
mov al, cl
and al, 0xc0
neg al
sbb al, al
and al, r14b
mov byte [rsp + 0x36], al
mov r14b, al
cmp r12d, 0xffffffff
jl 0x14019614f
cmp byte [rdx], 0xa4
jne 0x1401961d2
mov r10d, dword [rsp + 0x38]
cmp dword [rdx + 0x2c], r10d
jne 0x1401961d2
movsx eax, word [rdx + 0x30]
cmp eax, r12d
jne 0x1401961d2
cmp r12d, 0xffffffff
je 0x1401961f8
jmp 0x14019618a
mov rax, qword [rbp + 0x50]
movsxd rcx, ebx
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.1401581dc
mov rcx, rdx
mov r8, rax
call fcn.1401581dc
mov r9d, dword [rsp + 0x38]
mov rdx, rax
xor ecx, ecx
call fcn.140156db4
test eax, eax
jne 0x1401961d2
mov r9, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x80]
mov r14, qword [rax]
mov rdx, qword [rdx + r9 + 8]
mov rcx, r14
call fcn.140156c04
test rax, rax
jne 0x1401961b6
mov rax, qword [r14]
mov rax, qword [rax + 0x10]
mov rdx, qword [rbp + 0x40]
mov r14b, byte [rsp + 0x36]
movsxd rcx, ebx
mov rdx, qword [rdx + rcx*8]
mov rcx, qword [rax]
call fcn.140174cfc
test eax, eax
je 0x1401961e0
mov r9d, 1
add r15d, r9d
jmp 0x1401960ae
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0xe8]
movzx ecx, word [rsp + 0xf8]
xor r15d, r15d
lea r11d, [r15 + 1]
cmp word [rsp + 0x50], r15w
je 0x14019620f
lea eax, [r11 + rbx]
mov word [rdi + 0x1e], ax
mov dl, r11b
test cl, 0x40
jne 0x1401962a8
mov r15b, byte [rsp + 0x35]
mov rax, r8
shl rax, 5
mov cl, byte [rax + r9 + 0x18]
and cl, r11b
test r15b, r15b
je 0x140196280
mov r10b, byte [rsp + 0x34]
xor r13b, r10b
mov byte [rsp + 0x34], r10b
cmp r13b, cl
mov byte [rsp + 0x35], r15b
sete dl
je 0x1401962a5
xor ebp, ebp
test ebx, ebx
je 0x14019625d
movzx eax, word [rsp + 0x3c]
cmp ebx, eax
jge 0x140196262
mov byte [rsp + 0x30], bpl
mov r9d, 1
cmp byte [rsp + 0x54], 0
je 0x140196300
mov r12b, r9b
mov byte [rsp + 0x30], r9b
jmp 0x14019630e
xor cl, r13b
mov byte [rsp + 0x34], cl
je 0x1401962a0
mov r10, qword [rsp + 0x110]
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [r10]
bts rcx, rax
mov qword [r10], rcx
mov byte [rsp + 0x35], r11b
xor r15d, r15d
mov rax, r8
shl rax, 5
test byte [rax + r9 + 0x18], 2
je 0x1401962c8
movzx eax, word [rdi + 0x18]
cmp ebx, eax
jne 0x14019624e
bts dword [rdi + 0x28], 0x13
test dl, dl
je 0x14019624e
mov ecx, dword [rsp + 0x54]
cmp r12d, 0xffffffff
mov r11b, byte [rsp + 0x30]
mov r9d, 1
movzx ecx, cl
cmove ecx, r9d
bts rsi, r8
mov dword [rsp + 0x54], ecx
add ebx, r9d
cmp ebx, dword [rsp + 0x58]
jl 0x140195fd1
xor ebp, ebp
jmp 0x140196268
xor ebp, ebp
mov r12b, byte [rsp + 0x30]
test r12b, r12b
je 0x1401963b8
mov rbp, qword [rsp + 0x60]
or rbp, qword [rdi + 8]
mov r13d, dword [rsp + 0x44]
mov qword [rsp + 0x60], rbp
xor ebp, ebp
mov ebx, ebp
test r13d, r13d
je 0x1401963bd
mov r12, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xe0]
mov eax, ebx
bt rsi, rax
jb 0x1401963a4
mov eax, ebx
shl rax, 5
mov r15d, ebx
mov r14, qword [rax + r12 + 8]
test r14, r14
je 0x140196370
lea rcx, [rdi + 0x290]
mov rdx, r14
call fcn.140187fa0
mov rbp, rax
test rax, rax
jne 0x140196383
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 1]
call fcn.14010e198
test eax, eax
je 0x14019639c
mov rax, qword [rsp + 0x60]
mov r9d, 1
not rax
test rbp, rax
jne 0x1401963a2
bts rsi, r15
jmp 0x1401963a2
mov r9d, 1
xor ebp, ebp
add ebx, r9d
cmp ebx, r13d
jl 0x14019633e
mov rdi, qword [rsp + 0x78]
mov r12b, byte [rsp + 0x30]
jmp 0x1401963bd
mov r13d, dword [rsp + 0x44]
mov r8, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x40]
mov r9, qword [rsp + 0xe8]
movzx r10d, word [rsp + 0xf8]
mov r15, qword [rsp + 0xe0]
movzx r11d, word [rsp + 0x32]
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0xf0]
mov eax, 1
add qword [rsp + 0x70], rax
add ecx, eax
mov rdx, qword [rsp + 0x70]
mov dword [rsp + 0x40], ecx
test r12b, r12b
jne 0x140195d6b
jmp 0x140196425
cmp byte [rdi + 0x1d], bpl
je 0x140196430
mov eax, 0x80
test al, r10b
jne 0x140196430
mov rsi, r8
cmp rsi, r8
jne 0x140196430
mov al, byte [rsp + 0x52]
jmp 0x140196460
test r12b, r12b
jne 0x140196478
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x14019645e
mov r8d, 1
mov rdx, r8
shl rdx, cl
sub rdx, r8
mov rax, rdx
and rax, rsi
cmp rax, rdx
je 0x140196474
sub ecx, r8d
test ecx, ecx
jg 0x140196443
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, cl
jmp 0x140196460
mov al, 0xff
jmp 0x140196460