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

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
xor r14d, r14d
mov rbp, r8
mov r11, rdx
mov r8, rcx
mov r15d, r14d
mov ebx, r14d
cmp word [rsp + 0x100], r14w
je 0x14004f032
mov rax, qword [rcx]
mov r9, qword [rax]
test byte [r9 + 0x5c], 0x40
jne 0x14004f714
movzx r9d, word [rsp + 0xf8]
movzx edx, word [rdx]
mov word [rsp + 0x54], dx
cmp dx, 0x3f
ja 0x14004f714
movzx r12d, dx
mov eax, 1
mov r10b, al
mov dword [rsp + 0x50], r12d
mov ecx, r12d
mov dword [rsp + 0x38], r10d
shl rax, cl
mov rdx, r14
movzx ecx, r9w
mov qword [rsp + 0x68], r14
mov rsi, r14
mov qword [rsp + 0x58], r14
mov r13d, r14d
mov dword [rsp + 0x4c], r14d
lea rdi, [rax - 1]
mov qword [rsp + 0x78], rdx
mov eax, 0x800
mov qword [rsp + 0x70], rdi
and cx, ax
movzx eax, cx
mov word [rsp + 0x3e], cx
neg ax
sbb r9w, r9w
neg r9w
add r9w, 0x182
mov word [rsp + 0x30], r9w
cmp rbx, rdi
jae 0x14004f6dd
movzx eax, word [rsp + 0x100]
cmp r13d, eax
jg 0x14004f6da
test r13d, r13d
jle 0x14004f0d9
or rsi, qword [r15 + 8]
mov qword [rsp + 0x58], rsi
cmp r13d, eax
jge 0x14004f0f9
mov rax, qword [rbp + 0x18]
mov r15, qword [rax + rdx*8]
mov qword [rsp + 0x80], r15
test cx, cx
jne 0x14004f6aa
jmp 0x14004f109
mov r15, qword [rsp + 0x108]
mov qword [rsp + 0x80], r15
mov edx, dword [r15 + 0x28]
bt edx, 0xa
jb 0x14004f6cc
movzx eax, byte [r15 + 0x10]
mov ebp, r14d
imul rcx, rax, 0x70
mov word [r15 + 0x1e], r14w
mov rax, qword [r8 + 8]
mov r8d, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x40], r8d
test r12d, r12d
je 0x14004f239
mov r13, qword [rsp + 0xe0]
lea rsi, [r11 + 8]
xor edx, edx
mov eax, ebp
bt rbx, rax
jb 0x14004f211
mov rcx, qword [rsi]
call fcn.140031218
mov rdi, rax
cmp byte [rax], 0x9e
jne 0x14004f211
cmp dword [rax + 0x2c], r8d
jne 0x14004f211
movsx r8d, word [rdi + 0x30]
lea rcx, [r13 + 0x68]
movzx eax, r9w
mov r9, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdx
not r9
mov edx, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.14004d1b4
mov r8, rax
xor eax, eax
test r8, r8
je 0x14004f204
lea r10d, [rax + 1]
cmp word [r8 + 0x14], r10w
jne 0x14004f1d8
movzx edx, word [r15 + 0x2c]
mov ecx, eax
test edx, edx
je 0x14004f1d4
mov r9, qword [r15 + 0x38]
movsxd rax, ecx
cmp r8, qword [r9 + rax*8]
je 0x14004f1d2
add ecx, r10d
cmp ecx, edx
jl 0x14004f1c2
xor eax, eax
cmp ecx, edx
jge 0x14004f204
test byte [r8 + 0x14], 0x82
je 0x14004f1fc
cmp word [rdi + 0x30], ax
jl 0x14004f1fc
mov r8, qword [r8]
mov rdx, qword [rsi]
mov rcx, qword [r13]
call fcn.1400313b4
xor edx, edx
test eax, eax
je 0x14004f206
jmp 0x14004f1fe
xor edx, edx
bts rbx, r14
jmp 0x14004f206
xor edx, edx
movzx r9d, word [rsp + 0x30]
mov r8d, dword [rsp + 0x40]
mov eax, 1
add rsi, 0x28
add ebp, eax
add r14, rax
cmp ebp, r12d
jl 0x14004f14d
mov r13d, dword [rsp + 0x4c]
xor r14d, r14d
mov edx, dword [r15 + 0x28]
mov r10d, dword [rsp + 0x38]
bt edx, 0xc
jb 0x14004f5c8
mov eax, 0x100
test eax, edx
je 0x14004f261
mov r9d, 1
mov word [rsp + 0x44], r14w
movzx eax, r9w
mov rsi, r14
jmp 0x14004f298
mov rsi, qword [r15 + 0x20]
test rsi, rsi
je 0x14004f714
test byte [rsi + 0x64], 4
jne 0x14004f714
movzx eax, word [rsi + 0x5e]
mov r9d, 1
cmp byte [rsi + 0x62], r14b
mov word [rsp + 0x44], ax
movzx eax, word [rsi + 0x60]
setne r10b
mov dword [rsp + 0x38], r10d
movzx eax, ax
mov r11b, r14b
mov byte [rsp + 0x34], r14b
mov edi, r14d
mov byte [rsp + 0x33], r14b
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x60], eax
test eax, eax
je 0x14004f5c8
movzx r8d, word [r15 + 0x18]
mov bpl, r9b
cmp edi, r8d
jge 0x14004f341
movzx eax, word [r15 + 0x2e]
cmp edi, eax
jl 0x14004f341
mov r9, qword [r15 + 0x38]
movsxd rax, edi
mov rcx, qword [r9 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x30], ax
je 0x14004f30d
mov ecx, 0x100
mov r9d, 1
test cx, ax
movzx eax, r10b
mov ecx, r14d
cmove ecx, eax
mov r10b, cl
mov dword [rsp + 0x38], r10d
jmp 0x14004f59b
mov r13d, 1
test r13b, al
je 0x14004f33e
mov r10, qword [rcx]
lea edx, [rdi + 1]
jmp 0x14004f32f
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r10
je 0x14004f336
add edx, r13d
cmp edx, r8d
jl 0x14004f320
jmp 0x14004f339
mov bpl, r14b
mov r10d, dword [rsp + 0x38]
mov r9, r13
test rsi, rsi
je 0x14004f370
mov rax, qword [rsi + 8]
movsxd rcx, edi
movsx r14d, word [rax + rcx*2]
mov rax, qword [rsi + 0x38]
mov dl, byte [rcx + rax]
mov rax, qword [rsi + 0x18]
mov byte [rsp + 0x32], dl
movsx ecx, word [rax + 0x44]
cmp r14d, ecx
jne 0x14004f37a
or r14d, 0xffffffff
jmp 0x14004f37a
or r14d, 0xffffffff
xor edx, edx
mov byte [rsp + 0x32], dl
test r10b, r10b
je 0x14004f3a7
test r14d, r14d
js 0x14004f3a7
cmp edi, r8d
jl 0x14004f3a7
mov rax, qword [rsi + 0x18]
mov rcx, qword [rax + 8]
movsxd rax, r14d
shl rax, 5
mov al, byte [rax + rcx + 0x18]
neg al
sbb cl, cl
and cl, r10b
mov byte [rsp + 0x38], cl
xor r10d, r10d
mov r13d, r10d
test bpl, bpl
je 0x14004f4de
cmp r13d, r12d
jge 0x14004f4d9
mov eax, r13d
bt rbx, rax
jb 0x14004f4cd
mov r9, qword [rsp + 0xe8]
movsxd rax, r13d
lea r8, [rax + rax*4]
mov rcx, qword [r9 + r8*8 + 8]
mov qword [rsp + 0x88], r8
call fcn.140031218
mov rdx, rax
mov al, byte [rsp + 0xf8]
and al, 0xc0
neg al
sbb al, al
and al, bpl
mov byte [rsp + 0x3c], al
mov bpl, al
cmp r14d, 0xffffffff
jl 0x14004f435
cmp byte [rdx], 0x9e
jne 0x14004f4c7
mov ecx, dword [rsp + 0x40]
cmp dword [rdx + 0x2c], ecx
jne 0x14004f4c7
movsx eax, word [rdx + 0x30]
cmp eax, r14d
jne 0x14004f4c7
movsxd r12, edi
jmp 0x14004f47b
mov rax, qword [rsi + 0x50]
movsxd r12, edi
lea rcx, [r12 + r12*4]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.140031218
mov rcx, rdx
mov r8, rax
call fcn.140031218
mov r9d, dword [rsp + 0x40]
mov rdx, rax
xor ecx, ecx
call fcn.1400350c0
xor r10d, r10d
test eax, eax
jne 0x14004f4c2
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0xe8]
cmp r14d, 0xffffffff
je 0x14004f4fa
mov rax, qword [rsp + 0xe0]
mov rdx, qword [r9 + r8*8 + 8]
mov rbp, qword [rax]
mov rcx, rbp
call fcn.140031244
test rax, rax
jne 0x14004f4a6
mov rax, qword [rbp]
mov rax, qword [rax + 0x10]
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rax]
mov bpl, byte [rsp + 0x3c]
mov rdx, qword [rdx + r12*8]
call fcn.1400140b8
xor r10d, r10d
test eax, eax
je 0x14004f4fa
mov r12d, dword [rsp + 0x50]
mov r9d, 1
add r13d, r9d
test bpl, bpl
jne 0x14004f3b6
mov r11d, dword [rsp + 0x48]
xor r14d, r14d
test edi, edi
je 0x14004f4f2
movzx eax, word [rsp + 0x44]
cmp edi, eax
jge 0x14004f5a9
mov r10b, r14b
jmp 0x14004f5ae
test byte [rsp + 0xf8], 0x40
mov r9d, 1
mov dl, r9b
lea eax, [r9 + rdi]
mov word [r15 + 0x1e], ax
jne 0x14004f571
mov r8, qword [rsp + 0xe8]
movsxd rax, r13d
lea rax, [rax + rax*4]
cmp byte [rsp + 0x34], r10b
je 0x14004f53e
mov cl, byte [rsp + 0x32]
xor cl, byte [rsp + 0x33]
cmp cl, byte [r8 + rax*8 + 0x20]
sete dl
jmp 0x14004f569
mov al, byte [r8 + rax*8 + 0x20]
xor al, byte [rsp + 0x32]
mov byte [rsp + 0x33], al
je 0x14004f564
mov r8, qword [rsp + 0x110]
movsxd rax, dword [rsp + 0x4c]
mov rcx, qword [r8]
bts rcx, rax
mov qword [r8], rcx
mov byte [rsp + 0x34], r9b
test dl, dl
je 0x14004f4d9
mov r11d, dword [rsp + 0x48]
cmp r14d, 0xffffffff
mov r10d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x50]
movzx r11d, r11b
cmove r11d, r9d
movsxd rax, r13d
bts rbx, rax
mov dword [rsp + 0x48], r11d
xor r14d, r14d
add edi, r9d
cmp edi, dword [rsp + 0x60]
jge 0x14004f5ae
jmp 0x14004f2bc
mov r10d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x50]
test r11b, r11b
mov r13d, dword [rsp + 0x4c]
movzx r10d, r10b
cmovne r10d, r9d
mov dword [rsp + 0x38], r10d
test r10b, r10b
je 0x14004f67d
mov rsi, qword [rsp + 0x68]
mov edi, r14d
or rsi, qword [r15 + 8]
mov qword [rsp + 0x68], rsi
test r12d, r12d
je 0x14004f67d
mov r13, qword [rsp + 0xe0]
mov ecx, 1
mov r15, qword [rsp + 0xe8]
mov eax, edi
bt rbx, rax
jb 0x14004f661
movsxd r14, edi
lea rax, [r14 + r14*4]
mov rbp, qword [r15 + rax*8 + 8]
xor eax, eax
test rbp, rbp
je 0x14004f62a
lea rcx, [r13 + 0x290]
mov rdx, rbp
call fcn.14004cc04
mov rsi, rax
test rax, rax
jne 0x14004f644
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rbp
call fcn.140033138
test eax, eax
je 0x14004f65c
mov rax, qword [rsp + 0x68]
mov ecx, 1
not rax
test rsi, rax
jne 0x14004f661
bts rbx, r14
jmp 0x14004f661
mov ecx, 1
add edi, ecx
cmp edi, r12d
jl 0x14004f600
mov r15, qword [rsp + 0x80]
xor r14d, r14d
mov r10d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x4c]
mov r8, qword [rsp + 0xe0]
mov r11, qword [rsp + 0xe8]
movzx r9d, word [rsp + 0x30]
mov rdi, qword [rsp + 0x70]
movzx ecx, word [rsp + 0x3e]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xf0]
mov eax, 1
add qword [rsp + 0x78], rax
add r13d, eax
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x4c], r13d
test r10b, r10b
jne 0x14004f0b1
jmp 0x14004f6da
cmp byte [r15 + 0x1d], r14b
mov rcx, rdi
cmove rcx, rbx
mov rbx, rcx
cmp rbx, rdi
jne 0x14004f6e5
mov al, byte [rsp + 0x54]
jmp 0x14004f716
test r10b, r10b
jne 0x14004f72e
lea ecx, [r12 - 1]
test ecx, ecx
jle 0x14004f714
mov r8d, 1
mov rdx, r8
shl rdx, cl
sub rdx, r8
mov rax, rdx
and rax, rbx
cmp rax, rdx
je 0x14004f72a
sub ecx, r8d
test ecx, ecx
jg 0x14004f6f9
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 0x14004f716
mov al, 0xff
jmp 0x14004f716