Function at 0x1800121c8
Capabilities:
Parse pe header

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x30
mov r15, rcx
movzx ecx, word [rcx]
mov eax, 1
cmp ecx, 0x5a4d
jne 0x1800122dc
movsxd r13, dword [r15 + 0x3c]
cmp dword [r15 + r13], 0x4550
jne 0x1800122dc
mov r14, r8
add r13, r15
cmp dword [0x180014098], 0xa
jl 0x180012220
mov eax, dword [0x18001409c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18001225f
mov eax, dword [r13 + 0x50]
lea ecx, [rax + rax*2]
lea edx, [rax + rcx*4]
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 0x40
call qword [0x180014058]
mov r12, rax
mov eax, dword [0x18001409c]
mov edx, dword [0x180014098]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
cmp edx, 0xa
jl 0x18001227f
test ecx, ecx
je 0x18001227f
mov eax, dword [r13 + 0x50]
lea ecx, [rax + rax*2]
lea edx, [rax + rcx*4]
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 0x40
call qword [0x180014058]
jmp 0x180012220
test r12, r12
je 0x1800122d7
movzx eax, word [r13 + 0x14]
mov ebx, dword [r13 + rax + 0x2c]
mov dword [rsp + 0x2c], 0
mov edi, dword [rsp + 0x2c]
cmp edi, ebx
jae 0x1800122cc
xor ecx, ecx
mov dl, byte [r15 + rcx]
mov byte [r12 + rcx], dl
inc dword [rsp + 0x2c]
mov edx, dword [rsp + 0x2c]
inc rcx
cmp edx, ebx
jb 0x1800122a0
mov ebx, dword [0x18001409c]
mov edx, dword [0x180014098]
lea ecx, [rbx - 1]
imul ecx, ebx
and ecx, 1
cmp edx, 0xa
jl 0x180012308
test ecx, ecx
je 0x180012308
jmp 0x1800122d5
mov eax, 2
cmp dword [0x180014098], 0xa
jl 0x1800122f8
mov ecx, dword [0x18001409c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1800122f8
jmp 0x1800122f6
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp word [r13 + 6], 0
je 0x18001239b
lea r8, [rax + r13]
add r8, 0x18
xor r9d, r9d
lea rbx, [r9 + r9*4]
lea rax, [r8 + rbx*8]
add rax, 0xc
mov edx, dword [rax - 4]
mov edi, dword [rax]
mov dword [rsp + 0x2c], 0
mov esi, dword [rsp + 0x2c]
cmp esi, edx
jae 0x180012355
add rdi, r12
mov byte [rdi], 0
inc dword [rsp + 0x2c]
inc rdi
mov esi, dword [rsp + 0x2c]
cmp esi, edx
jb 0x180012343
mov edx, dword [r8 + rbx*8 + 0x10]
mov ebx, dword [r8 + rbx*8 + 0x14]
mov eax, dword [rax]
mov dword [rsp + 0x2c], 0
mov edi, dword [rsp + 0x2c]
cmp edi, edx
jae 0x18001238e
add rbx, r15
add rax, r12
xor edi, edi
mov cl, byte [rbx + rdi]
mov byte [rax + rdi], cl
inc dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x2c]
inc rdi
cmp ecx, edx
jb 0x180012379
inc r9
movzx eax, word [r13 + 6]
cmp r9, rax
jb 0x18001231f
mov rcx, r12
call fcn.1800125d9
mov rdx, r12
sub rdx, rax
mov rcx, r12
call fcn.18001247e
mov rcx, r12
call fcn.18001264d
mov ebx, dword [r13 + 0x28]
add rbx, r12
mov rcx, qword [0x180014020]
mov edx, 1
mov r8d, r12d
call rbx
cmp dword [0x180014098], 0xa
jl 0x1800123eb
mov eax, dword [0x18001409c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18001241a
mov rcx, r12
mov rdx, r14
xor r8d, r8d
call fcn.1800127e3
mov rbx, rax
mov eax, dword [0x18001409c]
mov edx, dword [0x180014098]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
cmp edx, 0xa
jl 0x18001242a
test ecx, ecx
je 0x18001242a
mov rcx, r12
mov rdx, r14
xor r8d, r8d
call fcn.1800127e3
jmp 0x1800123eb
test rbx, rbx
je 0x180012466
mov r9d, dword [0x180014040]
mov r8, qword [0x180014038]
mov rdx, qword [0x180014030]
mov rcx, qword [0x180014028]
call rbx
mov eax, dword [0x18001409c]
mov edx, dword [0x180014098]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
xor eax, eax
jmp 0x18001246b
mov eax, 5
cmp edx, 0xa
jl 0x1800122dc
test ecx, ecx
je 0x1800122dc
jmp 0x18001247c