Function at 0x180015620
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x308
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0x98], 0
mov dword [rsp + 0xc8], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0xd8], 0
mov dword [rsp + 0x6c], 0
mov dword [rsp + 0x94], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0x90], 0
xor eax, eax
mov word [rsp + 0x38], ax
xor eax, eax
mov word [rsp + 0x40], ax
xor eax, eax
mov word [rsp + 0x34], ax
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0x68], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x310]
call qword [0x18001ad38]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
jne 0x180015758
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa8], rax
jp 0x180015791
push rdx
push rax
pop rax
pop rdx
jnp 0x180015791
out 0xfa, eax
leave
invalid
mov rax, qword [rsp + 0xa8]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x1800157ad
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0xa8]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0xa8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xb8], rax
jno 0x1800157fb
push rbx
push rsi
push rdx
nop
pop rdx
pop rsi
pop rbx
jo 0x1800157fb
and ah, 0x3e
invalid
mov rax, qword [rsp + 0xb8]
cmp dword [rax], 0x4550
je 0x180015815
mov eax, 1
jmp 0x1800161d8
mov r8d, 0x200
xor edx, edx
lea rcx, [rsp + 0x100]
call qword [0x18001ace8]
mov r8d, 0x1ff
lea rdx, [rsp + 0x100]
mov rcx, qword [rsp + 0x58]
call qword [0x18001ad60]
test eax, eax
jne 0x180015852
mov eax, 1
jmp 0x1800161d8
xor edx, edx
lea rcx, [rsp + 0x100]
call fcn.180005a40
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
jne 0x180015878
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xb0], rax
jne 0x1800158b1
push rbx
push rbp
push rax
push rcx
pop rcx
pop rax
pop rbp
pop rbx
je 0x1800158b1
in al, 0xf4
cli
imul ecx, ecx, 0xe69a8ce4
out 0xe4, eax
imul esp, edi, 0x2dd8cdd
in al, 0x71
in al, 0xe4
invalid
mov rax, qword [rsp + 0xb0]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x1800158e0
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0xb0]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0xb0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
jb 0x18001592b
push rdx
push rbp
push rdx
nop
pop rdx
pop rbp
pop rdx
jae 0x18001592b
leave
cli
enter 0x2c9, 0x3e
enter 0xfffffffffffff4e4, 0xffffffffffffffe6
out 0x3e, al
cmpsb byte [rsi], byte [rdi]
fstp st(5)
cmpsb byte [rsi], byte [rdi]
jno 0x18001598e
in al, 0xe6
out 0x71, eax
add cl, al
in al, 0xfa
fucom st(7)
add bh, dl
mov eax, cs
mov rax, qword [rsp + 0x70]
cmp dword [rax], 0x4550
je 0x180015955
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov dword [rsp + 0x50], 0
jmp 0x180015969
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 6]
cmp dword [rsp + 0x50], eax
jae 0x180015bb1
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x14]
mov rcx, qword [rsp + 0x70]
lea rax, [rcx + rax + 0x18]
mov ecx, dword [rsp + 0x50]
imul rcx, rcx, 0x28
sbb byte [rbx + 0x4850244c], cl
imul ecx, ecx, 0x28
add rax, rcx
mov qword [rsp + 0x98], rax
jp 0x1800159ce
push rsp
push rcx
pop rcx
pop rsp
jnp 0x1800159ce
cli
out 0xfa, eax
in al, 0x71
fstp qword [rdx - 0x590b1b23]
imul esp, dword [rsi - 0x7ffd651a], 0xe4f4c93e
out 0xc8, al
leave
hlt
mov r8d, 0x10
xor edx, edx
lea rcx, [rsp + 0xe8]
call qword [0x18001ace8]
jge 0x180015a10
push rsi
nop
pop rsi
jl 0x180015a10
in al, 0x3e
invalid
mov rax, qword [rsp + 0x98]
mov r8d, 8
mov rdx, rax
lea rcx, [rsp + 0xe8]
call qword [0x18001ad78]
jle 0x180015a5b
push rsp
nop
pop rsp
jg 0x180015a5b
leave
add dh, byte [rcx - 0x74]
out 0xe4, al
add cl, byte [rcx + rcx*8 - 0x37193774]
enter 0xffffffffffffe78c, 0xffffffffffffffc8
invalid
jp 0x180015a87
push rsi
nop
pop rsi
jnp 0x180015a87
and ah, 0x71
out 0x8c, al
mov word [rax + 0x693ee7f4], es
invalid
lea rdx, [0x18001af60]
lea rcx, [rsp + 0xe8]
call qword [0x18001b028]
test eax, eax
jne 0x180015bac
mov dword [rsp + 0xc8], 1
jae 0x180015adb
push rcx
push rbx
nop
pop rbx
pop rcx
jb 0x180015adb
cli
and byte [rsi - 0xb7f0b97], 0xc9
enter 0xffffffffffffc9f4, 0x69
in al, 0xc9
add bh, byte [rsi]
out 0xfa, al
imul edi, dword [rsi], 0xa6c9dd02
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0xc]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
jnp 0x180015b25
push rsp
push rbx
push rsp
pop rsp
pop rbx
pop rsp
jp 0x180015b25
out 0x71, al
out 0xe4, al
in al, 0xfa
cmpsb byte [rsi], byte [rdi]
leave
jno 0x180015af1
cmpsb byte [rsi], byte [rdi]
cli
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0x14]
mov rcx, qword [rsp + 0x48]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xd8], rax
ja 0x180015b6f
push rsi
push rsp
pop rsp
pop rsi
jbe 0x180015b6f
hlt
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x6c], eax
jl 0x180015baa
jge 0x180015baa
cli
out 0xfa, al
leave
in al, 0x8c
imul ebp, dword [rcx - 0x38], 0xc8e780e6
cmpsb byte [rsi], byte [rdi]
enter 0xfffffffffffffae6, 0x3e
out 0x71, eax
hlt
jmp 0x180015bb1
jmp 0x18001595f
cmp qword [rsp + 0x88], 0
jne 0x180015bd9
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x30]
cmp qword [rsp + 0x58], rax
je 0x18001603a
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x30]
mov rcx, qword [rsp + 0x58]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xd0], rax
mov eax, 8
imul rax, rax, 5
mov rcx, qword [rsp + 0xb8]
cmp dword [rcx + rax + 0x8c], 0
je 0x18001603a
mov eax, 8
imul rax, rax, 5
mov rcx, qword [rsp + 0xb8]
mov eax, dword [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x68]
add rax, rcx
mov qword [rsp + 0x80], rax
jbe 0x180015c86
push rdi
push rsi
nop
pop rsi
pop rdi
ja 0x180015c86
hlt
mov rax, qword [rsp + 0x80]
cmp dword [rax], 0
jne 0x180015c98
jmp 0x18001603a
jb 0x180015cc4
push rcx
push rcx
push rcx
nop
pop rcx
pop rcx
pop rcx
jae 0x180015cc4
enter 0xffffffffffffdd69, 0x71
jno 0x180015ca3
fstp qword [rdx + 0x2029ae6]
cmpsb byte [rsi], byte [rdi]
cli
mov word [rsi - 0x73058e80], fs
imul esi, dword [rcx - 0x5a], 0xc9a671fa
xor ah, 0xf4
invalid
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xe0], rax
jo 0x180015d0d
nop
jno 0x180015d0d
cmpsb byte [rsi], byte [rdi]
invalid
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 4]
sub rax, 8
xor edx, edx
mov ecx, 2
div rcx
mov dword [rsp + 0x90], eax
jg 0x180015d59
jle 0x180015d59
fnstsw word [rsi]
invalid
mov dword [rsp + 0x54], 0
jmp 0x180015d6d
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x90]
cmp dword [rsp + 0x54], eax
jae 0x180015fc6
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x80]
movzx eax, word [rcx + rax*2 + 8]
mov word [rsp + 0x38], ax
je 0x180015dc0
jne 0x180015dc0
in al, 0xe7
out 0x69, eax
leave
invalid
movzx eax, word [rsp + 0x38]
and eax, 0xfff
mov word [rsp + 0x40], ax
jo 0x180015dfb
push rsi
pop rsi
jno 0x180015dfb
leave
imul esp, esp, 0xfaa63ec9
in al, 0xdd
leave
enter 0xfffffffffffff4c9, 0xffffffffffffffe4
hlt
movzx eax, word [rsp + 0x38]
cdq
and edx, 0xfff
add eax, edx
sar eax, 0xc
mov word [rsp + 0x34], ax
jns 0x180015e3d
push rbp
push rdi
push rdi
pop rdi
pop rdi
pop rbp
js 0x180015e3d
leave
out 2, eax
leave
sub byte [rcx - 0x80], 0xe7
in al, 0xe7
fld qword [rax - 0x73220bc2]
hlt
movzx eax, word [rsp + 0x40]
mov rcx, qword [rsp + 0xe0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0xc0], rax
jb 0x180015fc1
mov eax, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x88]
add rcx, rax
mov rax, rcx
cmp qword [rsp + 0xc0], rax
jae 0x180015fc1
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
movzx eax, word [rsp + 0x34]
test eax, eax
je 0x180015fc1
movzx eax, word [rsp + 0x34]
cmp eax, 3
jne 0x180015f28
jno 0x180015f0e
push rsp
nop
pop rsp
jo 0x180015f0e
cmpsb byte [rsi], byte [rdi]
invalid
mov rax, qword [rsp + 0x60]
mov eax, dword [rax]
add eax, dword [rsp + 0xd0]
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
jmp 0x180015fc1
movzx eax, word [rsp + 0x34]
cmp eax, 0xa
jne 0x180015f78
jbe 0x180015f5e
push rdx
push rdi
push rcx
pop rcx
pop rdi
pop rdx
ja 0x180015f5e
frstor dword [rsi + 0x693e7171]
out 0xc8, al
in al, 0x80
sub byte [rcx - 0x1c], 2
invalid
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
add rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x60]
mov qword [rcx], rax
jmp 0x180015fc1
jns 0x180015fa4
push rbx
push rbp
push rsi
nop
pop rsi
pop rbp
pop rbx
js 0x180015fa4
out 0xdd, eax
invalid
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
jmp 0x180015d63
jl 0x180015ff2
push rsp
pop rsp
jge 0x180015ff2
cli
sbb byte [rdx - 0x59fd8e80], 0x8c
hlt
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 4]
mov ecx, dword [rsp + 0x68]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x68], eax
jno 0x180016035
push rsp
nop
pop rsp
jo 0x180016035
cmpsb byte [rsi], byte [rdi]
or al, 0x9a
imul ecx, eax, 0xe4c88c9a
cmp dl, 0xc9
invalid
jmp 0x180015c28
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xa0], rax
cmp dword [rsp + 0x3c], 0
jne 0x18001606b
jmp 0x1800161c3
mov dword [rsp + 0x30], 0x1000
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x3c], eax
jae 0x180016085
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov r8d, eax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
call qword [0x18001ad68]
test eax, eax
je 0x180016180
call qword [0x18001ad40]
lea rcx, [rsp + 0x94]
mov qword [rsp + 0x20], rcx
mov r9d, 0x40
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call fcn.1800026e0
test eax, eax
je 0x1800160f3
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov eax, dword [rsp + 0x30]
mov r8d, eax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
call qword [0x18001ad78]
jbe 0x180016139
push rax
push rsi
nop
pop rsi
pop rax
ja 0x180016139
cmpsb byte [rsi], byte [rdi]
cli
invalid
call qword [0x18001ad40]
mov qword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x94]
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call fcn.1800026e0
test eax, eax
je 0x180016180
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
jmp 0x18001605f
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
xor eax, eax
add rsp, 0x308
ret