Function at 0x140004fc0
Capabilities:
Parse pe header

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rax, qword [rcx + 0x18]
mov rbp, rdx
movzx edx, byte [rax]
mov rbx, rcx
mov r12, r8
cmp dl, 0x57
je 0x140005052
jmp 0x1400053c3
mov rcx, rbx
call sym.d_source_name
mov ecx, 0x53
test rax, rax
je 0x140005080
mov edx, dword [rbx + 0x28]
cmp edx, dword [rbx + 0x2c]
jge 0x140005080
movsxd rsi, edx
add edx, 1
shl rsi, 5
add rsi, qword [rbx + 0x20]
mov qword [rsi + 4], 0
mov dword [rbx + 0x28], edx
mov edx, dword [rbx + 0x38]
mov dword [rsi], ecx
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], rax
cmp edx, dword [rbx + 0x3c]
jge 0x140005080
mov rax, qword [rbx + 0x30]
movsxd rcx, edx
add edx, 1
mov qword [rax + rcx*8], rsi
mov rax, qword [rbx + 0x18]
mov dword [rbx + 0x38], edx
cmp byte [rax], 0x57
jne 0x140005098
mov r12, rsi
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x50
jne 0x140004ff0
add rax, 2
mov rcx, rbx
mov qword [rbx + 0x18], rax
call sym.d_source_name
mov ecx, 0x54
test rax, rax
jne 0x140005002
nop word [rax + rax]
xor edi, edi
mov rax, rdi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
movzx edx, byte [rax]
lea ecx, [rdx - 0x30]
cmp cl, 9
jbe 0x1400051f0
lea ecx, [rdx - 0x61]
cmp cl, 0x19
ja 0x140005138
mov r12d, dword [rbx + 0x4c]
cmp dl, 0x6f
je 0x14000524d
mov rcx, rbx
call dbg.d_operator_name
mov dword [rbx + 0x4c], r12d
mov rdi, rax
test rax, rax
je case.0x1400052b0.3
cmp dword [rax], 0x32
jne 0x1400051fb
mov rax, qword [rax + 0x10]
mov ecx, dword [rbx + 0x48]
mov edx, dword [rax + 0x10]
mov rax, qword [rax]
lea edx, [rcx + rdx + 7]
mov dword [rbx + 0x48], edx
cmp byte [rax], 0x6c
jne 0x1400051fb
cmp byte [rax + 1], 0x69
jne 0x1400051fb
cmp byte [rax + 2], 0
jne 0x1400051fb
mov rcx, rbx
call sym.d_source_name
mov r8, rdi
mov edx, 0x37
mov rcx, rbx
mov r9, rax
call sym.d_make_comp
mov rdi, rax
jmp 0x1400051fb
cmp dl, 0x44
je 0x14000526b
lea ecx, [rdx - 0x43]
cmp cl, 1
jbe 0x140005425
cmp dl, 0x4c
je 0x140005390
cmp dl, 0x55
jne 0x140005080
movzx edx, byte [rax + 1]
cmp dl, 0x6c
je 0x1400054bb
cmp dl, 0x74
jne 0x140005080
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x74
jne case.0x1400052b0.3
add rax, 2
mov rcx, rbx
mov qword [rbx + 0x18], rax
call sym.d_compact_number
mov edx, eax
test eax, eax
js case.0x1400052b0.3
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400052b0.3
movsxd rdi, eax
add eax, 1
shl rdi, 5
add rdi, qword [rbx + 0x20]
mov qword [rdi + 4], 0
mov dword [rbx + 0x28], eax
mov eax, dword [rbx + 0x38]
mov dword [rdi], 0x49
mov dword [rdi + 0x10], edx
cmp eax, dword [rbx + 0x3c]
jge case.0x1400052b0.3
mov rdx, qword [rbx + 0x30]
movsxd rcx, eax
add eax, 1
mov qword [rdx + rcx*8], rdi
mov dword [rbx + 0x38], eax
jmp 0x1400051fb
mov rcx, rbx
call sym.d_source_name
mov rdi, rax
test rsi, rsi
je 0x140005216
mov r8, rdi
mov r9, rsi
mov edx, 0x55
mov rcx, rbx
call sym.d_make_comp
mov rdi, rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x42
je 0x1400052e0
test rbp, rbp
je 0x140005082
mov r9, rdi
mov r8, rbp
mov edx, 1
mov rcx, rbx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.d_make_comp
cmp byte [rax + 1], 0x6e
jne 0x1400050c0
add rax, 2
mov dword [rbx + 0x4c], 0
mov qword [rbx + 0x18], rax
jmp 0x1400050c0
movzx edx, byte [rax + 1]
cmp dl, 0x43
je 0x1400053cb
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x140005297
mov r8d, dword [rcx]
test r8d, r8d
je 0x140005439
cmp r8d, 0x18
je 0x140005439
sub edx, 0x30
cmp dl, 5
ja case.0x1400052b0.3
lea r8, [0x14003ab9c]
movzx edx, dl
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
mov rcx, rbx
call dbg.d_parmlist
mov r12, rax
test rax, rax
jne 0x1400055d1
nop word cs:[rax + rax]
xor edi, edi
jmp 0x1400051fb
mov rsi, qword [rbx + 0x40]
nop dword [rax]
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call sym.d_source_name
mov r8, rdi
mov edx, 0x4d
mov rcx, rbx
mov r9, rax
call sym.d_make_comp
mov rdi, rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x42
je 0x1400052e8
mov qword [rbx + 0x40], rsi
jmp 0x140005223
mov edx, 5
add rax, 2
mov qword [rbx + 0x18], rax
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400052b0.3
movsxd rdi, eax
add eax, 1
shl rdi, 5
add rdi, qword [rbx + 0x20]
mov qword [rdi + 4], 0
mov dword [rbx + 0x28], eax
test rcx, rcx
je case.0x1400052b0.3
mov qword [rdi + 4], 0
mov dword [rdi], 8
mov dword [rdi + 0x10], edx
mov qword [rdi + 0x18], rcx
jmp 0x1400051fb
mov edx, 4
jmp 0x140005325
mov edx, 3
jmp 0x140005325
mov edx, 2
jmp 0x140005325
mov edx, 1
jmp 0x140005325
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call sym.d_source_name
mov rdi, rax
test rax, rax
je 0x140005080
mov rcx, rbx
call dbg.d_discriminator
test eax, eax
jne 0x1400051fb
xor edi, edi
jmp 0x140005082
mov rsi, r8
jmp 0x14000509b
add rax, 2
xor r12d, r12d
mov qword [rbx + 0x18], rax
jmp 0x1400053fa
mov qword [r11 + 0x18], rax
test r12, r12
je case.0x1400052b0.3
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
je 0x14000564c
mov rcx, rbx
call sym.d_source_name
xor r9d, r9d
mov edx, 0x52
mov rcx, rbx
mov r8, rax
mov r11, r12
call sym.d_make_comp
mov r12, rax
test r11, r11
jne 0x1400053e0
mov rdi, rax
jmp 0x1400053e4
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x14000544b
mov edx, dword [rcx]
test edx, edx
je 0x140005439
cmp edx, 0x18
jne 0x14000544b
mov edx, dword [rcx + 0x18]
add dword [rbx + 0x48], edx
movzx edx, byte [rax]
cmp dl, 0x43
jne 0x140005659
movsx edx, byte [rax + 1]
cmp dl, 0x49
je 0x14000570a
lea r8d, [rdx - 0x31]
cmp r8b, 4
ja case.0x1400052b0.3
add rax, 2
lea r12d, [rdx - 0x30]
mov qword [rbx + 0x18], rax
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400052b0.3
movsxd rdi, eax
add eax, 1
shl rdi, 5
add rdi, qword [rbx + 0x20]
mov qword [rdi + 4], 0
mov dword [rbx + 0x28], eax
test rcx, rcx
je case.0x1400052b0.3
mov qword [rdi + 4], 0
mov dword [rdi], 7
mov dword [rdi + 0x10], r12d
mov qword [rdi + 0x18], rcx
jmp 0x1400051fb
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x6c
jne case.0x1400052b0.3
lea rdx, [rax + 2]
mov dword [rsp + 0x2c], 0
lea rdi, [rsp + 0x30]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 2], 0x54
lea r13, [rsp + 0x38]
lea r12, [rsp + 0x2c]
mov qword [rsp + 0x30], 0
jne 0x1400052b2
movzx eax, byte [rdx + 1]
cmp al, 0x74
je 0x14000568e
jg 0x14000562f
cmp al, 0x6e
je 0x14000566b
cmp al, 0x70
jne 0x140005586
add rdx, 2
mov rcx, rbx
mov qword [rbx + 0x18], rdx
mov rdx, r12
call sym.d_template_parm
mov rcx, rax
test rax, rax
je 0x1400056fd
mov r8d, 0x5b
mov edx, dword [rbx + 0x28]
cmp edx, dword [rbx + 0x2c]
jge 0x140005586
movsxd rax, edx
add edx, 1
shl rax, 5
add rax, qword [rbx + 0x20]
mov qword [rax + 4], 0
mov dword [rbx + 0x28], edx
mov rdx, qword [rbx + 0x18]
mov dword [rax], r8d
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0
mov qword [rdi], rax
cmp byte [rdx], 0x54
lea rdi, [rax + 0x18]
je 0x1400054ff
mov r12, qword [rsp + 0x30]
test r12, r12
je 0x1400055a6
mov r8, r12
xor r9d, r9d
mov edx, 0x57
mov rcx, rbx
call sym.d_make_comp
mov r12, rax
mov eax, dword [rsp + 0x2c]
test eax, eax
jne case.0x1400052b0.3
mov rcx, rbx
call dbg.d_parmlist
test rax, rax
je case.0x1400052b0.3
test r12, r12
je 0x14000573f
mov qword [r12 + 0x18], rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
jne case.0x1400052b0.3
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call sym.d_compact_number
mov edx, eax
test eax, eax
js case.0x1400052b0.3
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400052b0.3
movsxd rdi, eax
add eax, 1
shl rdi, 5
add rdi, qword [rbx + 0x20]
mov qword [rdi + 4], 0
mov dword [rbx + 0x28], eax
mov dword [rdi], 0x47
mov qword [rdi + 0x10], r12
mov dword [rdi + 0x18], edx
jmp 0x1400051fb
cmp al, 0x79
jne 0x140005586
add rdx, 2
xor ecx, ecx
mov r8d, 0x58
mov qword [rbx + 0x18], rdx
jmp 0x140005542
add rax, 1
mov qword [rbx + 0x18], rax
jmp 0x1400051fb
cmp dl, 0x44
jne case.0x1400052b0.3
movzx edx, byte [rax + 1]
jmp 0x140005297
add rdx, 2
mov rcx, rbx
mov qword [rbx + 0x18], rdx
call sym.d_type
mov rcx, rax
test rax, rax
je 0x1400056fd
mov r8d, 0x59
jmp 0x140005542
mov qword [rsp + 0x38], 0
add rdx, 2
mov r14, r13
mov qword [rbx + 0x18], rdx
jmp 0x1400056af
mov qword [r14], rax
lea r14, [rax + 0x18]
mov rdx, r12
mov rcx, rbx
call sym.d_template_parm
test rax, rax
jne 0x1400056a8
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x1400056fd
mov rcx, rbx
xor r9d, r9d
mov edx, 0x57
call sym.d_make_comp
mov rcx, rax
test rax, rax
je 0x1400056fd
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
jne 0x1400056fd
add rax, 1
mov r8d, 0x5a
mov qword [rbx + 0x18], rax
jmp 0x140005542
mov dword [rsp + 0x2c], 1
jmp 0x140005586
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
movsx edx, byte [rax + 2]
lea ecx, [rdx - 0x31]
cmp cl, 4
ja case.0x1400052b0.3
add rax, 3
mov rcx, rbx
lea r12d, [rdx - 0x30]
mov qword [rbx + 0x18], rax
call sym.d_type
mov rcx, qword [rbx + 0x40]
jmp 0x140005472
mov r12, rax
jmp 0x1400055d1