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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov qword [rsp + 0xd0], r8
mov rsi, rdx
mov rbp, rcx
movzx eax, word [rsp + 0x180]
test ax, ax
je 0x140069869
mov rcx, qword [rbp]
mov rcx, qword [rcx]
test byte [rcx + 0x5c], 0x40
jne 0x140069873
movzx r8d, word [rsi]
cmp r8d, 0x3f
jbe 0x14006987a
xor eax, eax
jmp 0x14006a002
mov rdx, 0xffffffffffffffff
mov ecx, r8d
shl rdx, cl
movzx r9d, r9w
bt r9d, 0xb
mov ebx, 0x183
adc ebx, 0xffffffff
mov dword [rsp + 0x64], ebx
test r8d, r8d
je 0x140069fcd
not rdx
mov qword [rsp + 0x70], rdx
lea rdx, [rbp + 0x68]
mov qword [rsp + 0xe0], rdx
lea r13, [rbp + 0x290]
movzx edx, ax
lea rax, [rsi + 8]
mov qword [rsp + 0xc0], rax
mov cl, 1
xor ebx, ebx
xor edi, edi
xor eax, eax
mov qword [rsp + 0xa0], rax
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x80], rbp
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x78], r13
mov qword [rsp + 0xc8], rdx
test rbx, rbx
je 0x140069911
or rdi, qword [rax + 8]
mov rax, qword [rsp + 0x188]
cmp rbx, rdx
jae 0x140069939
bt r9d, 0xb
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + rbx*8]
jb 0x140069f9f
test byte [rax + 0x29], 4
jne 0x140069fb8
mov dword [rsp + 0x34], ecx
mov qword [rsp + 0xa8], rbx
mov word [rax + 0x1e], 0
mov rdx, qword [rbp + 8]
mov qword [rsp + 0x58], rax
movzx ecx, byte [rax + 0x10]
imul rcx, rcx, 0x70
mov ebx, dword [rdx + rcx + 0x4c]
mov qword [rsp + 0xd8], rdi
mov r13, rdi
not r13
xor r15d, r15d
mov dword [rsp + 0x38], ebx
mov edi, 1
mov ecx, r15d
shl rdi, cl
bt r12, r15
jb 0x140069a80
lea rbp, [r15 + r15*4]
mov r14, qword [rsi + rbp*8 + 8]
mov eax, dword [r14 + 4]
bt eax, 0xc
jae 0x1400699c0
bt eax, 0x12
jb 0x1400699b3
add r14, 0x10
jmp 0x1400699bb
mov r14, qword [r14 + 0x20]
add r14, 8
mov r14, qword [r14]
jmp 0x14006999d
cmp byte [r14], 0x9e
jne 0x140069a80
cmp dword [r14 + 0x2c], ebx
jne 0x140069a80
movsx r8d, word [r14 + 0x30]
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0xe0]
mov edx, ebx
mov r9, r13
call fcn.1400677c7
test rax, rax
je 0x140069a7b
movzx ecx, word [rax + 0x14]
cmp cx, 1
mov r8, qword [rsp + 0x48]
jne 0x140069a39
mov rbx, qword [rsp + 0x58]
movzx edx, word [rbx + 0x2c]
test rdx, rdx
je 0x140069a32
mov rbx, qword [rbx + 0x38]
xor esi, esi
cmp rax, qword [rbx + rsi*8]
je 0x140069a39
inc rsi
cmp rsi, rdx
jb 0x140069a24
mov rsi, qword [rsp + 0x40]
jmp 0x140069a75
test cl, 0x82
mov rsi, qword [rsp + 0x40]
je 0x140069a72
cmp word [r14 + 0x30], 0
js 0x140069a72
lea rcx, [rsi + rbp*8]
add rcx, 8
mov r8, qword [rax]
mov rdx, qword [rcx]
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
call fcn.14006775c
mov r8, qword [rsp + 0x48]
test eax, eax
je 0x140069a75
or r12, rdi
mov ebx, dword [rsp + 0x38]
jmp 0x140069a80
mov r8, qword [rsp + 0x48]
inc r15
cmp r15, r8
jne 0x14006997f
mov rbx, qword [rsp + 0x58]
mov eax, dword [rbx + 0x28]
bt eax, 0xc
mov r13, qword [rsp + 0x78]
jb 0x140069e8b
xor r10d, r10d
bt eax, 8
mov rcx, qword [rsp + 0xa8]
jb 0x140069aee
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x140069873
test byte [rdx + 0x64], 4
jne 0x140069873
movzx eax, word [rdx + 0x60]
cmp byte [rdx + 0x62], 0
setne bpl
test ax, ax
je 0x140069e87
movzx edi, word [rdx + 0x5e]
mov qword [rsp + 0x98], rdi
jmp 0x140069b02
mov ax, 1
xor edx, edx
xor ebp, ebp
mov qword [rsp + 0x98], rbp
mov ebp, dword [rsp + 0x34]
mov edi, 1
shl rdi, cl
mov qword [rsp + 0xb0], rdi
movzx eax, ax
mov qword [rsp + 0xb8], rax
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x50], 0
xor r15d, r15d
mov edi, dword [rsp + 0x3c]
mov qword [rsp + 0x88], rdx
movzx ecx, word [rbx + 0x18]
cmp r14, rcx
jae 0x140069b54
movzx eax, word [rbx + 0x2e]
cmp r14, rax
jae 0x140069d56
xor r9d, r9d
mov dword [rsp + 0x60], r15d
mov dword [rsp + 0x34], ebp
mov qword [rsp + 0x90], r10
test rdx, rdx
je 0x140069bd5
mov rbp, qword [rdx + 8]
mov rsi, qword [rdx + 0x18]
movzx ebp, word [rbp + r14*2]
cmp bp, word [rsi + 0x44]
mov ebx, 0xffff
cmove ebp, ebx
mov rax, r14
mov rbx, qword [rdx + 0x38]
mov dl, byte [rbx + r14]
movsx r15d, bp
cmp r14, rcx
mov dword [rsp + 0x54], edx
jb 0x140069be3
cmp byte [rsp + 0x34], 0
je 0x140069be3
test bp, bp
mov rbx, qword [rsp + 0x40]
js 0x140069be8
mov rcx, qword [rsi + 8]
mov edx, r15d
shl rdx, 5
cmp byte [rcx + rdx + 0x18], 0
mov edx, dword [rsp + 0x34]
movzx edx, dl
mov ecx, 0
cmove edx, ecx
mov dword [rsp + 0x34], edx
jmp 0x140069be8
mov r15d, 0xffffffff
mov dword [rsp + 0x54], 0
mov rbx, qword [rsp + 0x40]
test r9b, r9b
jne 0x140069e48
mov r13b, 1
xor ebp, ebp
bt r12, rbp
jae 0x140069c12
inc rbp
cmp rbp, r8
jae 0x140069e48
test r13b, r13b
jne 0x140069bf6
jmp 0x140069e48
lea rsi, [rbp*4]
add rsi, rbp
mov rdx, qword [rbx + rsi*8 + 8]
test rdx, rdx
je 0x140069c4f
mov rcx, rdx
mov eax, dword [rcx + 4]
bt eax, 0xc
jae 0x140069c51
bt eax, 0x12
jb 0x140069c3f
add rcx, 0x10
jmp 0x140069c47
mov rcx, qword [rcx + 0x20]
add rcx, 8
mov rcx, qword [rcx]
test rcx, rcx
jne 0x140069c2a
xor ecx, ecx
mov eax, edi
and eax, 0xc0
movzx r13d, r13b
cmove r13d, eax
cmp r15d, 0xffffffff
jl 0x140069c8c
cmp byte [rcx], 0x9e
jne 0x140069bfc
mov eax, dword [rsp + 0x38]
cmp dword [rcx + 0x2c], eax
jne 0x140069bfc
movsx eax, word [rcx + 0x30]
cmp r15d, eax
jne 0x140069bfc
cmp r15d, 0xffffffff
jne 0x140069cc4
jmp 0x140069d0c
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x50]
lea rdx, [r14 + r14*4]
mov rdx, qword [rax + rdx*8 + 8]
mov r8d, dword [rsp + 0x38]
call fcn.1400676f8
test eax, eax
je 0x140069cb9
mov r8, qword [rsp + 0x48]
jmp 0x140069bfc
lea rax, [rbx + rsi*8]
add rax, 8
mov rdx, qword [rax]
mov rax, qword [rsp + 0x80]
mov rdi, qword [rax]
mov rcx, rdi
call fcn.140058902
test rax, rax
jne 0x140069ce3
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx + r14*8]
mov rcx, qword [rax]
call fcn.1400283c9
test eax, eax
mov r8, qword [rsp + 0x48]
mov edi, dword [rsp + 0x3c]
jne 0x140069bfc
mov rax, qword [rsp + 0x90]
inc eax
mov rcx, qword [rsp + 0x58]
mov word [rcx + 0x1e], ax
test dil, 0x40
jne 0x140069db5
cmp byte [rsp + 0x68], 0
je 0x140069e05
mov esi, dword [rsp + 0x54]
xor sil, byte [rsp + 0x50]
mov eax, ebp
lea rcx, [rax + rax*4]
mov dl, 1
mov qword [rsp + 0x68], rdx
cmp sil, byte [rbx + rcx*8 + 0x20]
je 0x140069db7
jmp 0x140069e48
mov rax, qword [rbx + 0x38]
mov r9, qword [rax + r14*8]
movzx esi, word [r9 + 0x14]
test dword [rsp + 0x64], esi
je 0x140069d7b
bt esi, 8
movzx ebp, bpl
mov eax, 0
cmovb ebp, eax
jmp 0x140069def
test sil, 1
je 0x140069b54
mov r9, qword [r9]
lea r11d, [rcx - 1]
mov rdi, r14
mov rbx, rdi
cmp r11, rdi
je 0x140069da5
lea rdi, [rbx + 1]
mov rsi, qword [rax + rbx*8 + 8]
cmp qword [rsi], r9
jne 0x140069d8f
cmp r11, rbx
setne r9b
mov edi, dword [rsp + 0x3c]
jmp 0x140069b57
mov eax, ebp
cmp r15d, 0xffffffff
mov r15d, dword [rsp + 0x60]
movzx r15d, r15b
mov ecx, 1
cmove r15d, ecx
bts r12, rax
mov r13, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov ebp, dword [rsp + 0x34]
inc r14
inc r10d
cmp r14, qword [rsp + 0xb8]
jne 0x140069b3e
jmp 0x140069e79
mov eax, ebp
lea rcx, [rax + rax*4]
mov ebp, dword [rsp + 0x54]
xor bpl, byte [rbx + rcx*8 + 0x20]
mov cl, 1
mov qword [rsp + 0x68], rcx
je 0x140069e3b
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0xb0]
or qword [rcx], rdx
mov ecx, ebp
mov dword [rsp + 0x50], ecx
jmp 0x140069db7
mov dword [rsp + 0x50], 0
jmp 0x140069db7
movzx eax, word [rsp + 0x98]
cmp r14d, eax
mov ebp, dword [rsp + 0x34]
movzx ebp, bpl
mov eax, 0
cmovb ebp, eax
test r14d, r14d
cmove ebp, r14d
mov r13, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x60]
mov dword [rsp + 0x34], ebp
mov r14b, 1
test r15b, r15b
jne 0x140069e9a
jmp 0x140069e8b
mov dword [rsp + 0x34], ebp
mov eax, dword [rsp + 0x34]
test al, al
je 0x140069fc4
mov r14d, eax
mov r15, qword [rsp + 0xa0]
or r15, qword [rbx + 8]
mov rax, r15
mov qword [rsp + 0xa0], r15
not r15
mov rsi, qword [rsp + 0xc0]
xor edi, edi
mov ebx, 1
mov ecx, edi
shl rbx, cl
bt r12, rdi
jb 0x140069f54
mov rbp, qword [rsi]
test rbp, rbp
je 0x140069f43
mov rcx, r13
mov rdx, rbp
call fcn.1400673eb
mov r8, qword [rsp + 0x48]
test rax, rax
jne 0x140069f45
mov byte [rsp + 0x10c], 1
lea rax, [0x140059dd8]
mov qword [rsp + 0xf0], rax
lea rax, [0x140059ebc]
mov qword [rsp + 0xf8], rax
mov dword [rsp + 0x110], 0
lea rcx, [rsp + 0xe8]
mov rdx, rbp
call fcn.140059ed2
cmp byte [rsp + 0x10c], 0
je 0x140069f66
xor eax, eax
mov r8, qword [rsp + 0x48]
jmp 0x140069f45
xor eax, eax
test rax, r15
mov eax, 0
cmovne rbx, rax
or r12, rbx
inc rdi
add rsi, 0x28
cmp r8, rdi
jne 0x140069ebe
jmp 0x140069f6d
mov r8, qword [rsp + 0x48]
jmp 0x140069f54
mov ecx, r14d
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x80]
mov r9d, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xd8]
mov rax, qword [rsp + 0x58]
cmp rbx, rdx
jae 0x140069fc6
cmp r12, qword [rsp + 0x70]
jae 0x140069fc6
inc rbx
test cl, cl
jne 0x140069908
jmp 0x140069fc6
cmp byte [rax + 0x1d], 0
cmovne r12, qword [rsp + 0x70]
jmp 0x140069fc6
xor ecx, ecx
cmp r12, qword [rsp + 0x70]
jne 0x140069fd2
mov eax, r8d
jmp 0x14006a002
mov al, 0xff
test cl, cl
jne 0x14006a002
mov eax, r8d
cmp rax, 2
jl 0x140069873
dec rax
mov rdx, 0xffffffffffffffff
mov ecx, eax
shl rdx, cl
not rdx
mov rcx, r12
and rcx, rdx
cmp rcx, rdx
jne 0x140069fdb
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret