Function at 0x14013d820
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
movzx r9d, byte [rcx]
mov rdi, rdx
mov r10, rcx
lea eax, [r9 - 9]
lea r11, [0x140000000]
cmp eax, 0x75
ja case.0x14013d863.34
cdqe
mov ebx, 1
movzx eax, byte [r11 + rax + 0x13dfdc]
mov r8d, dword [r11 + rax*4 + 0x13df74]
add r8, r11
jmp r8
movzx eax, byte [r10 + 1]
inc r10
test byte [rax + r11 + 0x333160], bl
je 0x14013d895
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
inc r10
inc ebx
test byte [rax + r11 + 0x333160], 1
jne 0x14013d880
mov dword [rdx], 0x95
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x2d
jne 0x14013d8e6
mov edx, 2
add r10, rdx
movzx eax, byte [r10]
test eax, eax
je 0x14013d8d3
nop
cmp eax, 0xa
je 0x14013d8d3
movzx eax, byte [r10 + 1]
inc r10
inc edx
test eax, eax
jne 0x14013d8c0
mov dword [rdi], 0x95
mov eax, edx
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 [rcx + 1], 0x2a
jne 0x14013d99f
movzx eax, byte [rcx + 2]
test al, al
je 0x14013d99f
mov ecx, 3
movzx eax, al
add r10, rcx
nop dword [rax]
cmp eax, 0x2a
jne 0x14013d97b
cmp byte [r10], 0x2f
je 0x14013d98a
movzx eax, byte [r10]
test eax, eax
je 0x14013d98c
inc ecx
inc r10
jmp 0x14013d970
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 [rcx + 1], 0x3d
sete dl
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x14013da01
mov dword [rdx], 0x4e
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x14013da1c
mov dword [rdx], 0x4b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3c
jne 0x14013da37
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 [rcx + 1]
cmp eax, 0x3d
jne 0x14013da69
mov dword [rdx], 0x50
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x14013da84
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 [rcx + 1], 0x3d
mov eax, 2
je 0x14013dab6
mov r8d, 0x94
mov dword [rdx], r8d
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 [rcx + 1], 0x7c
je 0x14013dae0
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 edx, byte [rcx + 1]
inc rcx
test edx, edx
je 0x14013db66
add r10, 2
nop
cmp edx, r9d
jne 0x14013db56
movzx eax, byte [r10]
cmp eax, r9d
jne 0x14013db66
inc ebx
inc r10
inc rcx
movzx edx, byte [rcx + 1]
inc rcx
inc ebx
inc r10
test edx, edx
jne 0x14013db40
cmp edx, 0x27
jne 0x14013db7f
mov dword [rdi], 0x5e
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test edx, edx
je 0x14013db98
mov eax, 0x1a
mov dword [rdi], eax
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov r8d, 0x94
mov eax, ebx
mov dword [rdi], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
test byte [rax + r11 + 0x333160], 4
jne case.0x14013d863.24
mov dword [rdx], 0x76
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x81
xor edx, edx
test byte [r9 + r11 + 0x333160], 4
je 0x14013dbf7
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x333160], 4
jne 0x14013dbe3
movsxd rax, edx
cmp byte [rax + r10], 0x2e
jne 0x14013dc31
inc edx
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + r11 + 0x333160], 4
je 0x14013dc2b
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x333160], 4
jne 0x14013dc17
mov dword [rdi], 0x82
movsxd rcx, edx
movzx eax, byte [rcx + r10]
cmp al, 0x65
je 0x14013dc41
cmp al, 0x45
jne 0x14013dc9c
movzx eax, byte [rcx + r10 + 1]
test byte [rax + r11 + 0x333160], 4
jne 0x14013dc6b
cmp al, 0x2b
je 0x14013dc5a
cmp al, 0x2d
jne 0x14013dc9c
movzx eax, byte [rcx + r10 + 2]
test byte [rax + r11 + 0x333160], 4
je 0x14013dc9c
add edx, 2
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + r11 + 0x333160], 4
je 0x14013dc96
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x333160], 4
jne 0x14013dc82
mov dword [rdi], 0x82
movsxd r9, edx
add r9, r10
movzx eax, byte [r9]
test byte [rax + r11 + 0x333160], 0x46
je 0x14013dcd8
mov r8d, 0x94
nop word [rax + rax]
movzx ecx, byte [r9 + 1]
inc r9
inc edx
test byte [rcx + r11 + 0x333160], 0x46
mov dword [rdi], r8d
jne 0x14013dcc0
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp r9d, 0x5d
je 0x14013dd04
inc r10
nop
movzx r9d, byte [r10]
test r9d, r9d
je 0x14013dd04
inc ebx
inc r10
cmp r9d, 0x5d
jne 0x14013dcf0
mov eax, 0x1a
mov r8d, 0x94
cmp r9d, 0x5d
cmove r8d, eax
mov eax, ebx
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
inc r10
mov dword [rdx], 0x85
test byte [rax + r11 + 0x333160], 4
je 0x14013df65
movzx eax, byte [r10 + 1]
inc r10
inc ebx
test byte [rax + r11 + 0x333160], 4
jne 0x14013dd44
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
lea r8, [rcx + 1]
mov edx, ebx
test byte [rax + r11 + 0x333160], 4
je case.0x14013d863.13
nop dword [rax + rax]
movzx ecx, byte [r8 + 1]
inc r8
inc edx
test byte [rcx + r11 + 0x333160], 4
jne 0x14013dd80
cmp edx, ebx
jle case.0x14013d863.13
mov dword [rdi], 0x84
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx r9d, byte [r10 + 1]
xor edx, edx
mov dword [rdi], 0x85
mov rcx, rbx
mov r8d, 0x94
test r9d, r9d
je 0x14013de56
nop dword [rax + rax]
movzx eax, r9b
test byte [rax + r11 + 0x333160], 0x46
je 0x14013dde3
inc edx
jmp 0x14013ddfb
cmp r9d, 0x28
je 0x14013de0d
cmp r9d, 0x3a
jne 0x14013de4e
cmp byte [r10 + rcx + 1], r9b
jne 0x14013de4e
inc ebx
inc rcx
movzx r9d, byte [rcx + r10 + 1]
inc rcx
inc ebx
test r9d, r9d
jne 0x14013ddd0
jmp 0x14013de4e
test edx, edx
jle 0x14013de50
lea r9, [rcx + r10]
nop word [rax + rax]
movzx ecx, byte [r9 + 1]
inc r9
inc ebx
test ecx, ecx
je 0x14013de42
test byte [rcx + r11 + 0x333160], 1
jne 0x14013de42
cmp ecx, 0x29
jne 0x14013de20
inc ebx
jmp 0x14013de4e
cmp ecx, 0x29
jne 0x14013de4b
inc ebx
jmp 0x14013de4e
mov dword [rdi], r8d
test edx, edx
jne 0x14013df65
mov dword [rdi], r8d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x27
jne case.0x14013d863.34
mov dword [rdx], 0x83
mov edx, 2
add rcx, rdx
movzx eax, byte [rcx]
test byte [rax + r11 + 0x333160], 8
je 0x14013dea4
nop dword [rax]
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test byte [rax + r11 + 0x333160], 8
jne 0x14013de90
movsxd rax, edx
lea rcx, [rax + r10]
movzx r9d, byte [rcx]
cmp r9b, 0x27
jne 0x14013dec9
mov eax, edx
and eax, 0x80000001
jge 0x14013dec5
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x14013def1
mov r8d, 0x94
mov dword [rdi], r8d
test r9b, r9b
je 0x14013def1
movzx eax, byte [rcx]
nop word [rax + rax]
cmp al, 0x27
je 0x14013def1
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test al, al
jne 0x14013dee0
movsxd rcx, edx
cmp byte [rcx + r10], 0
je 0x14013defd
inc edx
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test byte [r9 + r11 + 0x333160], 0x46
jne 0x14013df2e
mov r8d, 0x94
mov eax, 1
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
inc rcx
mov ebx, 1
test byte [rax + r11 + 0x333160], 0x46
je 0x14013df59
movzx eax, byte [rcx + 1]
inc rcx
inc ebx
test byte [rax + r11 + 0x333160], 0x46
jne 0x14013df45
mov edx, ebx
mov rcx, r10
call fcn.140138400
mov dword [rdi], eax
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test rcx, rcx
cmovne rsi, rcx
mov byte [rsi + 0x169], 1
movsxd rdi, dword [r13 + 0x34]
movzx esi, byte [r14 + 0x2c]
cmp dword [r13 + 0x38], edi
jg 0x140190029
mov rcx, r13
call fcn.14014b500
test eax, eax
jne 0x140190053
inc dword [r13 + 0x34]
mov rax, qword [r13 + 8]
lea rdx, [rdi + rdi*2]
xor ecx, ecx
mov byte [rax + rdx*8 + 3], 0
mov dword [rax + rdx*8 + 4], esi
mov dword [rax + rdx*8 + 8], ebp
mov word [rax + rdx*8], VarBstrFromCy
mov dword [rax + rdx*8 + 0xc], ecx
mov qword [rax + rdx*8 + 0x10], rcx
test rbx, rbx
je 0x140190060
mov rcx, rbx
call fcn.1401519e0
mov rdx, r12
mov rcx, r15
call fcn.140148630
movsxd rax, dword [rsp + 0xd0]
test eax, eax
je 0x14019008b
mov edx, dword [r13 + 0x34]
cmp edx, eax
jle 0x14019008b
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 8]
mov dword [rax + rcx*8 + 8], edx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret