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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
lea eax, [rcx + 0xc]
mov r14, r9
mov dword [rsp + 0xf0], eax
cmp ecx, eax
jae case.0x1800476e4.3
mov edi, dword [rsp + 0xf0]
lea r11d, [rcx - 0x63]
mov r12d, dword [rsp + 0xf0]
lea r8, [0x180000000]
mov ebp, dword [rsp + 0xf0]
mov r10d, 0xfffffffe
mov esi, dword [rsp + 0xf0]
mov ecx, eax
mov r15d, dword [rsp + 0xf0]
mov ebx, dword [rsp + 0xf0]
mov r13d, dword [rsp + 0xf0]
lea r9d, [r10 + 4]
mov dword [rsp + 0x44], r11d
cmp r11d, 0x1f
ja case.default.0x1800476e4
movzx eax, byte [r8 + r11 + 0x47ee4]
mov ecx, dword [r8 + rax*4 + 0x47eb4]
add rcx, r8
jmp rcx
mov ecx, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x24]
cmp ecx, r9d
jae 0x180047707
mov eax, 2
mov dword [rsp + 0x34], r10d
mov r8d, eax
mov dword [rsp + 0x38], eax
jmp 0x180047711
mov r10d, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x38]
mov eax, ecx
cmovae eax, r9d
mov r9d, eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x100]
mov dword [rsp + 0x70], r9d
mov dword [rax], r10d
mov r10d, 0xfffffffe
mov rax, qword [rsp + 0x130]
mov dword [rax], r8d
jmp 0x180047e39
mov ecx, dword [rsp + 0x54]
mov edx, dword [rsp + 0x24]
cmp ecx, edx
jae 0x18004775a
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x38], r10d
mov eax, ecx
mov ecx, dword [rsp + 0x58]
cmovae eax, edx
cmp ecx, eax
jae 0x180047771
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x38], r9d
mov edx, ecx
cmovae edx, eax
mov dword [rsp + 0x24], edx
mov rdx, qword [rsp + 0xf8]
jmp 0x180047e3f
mov edx, dword [r14]
mov dword [rsp + 0x44], edx
cmp edx, 7
ja 0x180047e8f
mov r8, qword [rsp + 0x110]
movzx ecx, dl
mov rdx, qword [rsp + 0xf8]
movzx eax, byte [r8]
sar al, cl
mov byte [rsp + 0x48], al
movzx eax, byte [r8 + 1]
sar al, cl
mov byte [rsp + 0x49], al
movzx eax, byte [r8 + 2]
sar al, cl
mov byte [rsp + 0x4a], al
movzx eax, byte [r8 + 3]
sar al, cl
mov byte [rsp + 0x4b], al
movzx eax, byte [r8 + 4]
sar al, cl
mov byte [rsp + 0x4c], al
movzx eax, byte [r8 + 5]
sar al, cl
mov byte [rsp + 0x4d], al
movzx eax, byte [r8 + 6]
sar al, cl
mov byte [rsp + 0x4e], al
movzx eax, byte [r8 + 7]
sar al, cl
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x70], rax
jmp 0x180047e3f
xor ecx, ecx
mov dword [rsp + 0x6c], ecx
mov dword [rsp + 0x54], ecx
jmp case.0x1800476e4.11
mov dword [rsp + 0x64], 0
jmp case.0x1800476e4.11
mov rax, qword [rsp + 0x110]
mov rdx, r14
mov rcx, rax
call qword [rax]
test al, al
je 0x180047e63
mov rax, qword [r14 + 8]
cmp qword [r14], rax
je 0x180047e63
mov r11d, dword [rsp + 0x44]
mov r10d, 0xfffffffe
jmp 0x180047e31
xor r8d, r8d
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x34], r8d
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x38], r10d
jmp 0x180047e3f
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x24], 0
jmp case.0x1800476e4.11
mov rcx, qword [rsp + 0x118]
xor eax, eax
mov dword [rsp + 0x30], eax
cmp dword [rcx], eax
jle 0x180047dab
movsxd rcx, dword [rdx]
mov rdx, qword [rsp + 0x120]
mov r8, rcx
mov r9, qword [rsp + 0x118]
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0xa0], rcx
movsxd rdx, dword [rdx]
mov qword [rsp + 0x98], rdx
xor r10d, r10d
test rdx, rdx
jle 0x180047d8e
mov r9d, ecx
mov dword [rsp + 0x3c], ecx
neg r9d
mov qword [rsp + 0x90], rdx
mov dword [rsp + 0x5c], r9d
lea r11, [r14 - 1]
mov r8d, ecx
nop dword [rax]
xor edx, edx
mov eax, 0x11
mov dword [rsp + 0x20], edx
mov qword [rsp + 0x28], rax
cmp edx, 0x80
ja case.default.0x18004794c
lea rcx, [0x180000000]
movzx eax, byte [rcx + rdx + 0x47f4c]
mov ecx, dword [rcx + rax*4 + 0x47f04]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx r12d, byte [r11 + 2]
movsxd rax, r9d
inc r12d
movzx ecx, byte [rax + r14 + 1]
movzx edi, byte [rax + r14]
inc ecx
add edi, ecx
movzx ecx, byte [r11 + 1]
add r12d, ecx
shr edi, 1
shr r12d, 1
jmp case.0x18004794c.1
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x110]
mov eax, dword [rax]
imul eax, dword [rsp + 0x30]
add eax, r10d
cdqe
movzx eax, byte [rax + rcx]
sub eax, r12d
cdq
xor eax, edx
sub eax, edx
mov edx, dword [rsp + 0x20]
add dword [rsp + 0x64], eax
movsxd rax, r8d
movzx edi, byte [rax + r14]
movzx ecx, byte [rax + r14 - 1]
inc edi
add edi, ecx
shr edi, 1
lea ebp, [rsi + rdi]
sar ebp, 1
jmp case.0x18004794c.1
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x110]
mov eax, dword [rax]
imul eax, dword [rsp + 0x30]
add eax, r10d
cdqe
movzx eax, byte [rax + rcx]
sub eax, dword [rsp + 0x84]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [rsp + 0x20]
add dword [rsp + 0x50], eax
jmp case.0x18004794c.1
movsxd rdx, dword [rsp + 0x3c]
movzx ecx, byte [r11 + 1]
movzx esi, byte [r11]
inc ecx
mov eax, dword [rsp + 0x40]
add esi, ecx
movzx r15d, byte [rdx + r14]
add eax, eax
shr esi, 1
mov ecx, r10d
sub ecx, eax
add edi, esi
movsxd r8, ecx
sar edi, 1
movzx ecx, byte [r8 + r14]
movzx ebp, byte [r8 + r14 - 1]
inc ecx
mov r8d, dword [rsp + 0x3c]
inc ebp
add r15d, ecx
movzx ecx, byte [rdx + r14 - 1]
mov edx, dword [rsp + 0x20]
add ebp, ecx
shr ebp, 1
shr r15d, 1
add ebp, r15d
shr ebp, 1
jmp case.0x18004794c.1
movsxd rax, r9d
movzx edi, byte [rax + r14]
movzx ecx, byte [rax + r14 - 1]
inc edi
add edi, ecx
shr edi, 1
jmp case.0x18004794c.1
mov eax, dword [rsp + 0x40]
mov edi, dword [rsp + 0x88]
lea eax, [r10 + rax*2]
movsxd rcx, eax
movsxd rax, r9d
movzx edx, byte [rcx + r14 + 1]
movzx ebx, byte [rax + r14 + 1]
inc edx
add ebx, edx
movsxd rax, r8d
mov edx, dword [rsp + 0x20]
shr ebx, 1
movzx r12d, byte [rax + r14 - 1]
movzx ecx, byte [rax + r14 + 2]
inc r12d
add r12d, ecx
lea r13d, [rbx + r15]
shr r12d, 1
add edi, r12d
sar r13d, 1
sar edi, 1
lea esi, [rdi + r13]
sar esi, 1
jmp case.0x18004794c.1
mov rcx, qword [rsp + 0x110]
add ebx, r13d
sar ebx, 1
add ebx, ebp
sar ebx, 1
lea eax, [rbx + rdi]
sar eax, 1
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x128]
mov eax, dword [rax]
imul eax, dword [rsp + 0x30]
add eax, r10d
cdqe
movzx eax, byte [rax + rcx]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
mov edx, dword [rsp + 0x20]
add dword [rsp + 0x68], eax
jmp case.0x18004794c.1
mov eax, dword [rsp + 0x40]
movsxd rdx, r9d
lea eax, [r10 + rax*2]
movzx esi, byte [rdx + r14 - 1]
movzx r15d, byte [rdx + r14]
mov edx, dword [rsp + 0x20]
movsxd r8, eax
movzx ecx, byte [r8 + r14 - 1]
inc ecx
add esi, ecx
movzx ecx, byte [r8 + r14]
movsxd r8, dword [rsp + 0x3c]
inc ecx
add r15d, ecx
shr esi, 1
shr r15d, 1
movzx edi, byte [r8 + r14 + 1]
movzx ecx, byte [r8 + r14 - 2]
inc edi
lea ebx, [r15 + rsi]
add edi, ecx
shr ebx, 1
shr edi, 1
jmp case.0x18004794c.1
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x110]
mov eax, dword [rax]
imul eax, dword [rsp + 0x30]
add eax, r10d
cdqe
movzx ecx, byte [rax + rcx]
mov eax, ecx
sub ecx, dword [rsp + 0x7c]
sub eax, dword [rsp + 0x78]
cdq
xor eax, edx
sub eax, edx
add dword [rsp + 0x54], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [rsp + 0x20]
add dword [rsp + 0x58], eax
jmp case.0x18004794c.1
add ebx, ebp
sar ebx, 1
jmp case.0x18004794c.1
lea eax, [rbx + rdi]
sar eax, 1
mov dword [rsp + 0x78], eax
jmp case.0x18004794c.1
movzx r8d, byte [r11 + 1]
lea eax, [rsi + rbp]
mov rcx, qword [rsp + 0x110]
sar eax, 1
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x128]
mov eax, dword [rax]
imul eax, dword [rsp + 0x30]
add eax, r10d
cdqe
movzx r9d, byte [rax + rcx]
movsxd rax, dword [rsp + 0x3c]
movsxd rcx, dword [rsp + 0x5c]
movzx edx, byte [rax + r14]
mov eax, r9d
inc edx
add edx, r8d
shr edx, 1
sub eax, edx
cdq
xor eax, edx
sub eax, edx
movzx edx, byte [rcx + r14]
add dword [rsp + 0x60], eax
lea ecx, [r8 + 1]
mov r8d, dword [rsp + 0x3c]
add ecx, edx
mov eax, r9d
shr ecx, 1
sub r9d, dword [rsp + 0x80]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add dword [rsp + 0x24], eax
mov eax, r9d
mov r9d, dword [rsp + 0x5c]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [rsp + 0x20]
add dword [rsp + 0x6c], eax
jmp case.0x18004794c.1
movzx r13d, byte [r11 - 1]
movsxd rax, r9d
inc r13d
movzx ecx, byte [rax + r14 - 2]
movzx ebx, byte [rax + r14 + 1]
inc ecx
add ebx, ecx
movzx ecx, byte [r11 + 2]
add r13d, ecx
shr ebx, 1
shr r13d, 1
jmp case.0x18004794c.1
lea esi, [rdi + r13]
sar esi, 1
add esi, ebx
sar esi, 1
jmp case.0x18004794c.1
lea eax, [rsi + rbp]
sar eax, 1
mov dword [rsp + 0x84], eax
movsxd rax, r8d
movzx esi, byte [rax + r14]
movzx ecx, byte [rax + r14 + 1]
inc esi
add esi, ecx
shr esi, 1
lea ebp, [rsi + r12]
sar ebp, 1
jmp case.0x18004794c.1
mov eax, dword [rsp + 0x40]
add edi, r12d
add eax, eax
sar edi, 1
mov ecx, r10d
sub ecx, eax
movsxd rax, ecx
movzx edx, byte [rax + r14 + 1]
inc edx
movsxd rax, r8d
movzx ebx, byte [rax + r14 + 1]
add ebx, edx
mov edx, dword [rsp + 0x20]
jmp 0x180047d2c
lea ebp, [rbx + r15]
movsxd rax, r9d
sar ebp, 1
movzx ecx, byte [rax + r14 + 2]
movzx r15d, byte [rax + r14 - 1]
inc ecx
movzx eax, byte [r11]
add r15d, ecx
movzx ecx, byte [r11 + 3]
inc eax
shr r15d, 1
add eax, ecx
shr eax, 1
mov dword [rsp + 0x88], eax
lea ebx, [rax + r15]
shr ebx, 1
mov rax, qword [rsp + 0x28]
add edx, 8
sub rax, 1
mov dword [rsp + 0x20], edx
mov qword [rsp + 0x28], rax
jne 0x180047920
inc r8d
inc r9d
inc r10d
mov dword [rsp + 0x3c], r8d
inc r11
mov dword [rsp + 0x5c], r9d
sub qword [rsp + 0x90], 1
jne 0x180047910
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x118]
inc eax
add r14, r8
mov dword [rsp + 0x30], eax
cmp eax, dword [r9]
jl 0x1800478e3
mov r11d, dword [rsp + 0x44]
mov r9d, 2
mov ecx, dword [rsp + 0x24]
cmp dword [rsp + 0x60], ecx
mov r8d, dword [rsp + 0x38]
mov r10d, dword [rsp + 0x34]
cmovb r8d, r9d
mov r9d, dword [rsp + 0x64]
mov eax, dword [rsp + 0x60]
cmovae eax, ecx
mov ecx, 2
cmp r9d, eax
cmovb r10d, ecx
xor edx, edx
cmp r9d, eax
mov ecx, r9d
cmovae ecx, eax
cmovae edx, r8d
mov r8d, dword [rsp + 0x68]
mov eax, 0xfffffffe
cmp r8d, ecx
mov r9d, r8d
cmovb r10d, eax
cmovae r9d, ecx
mov dword [rsp + 0x34], r10d
xor r10d, r10d
cmp r8d, ecx
mov dword [rsp + 0x24], r9d
mov ecx, dword [rsp + 0x6c]
cmovae r10d, edx
mov dword [rsp + 0x38], r10d
mov r10d, eax
cmp ecx, r9d
jae 0x180047e31
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x24], ecx
mov rdx, qword [rsp + 0xf8]
mov r9d, 2
lea r8, [0x180000000]
mov ecx, dword [rsp + 0xf0]
inc r11d
mov dword [rsp + 0x44], r11d
lea eax, [r11 + 0x63]
cmp eax, ecx
jb 0x1800476c6
jmp case.0x1800476e4.3
mov byte [rsp + 0x70], 0
jmp case.0x1800476e4.3
mov byte [rsp + 0x70], 1
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x108]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, r9d
call fcn.1800d2ed8
mov r8d, dword [rsp + 0x44]
lea rdx, str.op_GuestOps_ValidateCredentials_in_
mov rcx, rax
call fcn.1800c5f20
call fcn.1800ce940
int3