Function at 0x1800d2e30
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movzx r9d, byte [rcx]
mov rdi, rdx
mov r10, rcx
lea eax, [r9 - 9]
lea rsi, [0x180000000]
cmp eax, 0x75
ja case.0x1800d2e77.34
cdqe
mov ebx, 1
movzx eax, byte [rsi + rax + 0xd366c]
mov r8d, dword [rsi + rax*4 + 0xd3604]
add r8, rsi
jmp r8
movzx eax, byte [r10 + 1]
inc r10
test byte [rax + rsi + 0x12ae60], bl
je 0x1800d2ea4
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
inc r10
inc ebx
test byte [rax + rsi + 0x12ae60], 1
jne 0x1800d2e90
mov dword [rdx], 0x95
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x2d
jne 0x1800d2efd
mov ecx, 2
add r10, rcx
movzx eax, byte [r10]
test eax, eax
je 0x1800d2ee5
cmp eax, 0xa
je 0x1800d2ee5
movzx eax, byte [r10 + 1]
inc r10
inc ecx
test eax, eax
jne 0x1800d2ed2
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x57
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x16
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x17
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], ebx
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x56
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x58
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x2a
jne 0x1800d2fd6
movzx eax, byte [rcx + 2]
test al, al
je 0x1800d2fd6
mov ecx, 3
movzx eax, al
add r10, rcx
cmp eax, 0x2a
jne 0x1800d2fad
cmp byte [r10], 0x2f
je 0x1800d2fbc
movzx eax, byte [r10]
test eax, eax
je 0x1800d2fbe
inc ecx
inc r10
jmp 0x1800d2fa2
inc ecx
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4c
xor edx, edx
cmp byte [rcx + 1], 0x3d
sete dl
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x1800d304c
mov dword [rdx], 0x4e
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x1800d306c
mov dword [rdx], 0x4b
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3c
jne 0x1800d308c
mov dword [rdx], 0x54
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4f
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x1800d30c8
mov dword [rdx], 0x50
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x1800d30e8
mov dword [rdx], 0x55
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x3d
mov eax, 2
je 0x1800d3124
mov r11d, 0x94
mov dword [rdx], r11d
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4b
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x7c
je 0x1800d3158
mov dword [rdx], 0x53
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 2
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x19
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x52
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx edx, byte [rcx + 1]
inc rcx
test edx, edx
je 0x1800d31f6
add r10, 2
nop word [rax + rax]
cmp edx, r9d
jne 0x1800d31e6
movzx eax, byte [r10]
cmp eax, r9d
jne 0x1800d31f6
inc ebx
inc r10
inc rcx
movzx edx, byte [rcx + 1]
inc rcx
inc ebx
inc r10
test edx, edx
jne 0x1800d31d0
cmp edx, 0x27
jne 0x1800d3214
mov dword [rdi], 0x5e
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
test edx, edx
je 0x1800d3232
mov eax, 0x1a
mov dword [rdi], eax
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov r11d, 0x94
mov eax, ebx
mov dword [rdi], r11d
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
test byte [rax + rsi + 0x12ae60], 4
jne case.0x1800d2e77.24
mov dword [rdx], 0x76
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x81
xor edx, edx
test byte [r9 + rsi + 0x12ae60], 4
je 0x1800d3299
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + rsi + 0x12ae60], 4
jne 0x1800d3286
movsxd rax, edx
cmp byte [rax + r10], 0x2e
jne 0x1800d32d9
inc edx
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rsi + 0x12ae60], 4
je 0x1800d32d3
nop dword [rax + rax]
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + rsi + 0x12ae60], 4
jne 0x1800d32c0
mov dword [rdi], 0x82
movsxd rcx, edx
movzx eax, byte [rcx + r10]
cmp al, 0x65
je 0x1800d32e9
cmp al, 0x45
jne 0x1800d3340
movzx eax, byte [rcx + r10 + 1]
test byte [rax + rsi + 0x12ae60], 4
jne 0x1800d3311
cmp al, 0x2b
je 0x1800d3301
cmp al, 0x2d
jne 0x1800d3340
movzx eax, byte [rcx + r10 + 2]
test byte [rax + rsi + 0x12ae60], 4
je 0x1800d3340
add edx, 2
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rsi + 0x12ae60], 4
je 0x1800d333a
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + rsi + 0x12ae60], 4
jne 0x1800d3327
mov dword [rdi], 0x82
movsxd r8, edx
add r8, r10
movzx eax, byte [r8]
test byte [rax + rsi + 0x12ae60], 0x46
je 0x1800d3371
movzx ecx, byte [r8 + 1]
inc r8
inc edx
test byte [rcx + rsi + 0x12ae60], 0x46
jne 0x1800d3354
mov r11d, 0x94
mov dword [rdi], r11d
mov eax, edx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp r9d, 0x5d
je 0x1800d33a4
inc r10
nop dword [rax]
movzx r9d, byte [r10]
test r9d, r9d
je 0x1800d33a4
inc ebx
inc r10
cmp r9d, 0x5d
jne 0x1800d3390
mov eax, 0x1a
mov r11d, 0x94
cmp r9d, 0x5d
cmove r11d, eax
mov eax, ebx
mov dword [rdx], r11d
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
inc r10
mov dword [rdx], 0x85
test byte [rax + rsi + 0x12ae60], 4
je 0x1800d35f0
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
inc r10
inc ebx
test byte [rax + rsi + 0x12ae60], 4
jne 0x1800d33f0
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
lea r8, [rcx + 1]
mov edx, ebx
test byte [rax + rsi + 0x12ae60], 4
je case.0x1800d2e77.13
nop word [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc edx
test byte [rcx + rsi + 0x12ae60], 4
jne 0x1800d3430
cmp edx, ebx
jle case.0x1800d2e77.13
mov dword [rdi], 0x84
mov eax, edx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx r8d, byte [r10 + 1]
xor edx, edx
mov dword [rdi], 0x85
mov rcx, rbx
mov r11d, 0x94
test r8d, r8d
je 0x1800d3505
nop
movzx eax, r8b
test byte [rax + rsi + 0x12ae60], 0x46
je 0x1800d3492
inc edx
jmp 0x1800d34aa
cmp r8d, 0x28
je 0x1800d34bc
cmp r8d, 0x3a
jne 0x1800d34fd
cmp byte [r10 + rcx + 1], r8b
jne 0x1800d34fd
inc ebx
inc rcx
movzx r8d, byte [rcx + r10 + 1]
inc rcx
inc ebx
test r8d, r8d
jne 0x1800d3480
jmp 0x1800d34fd
test edx, edx
jle 0x1800d34ff
lea r8, [rcx + r10]
nop word [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc ebx
test ecx, ecx
je 0x1800d34f1
test byte [rcx + rsi + 0x12ae60], 1
jne 0x1800d34f1
cmp ecx, 0x29
jne 0x1800d34d0
inc ebx
jmp 0x1800d34fd
cmp ecx, 0x29
jne 0x1800d34fa
inc ebx
jmp 0x1800d34fd
mov dword [rdi], r11d
test edx, edx
jne 0x1800d35f0
mov dword [rdi], r11d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x27
jne case.0x1800d2e77.34
mov ecx, 2
mov dword [rdx], 0x83
mov r11d, 0x94
add r10, rcx
movzx r8d, byte [r10]
test r8d, r8d
je 0x1800d3566
nop dword [rax]
cmp r8d, 0x27
je 0x1800d3566
movzx eax, r8b
test byte [rax + rsi + 0x12ae60], 8
jne 0x1800d3557
mov dword [rdx], r11d
movzx r8d, byte [r10 + 1]
inc r10
inc ecx
test r8d, r8d
jne 0x1800d3540
mov eax, ecx
cdq
and eax, ebx
xor eax, edx
cmp eax, edx
jne 0x1800d3576
test r8d, r8d
jne 0x1800d357e
mov dword [rdi], r11d
test r8d, r8d
je 0x1800d3580
inc ecx
mov eax, ecx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
test byte [r9 + rsi + 0x12ae60], 0x46
jne 0x1800d35bb
mov r11d, 0x94
mov eax, 1
mov dword [rdx], r11d
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
inc rcx
mov ebx, 1
test byte [rax + rsi + 0x12ae60], 0x46
je 0x1800d35e4
movzx eax, byte [rcx + 1]
inc rcx
inc ebx
test byte [rax + rsi + 0x12ae60], 0x46
jne 0x1800d35d1
mov edx, ebx
mov rcx, r10
call fcn.1800d2ce0
mov dword [rdi], eax
mov rsi, qword [rsp + 0x38]
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
shl byte [rcx - 0xd8fffeb], 1
adc byte [rax], al
mov dl, dh
adc byte [rax], al
shl byte [rcx - 0xd6fffeb], 1
adc byte [rax], al
test eax, 0xd00010f2
movabs eax, dword [0xf2cd0010f2b00015]
adc byte [rax], al
shl byte [rcx - 0xd2fffeb], 1
adc byte [rax], al
in eax, dx
adc byte [rax], al
shl byte [rcx - 0xd0fffeb], 1
adc byte [rax], al
or ebx, esi
adc byte [rax], al
shl byte [rcx - 0xcefffeb], 1
adc byte [rax], al
sub eax, 0xd00010f3
movabs eax, dword [0xf34d0010f3300015]
adc byte [rax], al
shl byte [rcx - 0xcafffeb], 1
adc byte [rax], al
push 0xffffffffd00010f3
movabs eax, dword [0xf3890010f3700015]
adc byte [rax], al
shl byte [rcx - 0xc6fffeb], 1
adc byte [rax], al
lodsd eax, dword [rsi]
adc byte [rax], al
shl byte [rcx - 0xc4fffeb], 1
adc byte [rax], al
int 0xf3
adc byte [rax], al
shl byte [rcx - 0xc2fffeb], 1
adc byte [rax], al
call 0x150191184
movabs eax, dword [0xf4080010f3f00015]
adc byte [rax], al
shl byte [rcx - 0xbefffeb], 1
adc byte [rax], al
sub ah, dh
adc byte [rax], al
shl byte [rcx - 0xbcfffeb], 1
adc byte [rax], al
hlt