Function at 0x140009720
Capabilities:
Parse pe header

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x150], xmm10
movaps xmmword [rsp + 0x160], xmm12
movaps xmmword [rsp + 0x170], xmm14
mov rbx, rcx
lea rcx, [0x140021180]
mov dword [rsp + 0x1e0], r8d
mov rdi, rdx
call fcn.140014910
mov rsi, rax
movzx eax, byte [rax]
test rbx, rbx
je 0x140009793
cmp word [rbx], 0x5a4d
je 0x1400097e8
xor r12d, r12d
movaps xmm6, xmmword [rsp + 0x120]
mov rax, r12
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm10, xmmword [rsp + 0x150]
movaps xmm12, xmmword [rsp + 0x160]
movaps xmm14, xmmword [rsp + 0x170]
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd rdx, dword [rbx + 0x3c]
add rdx, rbx
cmp dword [rdx], 0x4550
jne 0x140009793
test byte [rdx + 0x17], 0x20
je 0x140009793
test al, al
jne 0x140009793
movdqu xmm0, xmmword [rdx + 0x88]
movdqu xmm1, xmmword [rdx + 0x98]
movdqu xmm2, xmmword [rdx + 0xa8]
movdqu xmm3, xmmword [rdx + 0xb8]
movdqu xmm4, xmmword [rdx + 0xc8]
movdqu xmm5, xmmword [rdx + 0xd8]
movaps xmmword [rsp + 0xa0], xmm0
movdqu xmm7, xmmword [rdx + 0xe8]
movdqu xmm6, xmmword [rdx + 0xf8]
movaps xmmword [rsp + 0xb0], xmm1
mov edx, dword [rsp + 0xa4]
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm3
movaps xmmword [rsp + 0xe0], xmm4
movaps xmmword [rsp + 0xf0], xmm5
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0x110], xmm6
test edx, edx
je 0x140009793
movsxd rbp, dword [rsp + 0xa0]
test ebp, ebp
je 0x140009793
movdqa xmm0, xmmword [0x14017c4c0]
mov r8d, 0x2f46d46
add rbp, rbx
lea r13, [rsp + 0x90]
lea r14, [rsp + 0x80]
mov rcx, r13
mov rdx, r14
movaps xmmword [rsp + 0x80], xmm0
call fcn.140007f10
mov rdx, qword [rsp + 0x98]
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x50], rdx
jne 0x14000a0e0
mov qword [rsp + 0x88], rdx
mov rcx, r13
mov rdx, r14
mov r8d, 0x3d2a4ba2
mov qword [rsp + 0x80], rax
call fcn.140008120
mov rax, qword [rsp + 0x98]
cmp byte [rsi], 0
mov qword [rsp + 0x58], rax
jne 0x140009b74
movsxd r12, dword [rbp + 0x1c]
mov eax, dword [rbp + 0x18]
mov rdx, r14
mov r8d, 0x6cc80532
movdqa xmm1, xmmword [0x14017c4b0]
mov rcx, r13
add r12, rbx
mov dword [rsp + 0x44], eax
mov eax, dword [r12]
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x48], eax
movsxd rax, dword [rbp + 0x20]
mov eax, dword [rax + rbx]
movaps xmmword [rsp + 0x80], xmm1
mov dword [rsp + 0x30], eax
call fcn.140007f10
mov rdx, qword [rsp + 0x98]
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x60], rdx
jne 0x140009b60
add rdx, 8
test rax, rax
lea rax, [0x14002206f]
cmove rdx, rax
cmp rdi, rdx
je 0x14000a060
mov rcx, rdi
call sub.msvcrt.dll_strcmp
mov dword [rsp + 0x68], 0
test eax, eax
je 0x14000a060
mov qword [rsp + 0x1d0], rbx
movdqa xmm6, xmmword [0x14017c4a0]
mov qword [rsp + 0x1d8], rdi
movdqa xmm8, xmmword [0x14017c490]
movdqa xmm10, xmmword [0x14017c480]
movdqa xmm7, xmmword [0x14017c450]
movdqa xmm12, xmmword [0x14017c470]
movdqa xmm14, xmmword [0x14017c460]
nop dword [rax]
mov edi, dword [rsp + 0x68]
cmp dword [rsp + 0x44], edi
jl 0x140009f2b
mov r8d, 0x6b951006
mov rdx, r14
mov rcx, r13
movsxd r12, dword [rsp + 0x30]
movaps xmmword [rsp + 0x80], xmm6
add r12, qword [rsp + 0x1d0]
call fcn.140008120
mov rdi, qword [rsp + 0x98]
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x28], rdi
jne 0x14000a048
test rax, rax
lea r9, [rdi + 8]
lea rax, [0x14002206f]
cmovne rax, r9
mov rbp, rax
test r12, r12
je 0x140009f10
mov rcx, r12
xor r15d, r15d
xor ebx, ebx
call sub.msvcrt.dll_strlen
mov rdi, rax
cmp rdi, r15
jle 0x140009ac7
nop dword [rax]
movzx edx, byte [r12 + r15]
lea ecx, [rdx - 0x41]
mov eax, edx
xor eax, 0x20
cmp cl, 0x1a
cmovb edx, eax
movzx eax, byte [rbp + rbx]
lea r8d, [rax - 0x41]
mov ecx, eax
xor ecx, 0x20
cmp r8b, 0x1a
cmovb eax, ecx
cmp dl, al
je 0x140009ae0
xor ebx, ebx
add r15, 1
cmp rdi, r15
jg 0x140009a90
add qword [rsp + 0x38], 4
mov rax, qword [rsp + 0x38]
lea r10d, [rdi + 1]
mov eax, dword [rax]
mov dword [rsp + 0x6c], eax
jmp 0x140009b02
mov rcx, rbp
add rbx, 1
call sub.msvcrt.dll_strlen
cmp rax, rbx
jne 0x140009abe
mov eax, dword [rsp + 0x48]
add dword [rsp + 0x44], 1
lea r10d, [rdi + 1]
mov dword [rsp + 0x6c], eax
add dword [rsp + 0x30], r10d
cmp qword [rsp + 0x1d8], r12
je 0x140009bb0
mov rcx, qword [rsp + 0x1d8]
mov rdx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140009bb0
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x48], eax
add dword [rsp + 0x68], 1
cmp qword [rsp + 0x28], 0
je 0x140009a08
mov rax, qword [rsp + 0x28]
test byte [rax + 7], 0x40
je 0x140009fa8
movzx eax, byte [rsi]
test al, al
je 0x140009a08
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140009b74
test byte [rax + 7], 0x40
je 0x14000a080
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140009b88
test byte [rax + 7], 0x40
je 0x14000a0a0
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140009793
test byte [rax + 7], 0x40
jne 0x140009793
mov rcx, rax
call fcn.140004a90
jmp 0x140009793
mov r8d, 0x61a83972
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm8
call fcn.140008120
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov r15, qword [rsp + 0x98]
jne 0x14000a1ad
test rax, rax
lea rdx, [r15 + 8]
lea rax, [0x14002206f]
cmove rdx, rax
cmp r12, rdx
je 0x140009f78
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140009f78
mov r8d, 0x2dd26e76
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm10
call fcn.140008120
mov rdi, qword [rsp + 0x98]
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x70], rdi
jne 0x14000a00f
test rax, rax
lea rdx, [rdi + 8]
lea rax, [0x14002206f]
cmove rdx, rax
cmp r12, rdx
je 0x140009f88
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140009f88
mov r8d, 0x1843e3c2
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm12
call fcn.140008120
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
jne 0x140009ffc
test rax, rax
lea rdx, [rdi + 8]
lea rax, [0x14002206f]
cmove rdx, rax
cmp r12, rdx
je 0x140009f98
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140009f98
mov r8d, 0x74df8a66
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm14
call fcn.140008120
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
jne 0x140009fed
test rax, rax
lea rdx, [rbx + 8]
lea rax, [0x14002206f]
cmove rdx, rax
cmp r12, rdx
je 0x140009fb8
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140009fb8
mov r8d, 0x61e6de92
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm7
call fcn.140008120
cmp byte [rsi], 0
mov rax, qword [rsp + 0x90]
mov r9, qword [rsp + 0x98]
jne 0x140009fdd
test rax, rax
lea rdx, [r9 + 8]
lea rax, [0x14002206f]
cmove rdx, rax
cmp r12, rdx
je 0x14000a070
mov rcx, r12
mov qword [rsp + 0x78], r9
call sub.msvcrt.dll_strcmp
mov r9, qword [rsp + 0x78]
test eax, eax
je 0x14000a070
movdqa xmm3, xmmword [0x14017c440]
mov rcx, r13
mov r8d, 0x30705fd6
mov rdx, r14
mov qword [rsp + 0x78], r9
movaps xmmword [rsp + 0x80], xmm3
call fcn.140008120
cmp byte [rsi], 0
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x98]
jne 0x140009fc3
mov eax, dword [rsp + 0x1e0]
mov rbp, r15
mov r15, rbx
mov rbx, qword [rsp + 0x1d0]
test eax, eax
jne 0x14000a090
movsxd rax, dword [rsp + 0x48]
add rbx, rax
mov r12, rbx
test rcx, rcx
je 0x140009e07
test byte [rcx + 7], 0x40
je 0x14000a138
test r9, r9
je 0x140009e17
test byte [r9 + 7], 0x40
je 0x14000a150
test r15, r15
je 0x140009e27
test byte [r15 + 7], 0x40
je 0x14000a160
test rdi, rdi
je 0x140009e36
test byte [rdi + 7], 0x40
je 0x14000a170
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x140009e4a
test byte [rax + 7], 0x40
je 0x14000a180
test rbp, rbp
je 0x140009e59
test byte [rbp + 7], 0x40
je 0x14000a190
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140009e6d
test byte [rax + 7], 0x40
je 0x14000a1a0
movdqa xmm2, xmmword [0x14017c430]
mov r8d, 0x16e6dde2
mov rcx, r13
mov rdx, r14
movaps xmmword [rsp + 0x80], xmm2
call fcn.140008120
mov rcx, qword [rsp + 0x98]
cmp byte [rsi], 0
mov r8, rcx
jne 0x140009f54
test r12, r12
je 0x140009f54
test rcx, rcx
je 0x140009eba
test byte [rcx + 7], 0x40
je 0x14000a0b0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140009ece
test byte [rax + 7], 0x40
je 0x14000a0c0
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140009ee2
test byte [rax + 7], 0x40
je 0x14000a0d0
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140009796
test byte [rax + 7], 0x40
jne 0x140009796
mov rcx, rax
call fcn.140004a90
jmp 0x140009796
add qword [rsp + 0x38], 4
mov rax, qword [rsp + 0x38]
add dword [rsp + 0x30], 1
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
jmp 0x140009b35
movdqa xmm4, xmmword [0x14017c430]
mov r8d, 0x16e6dde2
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x80], xmm4
call fcn.140008120
mov r8, qword [rsp + 0x98]
test r8, r8
je 0x140009b60
test byte [r8 + 7], 0x40
jne 0x140009b60
mov rcx, r8
call fcn.140004a90
jmp 0x140009b60
sub qword [rsp + 0x38], 4
jmp 0x140009c0e
sub qword [rsp + 0x38], 4
jmp 0x140009c71
sub qword [rsp + 0x38], 4
jmp 0x140009ccf
mov rcx, rax
call fcn.140004a90
jmp 0x140009b55
sub qword [rsp + 0x38], 4
jmp 0x140009d2d
test rcx, rcx
je 0x140009fdd
test byte [rcx + 7], 0x40
jne 0x140009fdd
mov qword [rsp + 0x48], r9
call fcn.140004a90
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x140009fed
test byte [r9 + 7], 0x40
je 0x14000a118
test rbx, rbx
je 0x140009ffc
test byte [rbx + 7], 0x40
je 0x14000a128
test rdi, rdi
je 0x14000a00f
test byte [rdi + 7], 0x40
jne 0x14000a00f
mov rcx, rdi
call fcn.140004a90
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14000a023
test byte [rax + 7], 0x40
je 0x14000a0f8
test r15, r15
je 0x14000a033
test byte [r15 + 7], 0x40
je 0x14000a108
mov eax, dword [rsp + 0x6c]
cmp byte [rsi], 0
mov dword [rsp + 0x48], eax
je 0x140009b35
nop dword [rax]
cmp qword [rsp + 0x28], 0
jne 0x140009b46
jmp 0x140009b60
movsxd rax, dword [r12 - 4]
lea r12, [rax + rbx]
jmp 0x140009e6d
sub qword [rsp + 0x38], 4
jmp 0x140009d94
mov rcx, rax
call fcn.140004a90
jmp 0x140009b74
movsxd rax, dword [rsp + 0x6c]
add rbx, rax
jmp 0x140009df5
mov rcx, rax
call fcn.140004a90
jmp 0x140009b88
call fcn.140004a90
jmp 0x140009eba
mov rcx, rax
call fcn.140004a90
jmp 0x140009ece
mov rcx, rax
call fcn.140004a90
jmp 0x140009ee2
mov rax, rdx
test rdx, rdx
jne 0x140009b96
jmp 0x140009793
mov rcx, rax
call fcn.140004a90
jmp 0x14000a023
mov rcx, r15
call fcn.140004a90
jmp 0x14000a033
mov rcx, r9
call fcn.140004a90
jmp 0x140009fed
mov rcx, rbx
call fcn.140004a90
jmp 0x140009ffc
mov qword [rsp + 0x30], r9
call fcn.140004a90
mov r9, qword [rsp + 0x30]
jmp 0x140009e07
mov rcx, r9
call fcn.140004a90
jmp 0x140009e17
mov rcx, r15
call fcn.140004a90
jmp 0x140009e27
mov rcx, rdi
call fcn.140004a90
jmp 0x140009e36
mov rcx, rax
call fcn.140004a90
jmp 0x140009e4a
mov rcx, rbp
call fcn.140004a90
jmp 0x140009e59
mov rcx, rax
call fcn.140004a90
jmp 0x140009e6d
test r15, r15
jne 0x14000a028
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x48], eax
jmp 0x14000a048