Function at 0x18004eefc
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 0x18004ef5a
mov rax, qword [rcx]
mov r9, qword [rax]
test byte [r9 + 0x5c], 0x40
jne 0x18004f63c
movzx r9d, word [rsp + 0xf8]
movzx edx, word [rdx]
mov word [rsp + 0x54], dx
cmp dx, 0x3f
ja 0x18004f63c
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 0x18004f605
movzx eax, word [rsp + 0x100]
cmp r13d, eax
jg 0x18004f602
test r13d, r13d
jle 0x18004f001
or rsi, qword [r15 + 8]
mov qword [rsp + 0x58], rsi
cmp r13d, eax
jge 0x18004f021
mov rax, qword [rbp + 0x18]
mov r15, qword [rax + rdx*8]
mov qword [rsp + 0x80], r15
test cx, cx
jne 0x18004f5d2
jmp 0x18004f031
mov r15, qword [rsp + 0x108]
mov qword [rsp + 0x80], r15
mov edx, dword [r15 + 0x28]
bt edx, 0xa
jb 0x18004f5f4
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 0x18004f161
mov r13, qword [rsp + 0xe0]
lea rsi, [r11 + 8]
xor edx, edx
mov eax, ebp
bt rbx, rax
jb 0x18004f139
mov rcx, qword [rsi]
call fcn.180031140
mov rdi, rax
cmp byte [rax], 0x9e
jne 0x18004f139
cmp dword [rax + 0x2c], r8d
jne 0x18004f139
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.18004d0dc
mov r8, rax
xor eax, eax
test r8, r8
je 0x18004f12c
lea r10d, [rax + 1]
cmp word [r8 + 0x14], r10w
jne 0x18004f100
movzx edx, word [r15 + 0x2c]
mov ecx, eax
test edx, edx
je 0x18004f0fc
mov r9, qword [r15 + 0x38]
movsxd rax, ecx
cmp r8, qword [r9 + rax*8]
je 0x18004f0fa
add ecx, r10d
cmp ecx, edx
jl 0x18004f0ea
xor eax, eax
cmp ecx, edx
jge 0x18004f12c
test byte [r8 + 0x14], 0x82
je 0x18004f124
cmp word [rdi + 0x30], ax
jl 0x18004f124
mov r8, qword [r8]
mov rdx, qword [rsi]
mov rcx, qword [r13]
call fcn.1800312dc
xor edx, edx
test eax, eax
je 0x18004f12e
jmp 0x18004f126
xor edx, edx
bts rbx, r14
jmp 0x18004f12e
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 0x18004f075
mov r13d, dword [rsp + 0x4c]
xor r14d, r14d
mov edx, dword [r15 + 0x28]
mov r10d, dword [rsp + 0x38]
bt edx, 0xc
jb 0x18004f4f0
mov eax, 0x100
test eax, edx
je 0x18004f189
mov r9d, 1
mov word [rsp + 0x44], r14w
movzx eax, r9w
mov rsi, r14
jmp 0x18004f1c0
mov rsi, qword [r15 + 0x20]
test rsi, rsi
je 0x18004f63c
test byte [rsi + 0x64], 4
jne 0x18004f63c
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 0x18004f4f0
movzx r8d, word [r15 + 0x18]
mov bpl, r9b
cmp edi, r8d
jge 0x18004f269
movzx eax, word [r15 + 0x2e]
cmp edi, eax
jl 0x18004f269
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 0x18004f235
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 0x18004f4c3
mov r13d, 1
test r13b, al
je 0x18004f266
mov r10, qword [rcx]
lea edx, [rdi + 1]
jmp 0x18004f257
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r10
je 0x18004f25e
add edx, r13d
cmp edx, r8d
jl 0x18004f248
jmp 0x18004f261
mov bpl, r14b
mov r10d, dword [rsp + 0x38]
mov r9, r13
test rsi, rsi
je 0x18004f298
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 0x18004f2a2
or r14d, 0xffffffff
jmp 0x18004f2a2
or r14d, 0xffffffff
xor edx, edx
mov byte [rsp + 0x32], dl
test r10b, r10b
je 0x18004f2cf
test r14d, r14d
js 0x18004f2cf
cmp edi, r8d
jl 0x18004f2cf
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 0x18004f406
cmp r13d, r12d
jge 0x18004f401
mov eax, r13d
bt rbx, rax
jb 0x18004f3f5
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.180031140
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 0x18004f35d
cmp byte [rdx], 0x9e
jne 0x18004f3ef
mov ecx, dword [rsp + 0x40]
cmp dword [rdx + 0x2c], ecx
jne 0x18004f3ef
movsx eax, word [rdx + 0x30]
cmp eax, r14d
jne 0x18004f3ef
movsxd r12, edi
jmp 0x18004f3a3
mov rax, qword [rsi + 0x50]
movsxd r12, edi
lea rcx, [r12 + r12*4]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.180031140
mov rcx, rdx
mov r8, rax
call fcn.180031140
mov r9d, dword [rsp + 0x40]
mov rdx, rax
xor ecx, ecx
call fcn.180034fe8
xor r10d, r10d
test eax, eax
jne 0x18004f3ea
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0xe8]
cmp r14d, 0xffffffff
je 0x18004f422
mov rax, qword [rsp + 0xe0]
mov rdx, qword [r9 + r8*8 + 8]
mov rbp, qword [rax]
mov rcx, rbp
call fcn.18003116c
test rax, rax
jne 0x18004f3ce
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.180013fe0
xor r10d, r10d
test eax, eax
je 0x18004f422
mov r12d, dword [rsp + 0x50]
mov r9d, 1
add r13d, r9d
test bpl, bpl
jne 0x18004f2de
mov r11d, dword [rsp + 0x48]
xor r14d, r14d
test edi, edi
je 0x18004f41a
movzx eax, word [rsp + 0x44]
cmp edi, eax
jge 0x18004f4d1
mov r10b, r14b
jmp 0x18004f4d6
test byte [rsp + 0xf8], 0x40
mov r9d, 1
mov dl, r9b
lea eax, [r9 + rdi]
mov word [r15 + 0x1e], ax
jne 0x18004f499
mov r8, qword [rsp + 0xe8]
movsxd rax, r13d
lea rax, [rax + rax*4]
cmp byte [rsp + 0x34], r10b
je 0x18004f466
mov cl, byte [rsp + 0x32]
xor cl, byte [rsp + 0x33]
cmp cl, byte [r8 + rax*8 + 0x20]
sete dl
jmp 0x18004f491
mov al, byte [r8 + rax*8 + 0x20]
xor al, byte [rsp + 0x32]
mov byte [rsp + 0x33], al
je 0x18004f48c
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 0x18004f401
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 0x18004f4d6
jmp 0x18004f1e4
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 0x18004f5a5
mov rsi, qword [rsp + 0x68]
mov edi, r14d
or rsi, qword [r15 + 8]
mov qword [rsp + 0x68], rsi
test r12d, r12d
je 0x18004f5a5
mov r13, qword [rsp + 0xe0]
mov ecx, 1
mov r15, qword [rsp + 0xe8]
mov eax, edi
bt rbx, rax
jb 0x18004f589
movsxd r14, edi
lea rax, [r14 + r14*4]
mov rbp, qword [r15 + rax*8 + 8]
xor eax, eax
test rbp, rbp
je 0x18004f552
lea rcx, [r13 + 0x290]
mov rdx, rbp
call fcn.18004cb2c
mov rsi, rax
test rax, rax
jne 0x18004f56c
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rbp
call fcn.180033060
test eax, eax
je 0x18004f584
mov rax, qword [rsp + 0x68]
mov ecx, 1
not rax
test rsi, rax
jne 0x18004f589
bts rbx, r14
jmp 0x18004f589
mov ecx, 1
add edi, ecx
cmp edi, r12d
jl 0x18004f528
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 0x18004efd9
jmp 0x18004f602
cmp byte [r15 + 0x1d], r14b
mov rcx, rdi
cmove rcx, rbx
mov rbx, rcx
cmp rbx, rdi
jne 0x18004f60d
mov al, byte [rsp + 0x54]
jmp 0x18004f63e
test r10b, r10b
jne 0x18004f656
lea ecx, [r12 - 1]
test ecx, ecx
jle 0x18004f63c
mov r8d, 1
mov rdx, r8
shl rdx, cl
sub rdx, r8
mov rax, rdx
and rax, rbx
cmp rax, rdx
je 0x18004f652
sub ecx, r8d
test ecx, ecx
jg 0x18004f621
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 0x18004f63e
mov al, 0xff
jmp 0x18004f63e