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

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x4d8
mov rax, qword [0x180166040]
xor rax, rsp
mov qword [rsp + 0x4b0], rax
mov qword [rsp + 0x90], rdx
mov rbx, rcx
lea rdx, [rsp + 0x48]
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], r8
xor r12d, r12d
mov dword [rsp + 0x64], 0xff
call fcn.18004f210
test rax, rax
je 0x180050269
mov eax, dword [rbx + 4]
mov r8d, eax
mov r13d, dword [rsp + 0x50]
neg r8d
mov ebp, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x48]
cmovs r8d, eax
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 4], r8d
mov dword [rsp + 0x24], eax
cmp r13d, 0xc
jne 0x18004f70a
cmp edi, 0x18
jge 0x18004f71d
lea ecx, [rbp - 0x26]
mov eax, 0x55555556
imul ecx
mov r12d, edx
shr r12d, 0x1f
add r12d, edx
jmp 0x18004f71d
cmp edi, 0x10
jge 0x18004f71d
mov r12d, ebp
sub r12d, r13d
sub r12d, 0xe
sar r12d, 2
xor eax, eax
cmp dword [rsp + 0x60], eax
setne al
imul r8d, dword [rbx]
add eax, 3
mov dword [rbx + 8], eax
shl r8d, 2
mov ecx, r8d
call fcn.1800e1184
mov qword [rsp + 0x88], rax
mov r14, rax
test rax, rax
je 0x180050269
mov qword [rsp + 0x4d0], rsi
mov qword [rsp + 0x4c8], r15
cmp edi, 0x10
jge 0x18004fb1b
xor edi, edi
test r12d, r12d
je 0x18005025d
cmp r12d, 0x100
jg 0x18005025d
test r12d, r12d
jle 0x18004f8d1
xor r15d, r15d
movsxd r14, r12d
lea rsi, [rbx + 0x30]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004f7bf
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f7e8
cmp dword [rbx + 0x30], edi
lea rsi, [rbx + 0x30]
je 0x18004f7e6
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f7e8
xor cl, cl
mov qword [rsp + 0x30], rsi
mov byte [rsp + r15*4 + 0xb2], cl
cmp rax, qword [rbx + 0xc0]
jae 0x18004f80d
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f831
cmp dword [rsi], edi
je 0x18004f82f
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f831
xor cl, cl
mov byte [rsp + r15*4 + 0xb1], cl
cmp rax, qword [rbx + 0xc0]
jae 0x18004f855
movzx ecx, byte [rax]
lea rsi, [rbx + 0x30]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f879
cmp dword [rsi], edi
je 0x18004f877
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f879
xor cl, cl
mov byte [rsp + r15*4 + 0xb0], cl
cmp r13d, 0xc
je 0x18004f8b4
cmp rax, qword [rbx + 0xc0]
jae 0x18004f89c
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f8b4
mov rax, qword [rsp + 0x30]
cmp dword [rax], edi
je 0x18004f8b4
mov rcx, rbx
call fcn.1800481b0
inc qword [rbx + 0xb8]
mov byte [rsp + r15*4 + 0xb3], 0xff
inc r15
cmp r15, r14
jl 0x18004f7a0
mov r14, qword [rsp + 0x88]
xor eax, eax
cmp r13d, 0xc
setne al
add eax, 3
imul eax, r12d
sub ebp, eax
sub ebp, r13d
sub ebp, 0xe
jns 0x18004f8fb
mov rax, qword [rbx + 0xc0]
mov qword [rbx + 0xb8], rax
jmp 0x18004f936
cmp qword [rbx + 0x10], rdi
je 0x18004f92c
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rbx + 0xb8]
cmp ecx, ebp
jge 0x18004f92c
mov rax, qword [rbx + 0xc0]
sub ebp, ecx
mov rcx, qword [rbx + 0x28]
mov edx, ebp
mov qword [rbx + 0xb8], rax
call qword [rbx + 0x18]
jmp 0x18004f936
movsxd rax, ebp
add qword [rbx + 0xb8], rax
mov r12d, dword [rsp + 0x48]
cmp r12d, 4
jne 0x18004f949
mov ebp, dword [rbx]
inc ebp
shr ebp, 1
jmp 0x18004f955
cmp r12d, 8
jne 0x18005025d
mov ebp, dword [rbx]
mov eax, dword [rbx + 4]
neg ebp
and ebp, 3
xor r15d, r15d
mov edx, eax
test eax, eax
jle 0x180050157
nop word [rax + rax]
xor esi, esi
cmp dword [rbx], esi
jle 0x18004faca
nop word [rax + rax]
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004f99f
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f9c5
cmp dword [rbx + 0x30], 0
je 0x18004f9c3
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004f9c5
xor cl, cl
xor r8d, r8d
movzx eax, cl
cmp r12d, 4
jne 0x18004f9db
mov r8d, eax
and r8d, 0xf
shr eax, 4
movsxd rcx, edi
lea rdx, [rax*4]
movzx eax, byte [rsp + rdx + 0xb0]
inc edi
mov byte [rcx + r14], al
movzx eax, byte [rsp + rdx + 0xb1]
movsxd rcx, edi
inc edi
mov byte [rcx + r14], al
movzx eax, byte [rsp + rdx + 0xb2]
movsxd rcx, edi
inc edi
mov byte [rcx + r14], al
movsxd rax, edi
inc edi
mov byte [rax + r14], 0xff
lea eax, [rsi + 1]
cmp eax, dword [rbx]
je 0x18004faca
cmp r12d, 8
jne 0x18004fa7a
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004fa50
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004fa76
cmp dword [rbx + 0x30], 0
je 0x18004fa74
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004fa76
xor cl, cl
movzx r8d, cl
movsxd rcx, edi
lea rdx, [r8*4]
movzx eax, byte [rsp + rdx + 0xb0]
inc edi
add esi, 2
mov byte [rcx + r14], al
movzx eax, byte [rsp + rdx + 0xb1]
movsxd rcx, edi
inc edi
mov byte [rcx + r14], al
movzx eax, byte [rsp + rdx + 0xb2]
movsxd rcx, edi
inc edi
mov byte [rcx + r14], al
movsxd rax, edi
inc edi
mov byte [rax + r14], 0xff
cmp esi, dword [rbx]
jl 0x18004f980
cmp qword [rbx + 0x10], 0
je 0x18004fafc
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rbx + 0xb8]
cmp ecx, ebp
jge 0x18004fafc
mov rax, qword [rbx + 0xc0]
mov edx, ebp
sub edx, ecx
mov qword [rbx + 0xb8], rax
mov rcx, qword [rbx + 0x28]
call qword [rbx + 0x18]
jmp 0x18004fb05
mov eax, ebp
add qword [rbx + 0xb8], rax
mov eax, dword [rbx + 4]
inc r15d
mov edx, eax
cmp r15d, eax
jl 0x18004f970
jmp 0x180050157
sub ebp, dword [rsp + 0x50]
xor r8d, r8d
sub ebp, 0xe
mov dword [rsp + 0x68], r8d
mov esi, r8d
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x3c], r8d
mov r11d, r8d
mov dword [rsp + 0x40], r8d
mov r12d, r8d
mov r13d, r8d
mov dword [rsp + 0x20], r8d
mov r15d, r8d
mov r9d, r8d
jns 0x18004fb62
mov rax, qword [rbx + 0xc0]
mov qword [rbx + 0xb8], rax
jmp 0x18004fba6
cmp qword [rbx + 0x10], rsi
je 0x18004fb9c
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rbx + 0xb8]
cmp ecx, ebp
jge 0x18004fb9c
mov rax, qword [rbx + 0xc0]
sub ebp, ecx
mov rcx, qword [rbx + 0x28]
mov edx, ebp
mov qword [rbx + 0xb8], rax
call qword [rbx + 0x18]
mov r9d, esi
mov r11d, esi
xor r8d, r8d
jmp 0x18004fba6
movsxd rax, ebp
add qword [rbx + 0xb8], rax
cmp edi, 0x18
jne 0x18004fbb3
mov eax, dword [rbx]
lea r10d, [rax + rax*2]
jmp 0x18004fbc3
cmp edi, 0x10
jne 0x18004fbc0
mov r10d, dword [rbx]
add r10d, r10d
jmp 0x18004fbc3
mov r10d, r8d
mov ecx, dword [rsp + 0x5c]
neg r10d
mov edx, dword [rsp + 0x58]
and r10d, 3
mov ebp, dword [rsp + 0x54]
mov dword [rsp + 0x6c], r10d
cmp edi, 0x18
jne 0x18004fbf4
mov r8d, 1
mov ebp, esi
mov qword [rsp + 0x30], r8
mov edi, esi
jmp 0x18004fdd2
mov qword [rsp + 0x30], r8
cmp edi, 0x20
jne 0x18004fc4c
mov qword [rsp + 0x30], r8
cmp ecx, 0xff
jne 0x18004fc4c
mov qword [rsp + 0x30], r8
cmp edx, 0xff00
jne 0x18004fc4c
mov r10d, dword [rsp + 0x60]
mov qword [rsp + 0x30], r8
cmp ebp, 0xff0000
jne 0x18004fc51
mov qword [rsp + 0x30], r8
cmp r10d, 0xff000000
jne 0x18004fc51
mov r8d, 2
mov ebp, esi
mov qword [rsp + 0x30], r8
mov edi, esi
jmp 0x18004fdd2
mov r10d, dword [rsp + 0x60]
test ebp, ebp
je 0x18005025d
test edx, edx
je 0x18005025d
test ecx, ecx
je 0x18005025d
mov ecx, ebp
call fcn.18004f1a0
mov r11d, dword [rsp + 0x58]
mov edx, ebp
shr edx, 1
mov ecx, ebp
and edx, 0x55555555
and ecx, 0x55555555
add edx, ecx
lea esi, [rax - 7]
mov ecx, edx
mov dword [rsp + 0x68], esi
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r11d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r12d, al
call fcn.18004f1a0
mov edx, r11d
mov ecx, r11d
mov r11d, dword [rsp + 0x5c]
and ecx, 0x55555555
shr edx, 1
and edx, 0x55555555
lea edi, [rax - 7]
add edx, ecx
mov dword [rsp + 0x38], edi
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r11d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r13d, al
call fcn.18004f1a0
sub eax, 7
mov edx, r11d
shr edx, 1
mov ecx, r11d
and edx, 0x55555555
mov dword [rsp + 0x3c], eax
and ecx, 0x55555555
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r10d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx ebp, al
call fcn.18004f1a0
mov r8, qword [rsp + 0x30]
mov edx, r10d
shr edx, 1
mov ecx, r10d
and edx, 0x55555555
and ecx, 0x55555555
add edx, ecx
lea r11d, [rax - 7]
mov ecx, edx
mov dword [rsp + 0x40], r11d
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r15d, al
mov eax, dword [rbx + 4]
mov edx, eax
mov dword [rsp + 0x70], 0
test eax, eax
jle 0x180050157
mov eax, esi
neg eax
mov dword [rsp + 0x74], eax
mov eax, edi
neg eax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x3c]
neg eax
mov dword [rsp + 0x7c], eax
mov eax, r11d
neg eax
mov dword [rsp + 0x80], eax
nop dword [rax]
mov eax, dword [rbx]
movsxd rcx, r9d
test r8, r8
je 0x18004ff7a
xor esi, esi
test eax, eax
jle 0x1800500ef
lea rdi, [rcx + r14]
nop dword [rax]
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004fe4f
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004fe75
cmp dword [rbx + 0x30], 0
je 0x18004fe73
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004fe75
xor cl, cl
mov byte [rdi + 2], cl
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004fe97
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004febd
cmp dword [rbx + 0x30], 0
je 0x18004febb
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004febd
xor cl, cl
mov byte [rdi + 1], cl
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004fedf
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004ff05
cmp dword [rbx + 0x30], 0
je 0x18004ff03
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004ff05
xor cl, cl
cmp qword [rsp + 0x30], 2
mov byte [rdi], cl
jne 0x18004ff56
mov rax, qword [rbx + 0xb8]
cmp rax, qword [rbx + 0xc0]
jae 0x18004ff2e
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004ff58
cmp dword [rbx + 0x30], 0
je 0x18004ff52
mov rcx, rbx
call fcn.1800481b0
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18004ff58
xor cl, cl
jmp 0x18004ff58
mov cl, 0xff
add dword [rsp + 0x20], 4
inc esi
mov byte [rdi + 3], cl
add rdi, 4
movzx eax, cl
or dword [rsp + 0x24], eax
cmp esi, dword [rbx]
jl 0x18004fe30
jmp 0x1800500ef
xor edi, edi
mov dword [rsp + 0x28], edi
test eax, eax
jle 0x1800500ef
lea rsi, [rcx + r14]
mov r14d, dword [rsp + 0x48]
mov rcx, rbx
call fcn.1800483b0
cmp r14d, 0x10
jne 0x18004ffa3
mov edx, eax
jmp 0x18004ffb8
mov rcx, rbx
mov edi, eax
call fcn.1800483b0
mov edx, eax
shl edx, 0x10
add edx, edi
mov edi, dword [rsp + 0x28]
mov eax, dword [rsp + 0x68]
mov r8d, edx
and r8d, dword [rsp + 0x54]
test eax, eax
jns 0x18004ffd1
mov ecx, dword [rsp + 0x74]
shl r8d, cl
jmp 0x18004ffd6
mov ecx, eax
sar r8d, cl
mov r9d, r8d
mov ecx, r12d
cmp r12d, 8
jae 0x18004fff2
mov eax, r8d
sar eax, cl
add ecx, r12d
add r9d, eax
cmp ecx, 8
jl 0x18004ffe2
mov eax, dword [rsp + 0x38]
mov r8d, edx
and r8d, dword [rsp + 0x58]
mov byte [rsi], r9b
test eax, eax
jns 0x18005000e
mov ecx, dword [rsp + 0x78]
shl r8d, cl
jmp 0x180050013
mov ecx, eax
sar r8d, cl
mov r9d, r8d
mov ecx, r13d
cmp r13d, 8
jae 0x180050030
nop
mov eax, r8d
sar eax, cl
add ecx, r13d
add r9d, eax
cmp ecx, 8
jl 0x180050020
mov eax, dword [rsp + 0x3c]
mov r8d, edx
and r8d, dword [rsp + 0x5c]
mov byte [rsi + 1], r9b
test eax, eax
jns 0x18005004d
mov ecx, dword [rsp + 0x7c]
shl r8d, cl
jmp 0x180050052
mov ecx, eax
sar r8d, cl
mov r9d, r8d
mov ecx, ebp
cmp ebp, 8
jae 0x18005006f
nop dword [rax]
mov eax, r8d
sar eax, cl
add ecx, ebp
add r9d, eax
cmp ecx, 8
jl 0x180050060
mov r10d, dword [rsp + 0x60]
mov byte [rsi + 2], r9b
test r10d, r10d
je 0x1800500c1
mov r11d, dword [rsp + 0x40]
and edx, r10d
test r11d, r11d
jns 0x180050095
mov ecx, dword [rsp + 0x80]
shl edx, cl
jmp 0x18005009a
mov ecx, r11d
sar edx, cl
mov r8d, edx
mov ecx, r15d
cmp r15d, 8
jae 0x1800500c7
nop word [rax + rax]
mov eax, edx
sar eax, cl
add ecx, r15d
add r8d, eax
cmp ecx, 8
jl 0x1800500b0
jmp 0x1800500c7
mov r8d, 0xff
or dword [rsp + 0x24], r8d
inc edi
add dword [rsp + 0x20], 4
mov byte [rsi + 3], r8b
add rsi, 4
mov dword [rsp + 0x28], edi
cmp edi, dword [rbx]
jl 0x18004ff91
mov r14, qword [rsp + 0x88]
cmp qword [rbx + 0x10], 0
mov r10d, dword [rsp + 0x6c]
je 0x180050128
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rbx + 0xb8]
cmp ecx, r10d
jge 0x180050128
mov rax, qword [rbx + 0xc0]
mov edx, r10d
sub edx, ecx
mov qword [rbx + 0xb8], rax
mov rcx, qword [rbx + 0x28]
call qword [rbx + 0x18]
jmp 0x180050132
mov eax, r10d
add qword [rbx + 0xb8], rax
mov r10d, dword [rsp + 0x70]
mov eax, dword [rbx + 4]
inc r10d
mov r9d, dword [rsp + 0x20]
mov edx, eax
mov r8, qword [rsp + 0x30]
mov dword [rsp + 0x70], r10d
cmp r10d, eax
jl 0x18004fe10
cmp dword [rsp + 0x24], 0
jne 0x18005017e
imul eax, dword [rbx]
lea eax, [rax*4 - 1]
movsxd rcx, eax
test eax, eax
js 0x18005017e
nop
mov byte [r14 + rcx], 0xff
sub rcx, 4
jns 0x180050170
mov edx, dword [rbx + 4]
cmp dword [rsp + 0x84], 0
jle 0x1800501fe
xor r10d, r10d
test edx, 0xfffffffe
jle 0x1800501fe
mov ecx, dword [rbx]
sub edx, r10d
dec edx
mov r9d, ecx
imul edx, ecx
xor r8d, r8d
imul r9d, r10d
lea eax, [rcx*4]
shl edx, 2
shl r9d, 2
add rdx, r14
add r9, r14
test eax, eax
jle 0x1800501ef
sub r9, rdx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
inc r8d
movzx ecx, byte [rdx + r9]
mov byte [rdx + r9], al
mov byte [rdx], cl
lea rdx, [rdx + 1]
mov eax, dword [rbx]
shl eax, 2
cmp r8d, eax
jl 0x1800501d0
mov edx, dword [rbx + 4]
inc r10d
mov eax, edx
sar eax, 1
cmp r10d, eax
jl 0x180050193
mov eax, dword [rbx]
mov rcx, qword [rsp + 0x90]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x98]
mov eax, dword [rbx + 4]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x180050229
mov eax, dword [rbx + 8]
mov dword [rcx], eax
mov rax, r14
mov rsi, qword [rsp + 0x4d0]
mov r15, qword [rsp + 0x4c8]
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.1800b6030
add rsp, 0x4d8
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
mov rcx, r14
call fcn.1800e1170
xor eax, eax
jmp 0x18005022c
xor eax, eax
jmp 0x18005023c