Function at 0x140104810
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 rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
xor eax, eax
movzx r10d, r9w
mov esi, eax
mov qword [rsp + 0x48], rax
mov r11d, eax
mov r13, r8
movzx eax, word [rsp + 0x120]
mov r8, rdx
mov r9, rcx
test ax, ax
je 0x140104880
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x60], 0x40
jne 0x140104fea
movzx r10d, word [rsp + 0x118]
movzx eax, word [rsp + 0x120]
movzx r15d, word [rdx]
mov word [rsp + 0x6a], r15w
cmp r15d, 0x3f
ja 0x140104fea
mov ecx, r15d
mov dword [rsp + 0x38], r15d
mov ebp, 1
mov dword [rsp + 0x80], 0x800
shl rbp, cl
mov r14d, r15d
xor r15d, r15d
mov dword [rsp + 0x6c], 0x80
dec rbp
mov qword [rsp + 0xa0], r15
mov edi, r15d
mov qword [rsp + 0x90], rbp
mov ecx, 0x803
mov dword [rsp + 0x84], 0x180
test cx, r10w
mov r12b, 1
mov edx, r15d
mov dword [rsp + 0x34], r12d
setne dil
mov qword [rsp + 0x78], rdx
add di, 0x182
mov ecx, r15d
mov ebx, r15d
mov dword [rsp + 0x3c], edi
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x98], rbx
cmp r11, rbp
jae 0x140104f97
movzx eax, ax
cmp ecx, eax
jg 0x140104fb7
test ecx, ecx
jle 0x140104937
or rdx, qword [rsi + 8]
mov qword [rsp + 0x78], rdx
cmp ecx, eax
jge 0x14010495b
mov rax, qword [r13 + 0x18]
mov rsi, qword [rax + rbx*8]
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x60], rsi
test ax, r10w
jne 0x140104f6d
jmp 0x140104968
mov rsi, qword [rsp + 0x128]
mov qword [rsp + 0x60], rsi
mov edx, dword [rsi + 0x38]
bt edx, 0xa
jb 0x140104fa0
movzx eax, r10w
and ax, word [rsp + 0x6c]
mov word [rsp + 0x68], ax
je 0x14010498a
mov word [rsi + 0x1e], r15w
movzx eax, byte [rsi + 0x10]
mov ebp, r15d
imul rcx, rax, 0x68
mov rax, qword [r9 + 8]
mov r10d, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x40], r10d
test r14d, r14d
je 0x140104a76
mov r13d, dword [rsp + 0x38]
lea r14, [r8 + 8]
mov r12, qword [rsp + 0x100]
nop dword [rax]
mov eax, ebp
bt r11, rax
jb 0x140104a54
mov rcx, qword [r14]
call fcn.1401475b0
mov rbx, rax
test rax, rax
je 0x140104a54
movzx eax, byte [rax]
add al, 0x59
test al, 0xfd
jne 0x140104a54
cmp dword [rbx + 0x2c], r10d
jne 0x140104a54
mov r9, qword [rsp + 0x78]
lea rcx, [r12 + 0x70]
movsx r8d, word [rbx + 0x30]
not r9
movzx eax, di
mov edx, r10d
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call fcn.1401092b0
mov rdi, rax
test rax, rax
je 0x140104a46
movzx r9d, word [rax + 0x14]
cmp r9w, 1
jne 0x140104a9e
movzx edx, word [rsi + 0x3c]
xor eax, eax
test edx, edx
je 0x140104a9a
mov r8, qword [rsi + 0x48]
movsxd rcx, eax
cmp rdi, qword [r8 + rcx*8]
je 0x140104a9a
inc eax
cmp eax, edx
jl 0x140104a37
mov r11, qword [rsp + 0x48]
mov edi, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
inc ebp
inc r15
add r14, 0x20
cmp ebp, r13d
jl 0x1401049c0
mov r12d, dword [rsp + 0x34]
mov r14d, r13d
mov edx, dword [rsi + 0x38]
bt edx, 0xc
jb 0x140104e7d
bt edx, 8
jae 0x140104af7
xor ebp, ebp
mov qword [rsp + 0x70], rbp
mov word [rsp + 0x54], bp
lea eax, [rbp + 1]
jmp 0x140104b3b
cmp eax, edx
jge 0x140104a46
test r9b, 0x82
je 0x140104ae4
cmp word [rbx + 0x30], 0
jl 0x140104ae4
mov rbx, qword [r12]
mov rdx, qword [r14]
mov rcx, rbx
call fcn.140147400
mov rdx, qword [rdi]
mov rcx, rbx
mov rsi, rax
call fcn.1401471e0
test rax, rax
je 0x140104a46
mov rdx, qword [rax]
mov rcx, qword [rsi]
call fcn.14017c900
test eax, eax
jne 0x140104a46
mov r11, qword [rsp + 0x48]
bts r11, r15
mov qword [rsp + 0x48], r11
jmp 0x140104a4b
mov rcx, qword [rsi + 0x20]
mov qword [rsp + 0x70], rcx
test rcx, rcx
je 0x140104fea
test byte [rcx + 0x64], 4
jne 0x140104fea
cmp byte [rcx + 0x62], 0
movzx eax, word [rcx + 0x5e]
mov word [rsp + 0x54], ax
movzx eax, word [rcx + 0x60]
je 0x140104b31
bt edx, 0xf
jb 0x140104b31
mov r12b, 1
jmp 0x140104b34
xor r12b, r12b
xor ebp, ebp
mov dword [rsp + 0x34], r12d
xor cl, cl
movzx eax, ax
xor dil, dil
mov byte [rsp + 0x32], cl
mov byte [rsp + 0x31], cl
mov r13d, ebp
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x88], eax
test eax, eax
je 0x140104e7d
movzx r10d, word [rsi + 0x18]
mov bl, 1
cmp r13d, r10d
jge 0x140104bd7
movzx eax, word [rsi + 0x3e]
cmp r13d, eax
jl 0x140104bd7
mov r8, qword [rsi + 0x48]
movsxd rax, r13d
mov r9, qword [r8 + rax*8]
movzx eax, word [r9 + 0x14]
test word [rsp + 0x3c], ax
je 0x140104bae
mov ecx, dword [rsp + 0x84]
test cx, ax
movzx eax, r12b
mov ecx, ebp
cmove ecx, eax
movzx r12d, cl
mov dword [rsp + 0x34], r12d
jmp 0x140104e5d
test bl, al
je 0x140104bd7
mov r9, qword [r9]
lea edx, [r13 + 1]
cmp edx, r10d
jge 0x140104bd7
nop
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r9
je 0x140104bd5
inc edx
cmp edx, r10d
jl 0x140104bc0
jmp 0x140104bd7
xor bl, bl
mov r8, qword [rsp + 0x70]
test r8, r8
je 0x140104c0b
mov rax, qword [r8 + 8]
movsxd rcx, r13d
movsx r15d, word [rax + rcx*2]
mov rax, qword [r8 + 0x38]
movzx edx, byte [rcx + rax]
mov rax, qword [r8 + 0x18]
and dl, 1
mov byte [rsp + 0x30], dl
movsx ecx, word [rax + 0x34]
cmp r15d, ecx
jne 0x140104c16
jmp 0x140104c10
mov byte [rsp + 0x30], 0
mov r15d, 0xffffffff
test r12b, r12b
je 0x140104c54
test r15d, r15d
js 0x140104c43
cmp r13d, r10d
jl 0x140104c54
movsxd rax, r15d
lea rdx, [rax + rax*2]
mov rax, qword [r8 + 0x18]
mov rcx, qword [rax + 8]
test byte [rcx + rdx*8 + 8], 0xf
jne 0x140104c54
xor al, al
mov dword [rsp + 0x34], eax
jmp 0x140104c54
cmp r15d, 0xfffffffe
movzx r12d, r12b
cmove r12d, ebp
mov dword [rsp + 0x34], r12d
mov esi, ebp
test bl, bl
je 0x140104d65
nop
cmp esi, r14d
jge 0x140104d61
mov eax, esi
bt r11, rax
jb 0x140104d57
mov r10, qword [rsp + 0x108]
movsxd r12, esi
mov r14, r12
shl r14, 5
add r14, r10
mov rcx, qword [r14 + 8]
call fcn.1401475b0
mov r9, rax
test rax, rax
je 0x140104d52
movzx edx, word [rsp + 0x118]
mov ecx, ebp
test dl, 0xc0
movzx eax, bl
cmovne ecx, eax
movzx ebx, cl
movzx ebp, cl
cmp r15d, 0xffffffff
jl 0x140104cf1
movzx eax, byte [r9]
cmp al, 0xa7
je 0x140104cce
cmp al, 0xa9
jne 0x140104d50
mov eax, dword [rsp + 0x40]
cmp dword [r9 + 0x2c], eax
jne 0x140104d50
movsx eax, word [r9 + 0x30]
cmp eax, r15d
jne 0x140104d50
movsxd rdi, r13d
cmp r15d, 0xffffffff
je 0x140104da5
jmp 0x140104d15
mov rax, qword [r8 + 0x50]
mov r8d, dword [rsp + 0x40]
movsxd rdi, r13d
mov rcx, rdi
shl rcx, 5
mov rdx, qword [rcx + rax + 8]
mov rcx, r9
call fcn.140140220
test eax, eax
jne 0x140104d46
mov rax, qword [rsp + 0x100]
mov rdx, qword [r14 + 8]
mov rcx, qword [rax]
call fcn.140147400
mov rcx, qword [rsp + 0x70]
movzx ebx, bpl
mov rdx, qword [rcx + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + rdi*8]
call fcn.14017c900
test eax, eax
je 0x140104d90
mov r11, qword [rsp + 0x48]
mov r8, qword [rsp + 0x70]
xor ebp, ebp
mov r14d, dword [rsp + 0x38]
inc esi
test bl, bl
jne 0x140104c60
mov edi, dword [rsp + 0x50]
test r13d, r13d
je 0x140104d74
movzx eax, word [rsp + 0x54]
cmp r13d, eax
jge 0x140104d7a
xor al, al
mov dword [rsp + 0x34], eax
test dil, dil
je 0x140104e78
mov r12b, 1
mov dword [rsp + 0x34], r12d
jmp 0x140104e86
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0x108]
movzx edx, word [rsp + 0x118]
cmp word [rsp + 0x68], 0
mov rsi, qword [rsp + 0x60]
je 0x140104dba
lea eax, [r13 + 1]
mov word [rsi + 0x1e], ax
test dl, 0x40
jne 0x140104e12
mov rax, r12
shl rax, 5
movzx ecx, byte [rax + r10 + 0x18]
and cl, 1
cmp byte [rsp + 0x32], 0
je 0x140104de9
movzx eax, byte [rsp + 0x30]
xor al, byte [rsp + 0x31]
cmp al, cl
jne 0x140104d61
jmp 0x140104e12
movzx edx, cl
xor dl, byte [rsp + 0x30]
mov byte [rsp + 0x31], dl
je 0x140104e0d
mov rdx, qword [rsp + 0x130]
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x32], 1
mov rax, r12
shl rax, 5
test byte [rax + r10 + 0x18], 2
je 0x140104e35
movzx eax, word [rsi + 0x18]
cmp r13d, eax
jne 0x140104d61
or dword [rsi + 0x38], 0x80000
mov edi, dword [rsp + 0x50]
cmp r15d, 0xffffffff
movzx edi, dil
mov eax, 1
cmove edi, eax
bts r11, r12
mov r12d, dword [rsp + 0x34]
xor ebp, ebp
mov qword [rsp + 0x48], r11
mov dword [rsp + 0x50], edi
inc r13d
cmp r13d, dword [rsp + 0x88]
jge 0x140104d7a
mov r14d, dword [rsp + 0x38]
jmp 0x140104b61
mov r12d, dword [rsp + 0x34]
test r12b, r12b
je 0x140104f2a
mov r13, qword [rsp + 0xa0]
xor r15d, r15d
mov rsi, qword [rsp + 0x60]
mov ebx, r15d
mov r14d, dword [rsp + 0x38]
or r13, qword [rsi + 8]
mov qword [rsp + 0xa0], r13
test r14d, r14d
je 0x140104f37
mov r15, qword [rsp + 0x108]
mov r12, qword [rsp + 0x100]
mov eax, ebx
bt r11, rax
jb 0x140104f1c
mov eax, ebx
lea rcx, [r12 + 0x258]
shl rax, 5
mov ebp, ebx
mov rdi, qword [rax + r15 + 8]
mov rdx, rdi
call fcn.140109ca0
mov rsi, rax
test rax, rax
jne 0x140104efc
mov rcx, rdi
call fcn.140144c20
test eax, eax
je 0x140104f17
mov r11, qword [rsp + 0x48]
mov rax, r13
not rax
test rsi, rax
jne 0x140104f1c
bts r11, rbp
mov qword [rsp + 0x48], r11
jmp 0x140104f1c
mov r11, qword [rsp + 0x48]
inc ebx
cmp ebx, r14d
jl 0x140104ec3
mov r12d, dword [rsp + 0x34]
jmp 0x140104f2f
mov r14d, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x60]
xor r15d, r15d
mov r8, qword [rsp + 0x108]
mov r9, qword [rsp + 0x100]
movzx r10d, word [rsp + 0x118]
mov ecx, dword [rsp + 0x58]
mov edi, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x90]
mov r13, qword [rsp + 0x110]
inc qword [rsp + 0x98]
inc ecx
mov rbx, qword [rsp + 0x98]
movzx eax, word [rsp + 0x120]
mov dword [rsp + 0x58], ecx
test r12b, r12b
jne 0x140104916
cmp r11, rbp
jne 0x140104fb7
movzx eax, byte [rsp + 0x6a]
jmp 0x140104fec
cmp byte [rsi + 0x20], 0
je 0x140104fb7
mov eax, 0x280
and r10w, ax
cmp r10w, word [rsp + 0x6c]
jne 0x140104f99
test r12b, r12b
jne 0x140105005
lea ecx, [r14 - 1]
test ecx, ecx
jle 0x140104fea
cmp ecx, 0x40
jge 0x140104fd6
mov edx, 1
shl rdx, cl
dec rdx
jmp 0x140104fd9
mov rdx, r15
mov rax, rdx
and rax, r11
cmp rax, rdx
je 0x140105000
dec ecx
test ecx, ecx
jg 0x140104fc4
xor al, al
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, cl
jmp 0x140104fec
mov al, 0xff
jmp 0x140104fec