Function at 0x14009e300
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
mov rax, qword [rcx]
mov r13, rdx
movzx edi, word [rsp + 0x120]
xor edx, edx
mov qword [rsp + 0x40], rdx
mov r15, rcx
mov r12d, edx
mov esi, edx
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
test di, di
je 0x14009e35f
test byte [rax + 0x50], 0x80
jne 0x14009ebec
movzx r14d, word [r13]
mov word [rsp + 0x68], r14w
cmp r14w, 0x3f
ja 0x14009ebec
movzx r10d, r14w
mov r8d, edx
movzx r14d, r9w
mov dword [rsp + 0x34], r10d
mov ecx, r10d
mov qword [rsp + 0xa0], rdx
mov ebx, 1
mov qword [rsp + 0x60], rdx
shl rbx, cl
mov bpl, 1
dec rbx
mov dword [rsp + 0x3c], ebp
mov ecx, 0x800
mov qword [rsp + 0x90], rbx
and r14w, cx
mov dword [rsp + 0x58], edx
mov r11, rdx
mov dword [rsp + 0x6c], r14d
setne r8b
add r8w, 0x182
xor r9d, r9d
mov dword [rsp + 0x48], r8d
mov qword [rsp + 0x98], r9
nop
mov rcx, rsi
cmp rsi, rbx
jae 0x14009ebb1
movzx eax, di
cmp edx, eax
jg 0x14009ebba
test edx, edx
jle 0x14009e405
or r11, qword [r12 + 8]
mov qword [rsp + 0x60], r11
cmp edx, eax
jge 0x14009e42a
mov rax, qword [rsp + 0x110]
mov rax, qword [rax + 0x18]
mov r12, qword [rax + r9*8]
mov qword [rsp + 0x78], r12
test r14w, r14w
jne 0x14009eb6b
jmp 0x14009e437
mov r12, qword [rsp + 0x128]
mov qword [rsp + 0x78], r12
test dword [r12 + 0x28], 0x400
jne 0x14009eba1
movzx eax, byte [r12 + 0x10]
xor edi, edi
imul rcx, rax, 0x78
mov rax, qword [r15 + 8]
mov ebp, edi
mov edx, dword [rcx + rax + 0x50]
mov dword [rsp + 0x4c], edx
test r10d, r10d
je 0x14009e5fa
nop dword [rax]
mov eax, ebp
bt rsi, rax
jb 0x14009e5ef
mov r14d, ebp
lea rax, [r14 + r14*4]
lea rsi, [rax*8]
mov rax, qword [r13 + 8]
mov rbx, qword [rsi + rax]
test rbx, rbx
je 0x14009e4c5
nop dword [rax + rax]
mov eax, dword [rbx + 4]
bt eax, 0xc
jae 0x14009e4c5
bt eax, 0x12
jae 0x14009e4bc
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
mov rbx, qword [rcx]
jmp 0x14009e4c0
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x14009e4a0
cmp byte [rbx], 0x98
jne 0x14009e5ea
cmp dword [rbx + 0x2c], edx
jne 0x14009e5ea
movzx eax, r8w
lea rcx, [r15 + 0x60]
movsx r8d, word [rbx + 0x30]
mov r9, r11
not r9
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.1400999c0
mov rdi, rax
test rax, rax
je 0x14009e5d5
movzx r10d, word [rax + 0x14]
cmp r10w, 1
jne 0x14009e544
movzx r9d, word [r12 + 0x2c]
xor eax, eax
mov r8d, eax
mov ecx, eax
test r9d, r9d
je 0x14009e53b
mov rax, qword [r12 + 0x38]
cmp rdi, qword [rax]
je 0x14009e53b
inc r8d
inc rcx
add rax, 8
cmp rcx, r9
jl 0x14009e527
cmp r8d, r9d
jge 0x14009e5d5
test r10b, 0x82
je 0x14009e64f
cmp word [rbx + 0x30], 0
jl 0x14009e64f
mov rdx, qword [r13 + 8]
mov rcx, qword [r15]
mov rdx, qword [rdx + rsi]
call fcn.140043f90
mov rsi, qword [rsp + 0x80]
test rax, rax
jne 0x14009e57a
mov rax, qword [rsi + 0x10]
mov rdx, qword [rdi]
mov rcx, qword [r15]
mov rbx, qword [rax]
call fcn.140043f90
test rax, rax
jne 0x14009e591
mov rax, qword [rsi + 0x10]
mov r8, qword [rax]
lea r9, [0x140110f00]
movzx edx, byte [rbx]
movzx eax, byte [r8]
movzx ecx, byte [rax + r9]
movzx eax, byte [rdx + r9]
cmp eax, ecx
jne 0x14009e5d5
sub r8, rbx
test dl, dl
je 0x14009e64f
movzx eax, byte [r8 + rbx + 1]
inc rbx
movzx ecx, byte [rax + r9]
movzx edx, byte [rbx]
movzx eax, byte [rdx + r9]
cmp eax, ecx
je 0x14009e5b3
mov r11, qword [rsp + 0x60]
xor edi, edi
mov r8d, dword [rsp + 0x48]
mov r10d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x40]
inc ebp
cmp ebp, r10d
jl 0x14009e470
mov eax, dword [r12 + 0x28]
bt eax, 0xc
jb 0x14009ea90
mov r14d, 0x100
test r14d, eax
je 0x14009e677
mov ebp, dword [rsp + 0x3c]
xor cl, cl
xor dl, dl
mov word [rsp + 0x38], di
mov rbx, rdi
mov byte [rsp + 0x30], dl
mov r15, rdi
mov qword [rsp + 0x88], rbx
mov eax, 1
mov byte [rsp + 0x31], cl
mov dword [rsp + 0x54], ecx
mov r11d, edi
mov dword [rsp + 0x50], edi
mov r13, rdi
jmp 0x14009e6da
mov rsi, qword [rsp + 0x40]
mov edx, dword [rsp + 0x4c]
bts rsi, r14
mov r10d, dword [rsp + 0x34]
xor edi, edi
mov r8d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov qword [rsp + 0x40], rsi
jmp 0x14009e5ef
mov r15, qword [r12 + 0x20]
test r15, r15
je 0x14009ebec
test byte [r15 + 0x64], 4
jne 0x14009ebec
cmp byte [r15 + 0x62], 0
mov rbx, r15
movzx eax, word [r15 + 0x5e]
mov r11d, edi
setne bpl
mov word [rsp + 0x38], ax
movzx eax, word [r15 + 0x60]
xor cl, cl
xor dl, dl
mov dword [rsp + 0x3c], ebp
mov qword [rsp + 0x88], rbx
mov r13, rdi
mov byte [rsp + 0x31], cl
mov byte [rsp + 0x30], dl
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x50], edi
cmp di, ax
jae 0x14009ea94
movzx ecx, ax
mov r9, rdi
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x70], rdi
nop dword [rax]
movzx r8d, word [r12 + 0x18]
mov dil, 1
cmp r11d, r8d
jge 0x14009e772
movzx eax, word [r12 + 0x2e]
cmp r11d, eax
jl 0x14009e772
mov r9, qword [r12 + 0x38]
mov r10, qword [r9 + r13*8]
movzx eax, word [r10 + 0x14]
test word [rsp + 0x48], ax
je 0x14009e73a
test r14w, ax
mov ecx, 0
movzx eax, bpl
cmove ecx, eax
movzx ebp, cl
mov dword [rsp + 0x3c], ebp
jmp 0x14009ea23
test dil, al
je 0x14009e768
mov r10, qword [r10]
lea edx, [r11 + 1]
cmp edx, r8d
jge 0x14009e768
nop dword [rax + rax]
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r10
je 0x14009e765
inc edx
cmp edx, r8d
jl 0x14009e750
jmp 0x14009e768
xor dil, dil
mov r10d, dword [rsp + 0x34]
mov r9, qword [rsp + 0x70]
test r15, r15
je 0x14009e7a2
mov rax, qword [r15 + 8]
lea rdx, [r15 + 0x18]
movsx r14d, word [rax + r13*2]
mov rax, qword [r15 + 0x38]
movzx r12d, byte [rax + r13]
mov rax, qword [rdx]
movsx ecx, word [rax + 0x3c]
mov eax, 0xffffffff
cmp r14d, ecx
cmove r14d, eax
jmp 0x14009e7af
mov r14d, 0xffffffff
lea rdx, [rbx + 0x18]
xor r12b, r12b
test bpl, bpl
je 0x14009e7e3
test r14d, r14d
js 0x14009e7e3
cmp r11d, r8d
jl 0x14009e7e3
mov rax, qword [rdx]
mov edx, 0
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 + 0x3c], ebp
jmp 0x14009e7e5
xor edx, edx
mov ebp, edx
test dil, dil
je 0x14009ea55
cmp ebp, r10d
jge 0x14009ea50
mov eax, ebp
bt rsi, rax
jb 0x14009e932
movsxd rax, ebp
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0x108]
mov rax, qword [rax + 8]
mov rsi, qword [rax + rcx*8]
mov rcx, rsi
test rsi, rsi
je 0x14009e849
mov eax, dword [rcx + 4]
bt eax, 0xc
jae 0x14009e849
bt eax, 0x12
jae 0x14009e840
mov rax, qword [rcx + 0x20]
mov rcx, qword [rax + 8]
mov rcx, qword [rcx]
jmp 0x14009e844
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x14009e824
test byte [rsp + 0x118], 0xc0
movzx eax, dil
cmovne edx, eax
movzx edi, dl
movzx ebx, dl
cmp r14d, 0xffffffff
jl 0x14009e889
cmp byte [rcx], 0x98
jne 0x14009e92b
mov eax, dword [rsp + 0x4c]
cmp dword [rcx + 0x2c], eax
jne 0x14009e92b
movsx eax, word [rcx + 0x30]
cmp eax, r14d
jne 0x14009e92b
jmp 0x14009e8a7
mov rax, qword [r15 + 0x50]
mov r8d, dword [rsp + 0x4c]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + r9]
call fcn.14004d750
test eax, eax
jne 0x14009e926
test r14d, r14d
js 0x14009e947
mov rax, qword [rsp + 0x100]
mov rdx, rsi
mov rcx, qword [rax]
call fcn.140043f90
test rax, rax
jne 0x14009e8d4
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
mov r8, qword [rax]
lea r10, [0x140110f00]
mov rax, qword [r15 + 0x40]
movzx edx, byte [r8]
mov r9, qword [rax + r13*8]
movzx eax, byte [r9]
movzx ecx, byte [rax + r10]
movzx eax, byte [rdx + r10]
sub eax, ecx
jne 0x14009e91f
sub r9, r8
nop
test dl, dl
je 0x14009e91f
movzx eax, byte [r9 + r8 + 1]
inc r8
movzx ecx, byte [rax + r10]
movzx edx, byte [r8]
movzx eax, byte [rdx + r10]
sub eax, ecx
je 0x14009e900
movzx edi, bl
test eax, eax
je 0x14009e947
mov r10d, dword [rsp + 0x34]
mov rsi, qword [rsp + 0x40]
xor edx, edx
inc ebp
test dil, dil
je 0x14009ea50
mov r9, qword [rsp + 0x70]
jmp 0x14009e7f0
test byte [rsp + 0x118], 0x40
mov r11b, 1
mov rbx, qword [rsp + 0x88]
movzx r10d, word [rsp + 0x38]
mov qword [rsp + 0x88], rbx
jne 0x14009e9e1
movzx r9d, byte [rsp + 0x31]
movsxd rax, ebp
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0x108]
mov rax, qword [rax + 8]
movzx edx, byte [rax + rcx*8 + 0x18]
test r9b, r9b
je 0x14009e9bc
movzx r8d, byte [rsp + 0x30]
xor eax, eax
xor r12b, r8b
mov byte [rsp + 0x30], r8b
cmp r12b, dl
mov byte [rsp + 0x31], r9b
mov ecx, eax
movzx eax, r11b
cmove ecx, eax
test cl, cl
jne 0x14009e9e1
mov r11d, dword [rsp + 0x50]
jmp 0x14009ea5b
xor dl, r12b
mov byte [rsp + 0x30], dl
je 0x14009e9dc
mov rdx, qword [rsp + 0x130]
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x31], r11b
mov ecx, dword [rsp + 0x54]
cmp r14d, 0xffffffff
mov rsi, qword [rsp + 0x40]
mov eax, 1
mov r11d, dword [rsp + 0x50]
mov r14d, 0x100
mov r12, qword [rsp + 0x78]
movzx ecx, cl
cmove ecx, eax
mov word [rsp + 0x38], r10w
movsxd rax, ebp
mov ebp, dword [rsp + 0x3c]
bts rsi, rax
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x54], ecx
mov r9, qword [rsp + 0x70]
inc r11d
add r9, 0x28
mov dword [rsp + 0x50], r11d
inc r13
mov qword [rsp + 0x70], r9
cmp r13, qword [rsp + 0xa8]
jge 0x14009ea7b
mov r10d, dword [rsp + 0x34]
jmp 0x14009e6f0
mov r11d, dword [rsp + 0x50]
movzx r10d, word [rsp + 0x38]
test r13, r13
je 0x14009ea69
movzx eax, r10w
cmp r11d, eax
jge 0x14009ea72
xor bpl, bpl
mov dword [rsp + 0x3c], ebp
jmp 0x14009ea76
mov ebp, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
cmp byte [rsp + 0x54], 0
mov r12, qword [rsp + 0x78]
je 0x14009ea94
mov bpl, 1
mov dword [rsp + 0x3c], ebp
jmp 0x14009ea9d
mov ebp, dword [rsp + 0x3c]
test bpl, bpl
je 0x14009eb48
mov r14, qword [rsp + 0xa0]
xor eax, eax
or r14, qword [r12 + 8]
mov ebx, eax
mov r15d, dword [rsp + 0x34]
mov qword [rsp + 0xa0], r14
test r15d, r15d
je 0x14009eb48
mov r12, qword [rsp + 0x100]
nop dword [rax]
mov eax, ebx
bt rsi, rax
jb 0x14009eb38
mov rax, qword [rsp + 0x108]
mov edi, ebx
mov rax, qword [rax + 8]
lea rcx, [rdi + rdi*4]
mov rsi, qword [rax + rcx*8]
lea rcx, [r12 + 0x288]
mov rdx, rsi
call fcn.140098e70
mov rbp, rax
test rax, rax
jne 0x14009eb18
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rsi
call fcn.140047000
test eax, eax
je 0x14009eb33
mov rsi, qword [rsp + 0x40]
mov rax, r14
not rax
test rbp, rax
jne 0x14009eb38
bts rsi, rdi
mov qword [rsp + 0x40], rsi
jmp 0x14009eb38
mov rsi, qword [rsp + 0x40]
inc ebx
cmp ebx, r15d
jl 0x14009ead0
mov r12, qword [rsp + 0x78]
mov ebp, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x90]
movzx edi, word [rsp + 0x120]
mov r14d, dword [rsp + 0x6c]
inc qword [rsp + 0x98]
inc edx
mov r15, qword [rsp + 0x100]
mov r13, qword [rsp + 0x108]
mov r10d, dword [rsp + 0x34]
mov r9, qword [rsp + 0x98]
mov dword [rsp + 0x58], edx
test bpl, bpl
jne 0x14009e3e0
jmp 0x14009ebae
cmp byte [r12 + 0x1d], 0
mov rsi, rbx
cmove rsi, rcx
cmp rsi, rbx
jne 0x14009ebba
movzx eax, byte [rsp + 0x68]
jmp 0x14009ebee
test bpl, bpl
jne 0x14009ec07
lea ecx, [r10 - 1]
test ecx, ecx
jle 0x14009ebec
nop word [rax + rax]
mov edx, 1
shl rdx, cl
dec rdx
mov rax, rdx
and rax, rsi
cmp rax, rdx
je 0x14009ec02
dec ecx
test ecx, ecx
jg 0x14009ebd0
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 0x14009ebee
mov al, 0xff
jmp 0x14009ebee