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

Disassembly:
push rdi
sub rsp, 0xa0
lea rax, [rsp + 0x50]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea rax, [rsp + 0x20]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea rax, [rsp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea rax, [rsp + 0x28]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
mov ecx, 0xfe
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x50], rax
mov ecx, 0x2ff
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
shr rax, 0xb
and rax, 1
test rax, rax
jne 0x14004942c
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov byte [rax + 0x974], 0
jmp 0x140049ad4
mov rax, qword [rsp + 0x28]
and rax, 0xff
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov byte [rcx + 0x974], al
mov rax, qword [rsp + 0x50]
shr rax, 0xb
and rax, 1
cmp rax, 1
jne 0x14004959a
mov ecx, 0x1f2
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x20], rax
mov ecx, 0x1f3
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
shr rax, 0xb
and rax, 1
test rax, rax
je 0x14004959a
mov rax, qword [rsp + 0x20]
and rax, 0xff
mov rcx, qword [rsp + 0x28]
and rcx, 0xff
cmp rax, rcx
je 0x14004959a
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x970]
imul rcx, rcx, 0x18
lea rax, [rax + rcx + 0x10]
mov qword [rsp], rax
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x970]
inc eax
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov dword [rcx + 0x970], eax
mov rax, qword [rsp + 0x20]
shr rax, 0xc
movabs rcx, 0xfffffffff
and rax, rcx
shl rax, 0xc
mov rcx, qword [rsp]
mov qword [rcx], rax
mov dword [rsp + 0x38], 0
mov rax, qword [rsp + 0x30]
shr rax, 0xc
movabs rcx, 0xfffffffff
and rax, rcx
shl rax, 0xc
bsf rax, rax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
mov ecx, 1
mov qword [rsp + 0x78], rcx
movzx ecx, al
mov rax, qword [rsp + 0x78]
shl rax, cl
mov rcx, qword [rsp]
mov rcx, qword [rcx]
lea rax, [rax + rcx - 1]
mov rcx, qword [rsp]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x20]
and rax, 0xff
mov rcx, qword [rsp]
mov byte [rcx + 0x10], al
mov rax, qword [rsp]
mov byte [rax + 0x11], 0
mov rax, qword [rsp + 0x50]
shr rax, 8
and rax, 1
cmp rax, 1
jne 0x140049950
mov rax, qword [rsp + 0x28]
shr rax, 0xa
and rax, 1
test rax, rax
je 0x140049950
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x58], 0x10000
mov qword [rsp + 0x68], 0x80000
mov qword [rsp + 0x40], 0x4000
mov qword [rsp + 0x70], 0xc0000
mov qword [rsp + 0x48], 0x1000
mov ecx, 0x250
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x80], rax
mov dword [rsp + 8], 0
jmp 0x140049627
mov eax, dword [rsp + 8]
inc eax
mov dword [rsp + 8], eax
cmp dword [rsp + 8], 8
jae 0x1400496ee
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x970]
imul rcx, rcx, 0x18
lea rax, [rax + rcx + 0x10]
mov qword [rsp], rax
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x970]
inc eax
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov dword [rcx + 0x970], eax
mov eax, dword [rsp + 8]
mov rcx, qword [rsp]
movzx eax, byte [rsp + rax + 0x80]
mov byte [rcx + 0x10], al
mov eax, dword [rsp + 8]
mov rcx, qword [rsp + 0x58]
imul rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp]
mov qword [rcx], rax
mov eax, dword [rsp + 8]
mov rcx, qword [rsp + 0x58]
imul rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
lea rax, [rax + rcx - 1]
mov rcx, qword [rsp]
mov qword [rcx + 8], rax
mov rax, qword [rsp]
mov byte [rax + 0x11], 1
jmp 0x14004961d
mov dword [rsp + 0xc], 0
jmp 0x140049702
mov eax, dword [rsp + 0xc]
inc eax
mov dword [rsp + 0xc], eax
cmp dword [rsp + 0xc], 2
jae 0x14004981f
mov eax, dword [rsp + 0xc]
add eax, 0x258
mov ecx, eax
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x10], 0
jmp 0x14004973d
mov eax, dword [rsp + 0x10]
inc eax
mov dword [rsp + 0x10], eax
cmp dword [rsp + 0x10], 8
jae 0x14004981a
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x970]
imul rcx, rcx, 0x18
lea rax, [rax + rcx + 0x10]
mov qword [rsp], rax
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x970]
inc eax
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov dword [rcx + 0x970], eax
mov eax, dword [rsp + 0x10]
mov rcx, qword [rsp]
movzx eax, byte [rsp + rax + 0x88]
mov byte [rcx + 0x10], al
mov eax, dword [rsp + 0xc]
imul rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x68]
lea rax, [rcx + rax*8]
mov ecx, dword [rsp + 0x10]
mov rdx, qword [rsp + 0x40]
imul rdx, rcx
mov rcx, rdx
add rax, rcx
mov rcx, qword [rsp]
mov qword [rcx], rax
mov eax, dword [rsp + 0xc]
imul rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x68]
lea rax, [rcx + rax*8]
mov ecx, dword [rsp + 0x10]
mov rdx, qword [rsp + 0x40]
imul rdx, rcx
mov rcx, rdx
add rax, rcx
mov rcx, qword [rsp + 0x40]
lea rax, [rax + rcx - 1]
mov rcx, qword [rsp]
mov qword [rcx + 8], rax
mov rax, qword [rsp]
mov byte [rax + 0x11], 1
jmp 0x140049733
jmp 0x1400496f8
mov dword [rsp + 0x14], 0
jmp 0x140049833
mov eax, dword [rsp + 0x14]
inc eax
mov dword [rsp + 0x14], eax
cmp dword [rsp + 0x14], 8
jae 0x140049950
mov eax, dword [rsp + 0x14]
add eax, 0x268
mov ecx, eax
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x18], 0
jmp 0x14004986e
mov eax, dword [rsp + 0x18]
inc eax
mov dword [rsp + 0x18], eax
cmp dword [rsp + 0x18], 8
jae 0x14004994b
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x970]
imul rcx, rcx, 0x18
lea rax, [rax + rcx + 0x10]
mov qword [rsp], rax
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x970]
inc eax
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov dword [rcx + 0x970], eax
mov eax, dword [rsp + 0x18]
mov rcx, qword [rsp]
movzx eax, byte [rsp + rax + 0x90]
mov byte [rcx + 0x10], al
mov eax, dword [rsp + 0x14]
imul rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
lea rax, [rcx + rax*8]
mov ecx, dword [rsp + 0x18]
mov rdx, qword [rsp + 0x48]
imul rdx, rcx
mov rcx, rdx
add rax, rcx
mov rcx, qword [rsp]
mov qword [rcx], rax
mov eax, dword [rsp + 0x14]
imul rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
lea rax, [rcx + rax*8]
mov ecx, dword [rsp + 0x18]
mov rdx, qword [rsp + 0x48]
imul rdx, rcx
mov rcx, rdx
add rax, rcx
mov rcx, qword [rsp + 0x48]
lea rax, [rax + rcx - 1]
mov rcx, qword [rsp]
mov qword [rcx + 8], rax
mov rax, qword [rsp]
mov byte [rax + 0x11], 1
jmp 0x140049864
jmp 0x140049829
mov dword [rsp + 0x1c], 0
jmp 0x140049964
mov eax, dword [rsp + 0x1c]
inc eax
mov dword [rsp + 0x1c], eax
movsxd rax, dword [rsp + 0x1c]
mov rcx, qword [rsp + 0x50]
and rcx, 0xff
cmp rax, rcx
jae 0x140049ad4
mov eax, dword [rsp + 0x1c]
lea eax, [rax + rax + 0x200]
mov ecx, eax
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x20], rax
mov eax, dword [rsp + 0x1c]
lea eax, [rax + rax + 0x201]
mov ecx, eax
rdmsr
shl rdx, 0x20
or rax, rdx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
shr rax, 0xb
and rax, 1
test rax, rax
je 0x140049acf
mov rax, qword [rsp + 0x20]
and rax, 0xff
mov rcx, qword [rsp + 0x28]
and rcx, 0xff
cmp rax, rcx
je 0x140049acf
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x970]
imul rcx, rcx, 0x18
lea rax, [rax + rcx + 0x10]
mov qword [rsp], rax
mov rax, qword [0x140098620]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x970]
inc eax
mov rcx, qword [0x140098620]
mov rcx, qword [rcx + 0x10]
mov dword [rcx + 0x970], eax
mov rax, qword [rsp + 0x20]
shr rax, 0xc
movabs rcx, 0xfffffffff
and rax, rcx
shl rax, 0xc
mov rcx, qword [rsp]
mov qword [rcx], rax
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x30]
shr rax, 0xc
movabs rcx, 0xfffffffff
and rax, rcx
shl rax, 0xc
bsf rax, rax
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x3c]
mov ecx, 1
mov qword [rsp + 0x98], rcx
movzx ecx, al
mov rax, qword [rsp + 0x98]
shl rax, cl
mov rcx, qword [rsp]
mov rcx, qword [rcx]
lea rax, [rax + rcx - 1]
mov rcx, qword [rsp]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x20]
and rax, 0xff
mov rcx, qword [rsp]
mov byte [rcx + 0x10], al
mov rax, qword [rsp]
mov byte [rax + 0x11], 0
jmp 0x14004995a
add rsp, 0xa0
pop rdi
ret