Function at 0x140004000
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 0x140004092
jmp 0x140004403
mov rcx, rbx
call fcn.140002050
mov ecx, 0x53
test rax, rax
je 0x1400040c0
mov edx, dword [rbx + 0x28]
cmp edx, dword [rbx + 0x2c]
jge 0x1400040c0
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 0x1400040c0
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 0x1400040d8
mov r12, rsi
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x50
jne 0x140004030
add rax, 2
mov rcx, rbx
mov qword [rbx + 0x18], rax
call fcn.140002050
mov ecx, 0x54
test rax, rax
jne 0x140004042
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 0x140004230
lea ecx, [rdx - 0x61]
cmp cl, 0x19
ja 0x140004178
mov r12d, dword [rbx + 0x4c]
cmp dl, 0x6f
je 0x14000428d
mov rcx, rbx
call fcn.1400034b0
mov dword [rbx + 0x4c], r12d
mov rdi, rax
test rax, rax
je case.0x1400042f0.3
cmp dword [rax], 0x32
jne 0x14000423b
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 0x14000423b
cmp byte [rax + 1], 0x69
jne 0x14000423b
cmp byte [rax + 2], 0
jne 0x14000423b
mov rcx, rbx
call fcn.140002050
mov r8, rdi
mov edx, 0x37
mov rcx, rbx
mov r9, rax
call fcn.140001610
mov rdi, rax
jmp 0x14000423b
cmp dl, 0x44
je 0x1400042ab
lea ecx, [rdx - 0x43]
cmp cl, 1
jbe 0x140004465
cmp dl, 0x4c
je 0x1400043d0
cmp dl, 0x55
jne 0x1400040c0
movzx edx, byte [rax + 1]
cmp dl, 0x6c
je 0x1400044fb
cmp dl, 0x74
jne 0x1400040c0
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x74
jne case.0x1400042f0.3
add rax, 2
mov rcx, rbx
mov qword [rbx + 0x18], rax
call fcn.140001ea0
mov edx, eax
test eax, eax
js case.0x1400042f0.3
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400042f0.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.0x1400042f0.3
mov rdx, qword [rbx + 0x30]
movsxd rcx, eax
add eax, 1
mov qword [rdx + rcx*8], rdi
mov dword [rbx + 0x38], eax
jmp 0x14000423b
mov rcx, rbx
call fcn.140002050
mov rdi, rax
test rsi, rsi
je 0x140004256
mov r8, rdi
mov r9, rsi
mov edx, 0x55
mov rcx, rbx
call fcn.140001610
mov rdi, rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x42
je 0x140004320
test rbp, rbp
je 0x1400040c2
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 fcn.140001610
cmp byte [rax + 1], 0x6e
jne 0x140004100
add rax, 2
mov dword [rbx + 0x4c], 0
mov qword [rbx + 0x18], rax
jmp 0x140004100
movzx edx, byte [rax + 1]
cmp dl, 0x43
je 0x14000440b
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x1400042d7
mov r8d, dword [rcx]
test r8d, r8d
je 0x140004479
cmp r8d, 0x18
je 0x140004479
sub edx, 0x30
cmp dl, 5
ja case.0x1400042f0.3
lea r8, [0x1400fcbdc]
movzx edx, dl
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
mov rcx, rbx
call fcn.1400033b0
mov r12, rax
test rax, rax
jne 0x140004611
nop word cs:[rax + rax]
xor edi, edi
jmp 0x14000423b
mov rsi, qword [rbx + 0x40]
nop dword [rax]
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call fcn.140002050
mov r8, rdi
mov edx, 0x4d
mov rcx, rbx
mov r9, rax
call fcn.140001610
mov rdi, rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x42
je 0x140004328
mov qword [rbx + 0x40], rsi
jmp 0x140004263
mov edx, 5
add rax, 2
mov qword [rbx + 0x18], rax
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400042f0.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.0x1400042f0.3
mov qword [rdi + 4], 0
mov dword [rdi], 8
mov dword [rdi + 0x10], edx
mov qword [rdi + 0x18], rcx
jmp 0x14000423b
mov edx, 4
jmp 0x140004365
mov edx, 3
jmp 0x140004365
mov edx, 2
jmp 0x140004365
mov edx, 1
jmp 0x140004365
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call fcn.140002050
mov rdi, rax
test rax, rax
je 0x1400040c0
mov rcx, rbx
call fcn.140001f30
test eax, eax
jne 0x14000423b
xor edi, edi
jmp 0x1400040c2
mov rsi, r8
jmp 0x1400040db
add rax, 2
xor r12d, r12d
mov qword [rbx + 0x18], rax
jmp 0x14000443a
mov qword [r11 + 0x18], rax
test r12, r12
je case.0x1400042f0.3
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
je 0x14000468c
mov rcx, rbx
call fcn.140002050
xor r9d, r9d
mov edx, 0x52
mov rcx, rbx
mov r8, rax
mov r11, r12
call fcn.140001610
mov r12, rax
test r11, r11
jne 0x140004420
mov rdi, rax
jmp 0x140004424
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x14000448b
mov edx, dword [rcx]
test edx, edx
je 0x140004479
cmp edx, 0x18
jne 0x14000448b
mov edx, dword [rcx + 0x18]
add dword [rbx + 0x48], edx
movzx edx, byte [rax]
cmp dl, 0x43
jne 0x140004699
movsx edx, byte [rax + 1]
cmp dl, 0x49
je 0x14000474a
lea r8d, [rdx - 0x31]
cmp r8b, 4
ja case.0x1400042f0.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.0x1400042f0.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.0x1400042f0.3
mov qword [rdi + 4], 0
mov dword [rdi], 7
mov dword [rdi + 0x10], r12d
mov qword [rdi + 0x18], rcx
jmp 0x14000423b
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp byte [rax + 1], 0x6c
jne case.0x1400042f0.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 0x1400042f2
movzx eax, byte [rdx + 1]
cmp al, 0x74
je 0x1400046ce
jg 0x14000466f
cmp al, 0x6e
je 0x1400046ab
cmp al, 0x70
jne 0x1400045c6
add rdx, 2
mov rcx, rbx
mov qword [rbx + 0x18], rdx
mov rdx, r12
call fcn.140003790
mov rcx, rax
test rax, rax
je 0x14000473d
mov r8d, 0x5b
mov edx, dword [rbx + 0x28]
cmp edx, dword [rbx + 0x2c]
jge 0x1400045c6
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 0x14000453f
mov r12, qword [rsp + 0x30]
test r12, r12
je 0x1400045e6
mov r8, r12
xor r9d, r9d
mov edx, 0x57
mov rcx, rbx
call fcn.140001610
mov r12, rax
mov eax, dword [rsp + 0x2c]
test eax, eax
jne case.0x1400042f0.3
mov rcx, rbx
call fcn.1400033b0
test rax, rax
je case.0x1400042f0.3
test r12, r12
je 0x14000477f
mov qword [r12 + 0x18], rax
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
jne case.0x1400042f0.3
add rax, 1
mov rcx, rbx
mov qword [rbx + 0x18], rax
call fcn.140001ea0
mov edx, eax
test eax, eax
js case.0x1400042f0.3
mov eax, dword [rbx + 0x28]
cmp eax, dword [rbx + 0x2c]
jge case.0x1400042f0.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 0x14000423b
cmp al, 0x79
jne 0x1400045c6
add rdx, 2
xor ecx, ecx
mov r8d, 0x58
mov qword [rbx + 0x18], rdx
jmp 0x140004582
add rax, 1
mov qword [rbx + 0x18], rax
jmp 0x14000423b
cmp dl, 0x44
jne case.0x1400042f0.3
movzx edx, byte [rax + 1]
jmp 0x1400042d7
add rdx, 2
mov rcx, rbx
mov qword [rbx + 0x18], rdx
call fcn.140002770
mov rcx, rax
test rax, rax
je 0x14000473d
mov r8d, 0x59
jmp 0x140004582
mov qword [rsp + 0x38], 0
add rdx, 2
mov r14, r13
mov qword [rbx + 0x18], rdx
jmp 0x1400046ef
mov qword [r14], rax
lea r14, [rax + 0x18]
mov rdx, r12
mov rcx, rbx
call fcn.140003790
test rax, rax
jne 0x1400046e8
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x14000473d
mov rcx, rbx
xor r9d, r9d
mov edx, 0x57
call fcn.140001610
mov rcx, rax
test rax, rax
je 0x14000473d
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x45
jne 0x14000473d
add rax, 1
mov r8d, 0x5a
mov qword [rbx + 0x18], rax
jmp 0x140004582
mov dword [rsp + 0x2c], 1
jmp 0x1400045c6
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
movsx edx, byte [rax + 2]
lea ecx, [rdx - 0x31]
cmp cl, 4
ja case.0x1400042f0.3
add rax, 3
mov rcx, rbx
lea r12d, [rdx - 0x30]
mov qword [rbx + 0x18], rax
call fcn.140002770
mov rcx, qword [rbx + 0x40]
jmp 0x1400044b2
mov r12, rax
jmp 0x140004611