Function at 0x1800af880
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov r9, rcx
movzx ecx, byte [rcx]
mov rdi, rdx
lea eax, [rcx - 9]
lea r11, [0x180000000]
cmp eax, 0x75
ja case.0x1800af8c1.34
cdqe
mov ebx, 1
movzx eax, byte [r11 + rax + 0xb0028]
mov r8d, dword [r11 + rax*4 + 0xaffc0]
add r8, r11
jmp r8
movzx eax, byte [r9 + 1]
inc r9
test byte [rax + r11 + 0x18aca0], bl
je 0x1800af8eb
movzx eax, byte [r9 + 1]
inc r9
inc ebx
test byte [rax + r11 + 0x18aca0], 1
jne 0x1800af8d6
mov dword [rdx], 0x95
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x2d
jne 0x1800af93b
mov ecx, 2
add r9, rcx
movzx eax, byte [r9]
test eax, eax
je 0x1800af928
cmp eax, 0xa
je 0x1800af928
movzx eax, byte [r9 + 1]
inc r9
inc ecx
test eax, eax
jne 0x1800af915
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x57
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x16
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x17
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], ebx
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x56
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x58
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x2a
jne 0x1800af9f3
movzx eax, byte [r9 + 2]
test al, al
je 0x1800af9f3
mov ecx, 3
movzx eax, al
add r9, rcx
cmp eax, 0x2a
jne 0x1800af9cf
cmp byte [r9], 0x2f
je 0x1800af9de
movzx eax, byte [r9]
test eax, eax
je 0x1800af9e0
inc ecx
inc r9
jmp 0x1800af9c4
inc ecx
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4c
xor edx, edx
cmp byte [r9 + 1], 0x3d
sete dl
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
cmp eax, 0x3d
jne 0x1800afa57
mov dword [rdx], 0x4e
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x1800afa72
mov dword [rdx], 0x4b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3c
jne 0x1800afa8d
mov dword [rdx], 0x54
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4f
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
cmp eax, 0x3d
jne 0x1800afac0
mov dword [rdx], 0x50
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x1800afadb
mov dword [rdx], 0x55
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x3d
mov eax, 2
je 0x1800afb0e
mov r10d, 0x94
mov dword [rdx], r10d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4b
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x7c
je 0x1800afb39
mov dword [rdx], 0x53
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x19
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x52
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx r8d, byte [r9 + 1]
lea rdx, [r9 + 1]
test r8d, r8d
je 0x1800afbc7
add r9, 2
nop word [rax + rax]
cmp r8d, ecx
jne 0x1800afbb5
movzx eax, byte [r9]
cmp eax, ecx
jne 0x1800afbc7
inc ebx
inc r9
inc rdx
movzx r8d, byte [rdx + 1]
inc rdx
inc ebx
inc r9
test r8d, r8d
jne 0x1800afba0
cmp r8d, 0x27
jne 0x1800afbe1
mov dword [rdi], 0x5e
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test r8d, r8d
je 0x1800afbfb
mov eax, 0x1a
mov dword [rdi], eax
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov r10d, 0x94
mov eax, ebx
mov dword [rdi], r10d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
test byte [rax + r11 + 0x18aca0], 4
jne case.0x1800af8c1.24
mov dword [rdx], 0x76
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x81
movzx eax, byte [r9]
xor edx, edx
test byte [rax + r11 + 0x18aca0], 4
je 0x1800afc64
mov rcx, r9
nop
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x18aca0], 4
jne 0x1800afc50
movsxd rax, edx
cmp byte [rax + r9], 0x2e
jne 0x1800afc9e
inc edx
movsxd rcx, edx
add rcx, r9
movzx eax, byte [rcx]
test byte [rax + r11 + 0x18aca0], 4
je 0x1800afc98
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x18aca0], 4
jne 0x1800afc84
mov dword [rdi], 0x82
movsxd rcx, edx
movzx eax, byte [rcx + r9]
cmp al, 0x65
je 0x1800afcae
cmp al, 0x45
jne 0x1800afd0a
movzx eax, byte [rcx + r9 + 1]
test byte [rax + r11 + 0x18aca0], 4
jne 0x1800afcd8
cmp al, 0x2b
je 0x1800afcc7
cmp al, 0x2d
jne 0x1800afd0a
movzx eax, byte [rcx + r9 + 2]
test byte [rax + r11 + 0x18aca0], 4
je 0x1800afd0a
add edx, 2
movsxd rcx, edx
add rcx, r9
movzx eax, byte [rcx]
test byte [rax + r11 + 0x18aca0], 4
je 0x1800afd04
nop
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x18aca0], 4
jne 0x1800afcf0
mov dword [rdi], 0x82
movsxd r8, edx
add r8, r9
movzx eax, byte [r8]
test byte [rax + r11 + 0x18aca0], 0x46
je 0x1800afd47
mov r10d, 0x94
nop word [rax + rax]
inc r8
mov dword [rdi], r10d
inc edx
movzx ecx, byte [r8]
test byte [rcx + r11 + 0x18aca0], 0x46
jne 0x1800afd30
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp ecx, 0x5d
je 0x1800afd72
inc r9
nop dword [rax]
movzx ecx, byte [r9]
test ecx, ecx
je 0x1800afd72
inc ebx
inc r9
cmp ecx, 0x5d
jne 0x1800afd60
mov eax, 0x1a
mov r10d, 0x94
cmp ecx, 0x5d
cmove r10d, eax
mov eax, ebx
mov dword [rdx], r10d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
inc r9
mov dword [rdx], 0x85
movzx eax, byte [r9]
test byte [rax + r11 + 0x18aca0], 4
je 0x1800affb0
movzx eax, byte [r9 + 1]
inc r9
inc ebx
test byte [rax + r11 + 0x18aca0], 4
jne 0x1800afdb0
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
lea r8, [r9 + 1]
mov edx, ebx
test byte [rax + r11 + 0x18aca0], 4
je case.0x1800af8c1.13
nop dword [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc edx
test byte [rcx + r11 + 0x18aca0], 4
jne 0x1800afdf0
cmp edx, ebx
jle case.0x1800af8c1.13
mov dword [rdi], 0x84
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdi], 0x85
movzx r8d, byte [r9 + 1]
xor edx, edx
mov rcx, rbx
mov r10d, 0x94
test r8d, r8d
je 0x1800afec6
nop dword [rax + rax]
movzx eax, r8b
test byte [rax + r11 + 0x18aca0], 0x46
je 0x1800afe53
inc edx
jmp 0x1800afe6b
cmp r8d, 0x28
je 0x1800afe7d
cmp r8d, 0x3a
jne 0x1800afebe
cmp byte [r9 + rcx + 1], r8b
jne 0x1800afebe
inc ebx
inc rcx
movzx r8d, byte [rcx + r9 + 1]
inc rcx
inc ebx
test r8d, r8d
jne 0x1800afe40
jmp 0x1800afebe
test edx, edx
jle 0x1800afec0
lea r8, [rcx + r9]
nop word [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc ebx
test ecx, ecx
je 0x1800afeb2
test byte [rcx + r11 + 0x18aca0], 1
jne 0x1800afeb2
cmp ecx, 0x29
jne 0x1800afe90
inc ebx
jmp 0x1800afebe
cmp ecx, 0x29
jne 0x1800afebb
inc ebx
jmp 0x1800afebe
mov dword [rdi], r10d
test edx, edx
jne 0x1800affb0
mov dword [rdi], r10d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [r9 + 1], 0x27
jne case.0x1800af8c1.34
mov ecx, 2
mov dword [rdx], 0x83
mov r10d, 0x94
add r9, rcx
movzx r8d, byte [r9]
test r8d, r8d
je 0x1800aff27
nop word [rax + rax]
cmp r8d, 0x27
je 0x1800aff27
movzx eax, r8b
test byte [rax + r11 + 0x18aca0], 8
jne 0x1800aff18
mov dword [rdx], r10d
movzx r8d, byte [r9 + 1]
inc r9
inc ecx
test r8d, r8d
jne 0x1800aff00
mov eax, ecx
cdq
and eax, ebx
xor eax, edx
cmp eax, edx
jne 0x1800aff37
test r8d, r8d
jne 0x1800aff3f
mov dword [rdi], r10d
test r8d, r8d
je 0x1800aff41
inc ecx
mov eax, ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test byte [rcx + r11 + 0x18aca0], 0x46
jne 0x1800aff72
mov r10d, 0x94
mov eax, 1
mov dword [rdx], r10d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r9 + 1]
lea rcx, [r9 + 1]
mov ebx, 1
test byte [rax + r11 + 0x18aca0], 0x46
je 0x1800affa4
nop dword [rax + rax]
movzx eax, byte [rcx + 1]
inc rcx
inc ebx
test byte [rax + r11 + 0x18aca0], 0x46
jne 0x1800aff90
mov edx, ebx
mov rcx, r9
call fcn.1800af730
mov dword [rdi], eax
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
invalid