Function at 0x140001224
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
xor r10d, r10d
mov rsi, rdx
mov rbx, rcx
test rcx, rcx
je 0x140001864
lea rdi, [rcx + 0x10]
mov rdx, qword [rdi]
test rdx, rdx
je 0x140001864
test rsi, rsi
je 0x140001864
mov dword [rcx + 0x20], r10d
mov eax, r10d
mov ecx, 0x5a4d
cmp cx, word [rsi]
sete al
jne 0x1400012aa
movsxd rcx, dword [rsi + 0x3c]
mov r8d, 0x4550
mov eax, r10d
cmp dword [rcx + rsi], r8d
sete al
jne 0x1400012aa
mov eax, 0x8664
cmp ax, word [rcx + rsi + 4]
jne 0x1400012ae
mov r8d, 0x20b
mov eax, r10d
cmp r8w, word [rcx + rsi + 0x18]
sete al
test eax, eax
jne 0x1400012ba
mov dword [rbx + 0x20], 1
jmp 0x140001864
mov rbp, qword [rdx + 0x18]
movsxd r14, dword [rsi + 0x3c]
add r14, rsi
mov qword [rsp + 0x20], rbp
mov edx, r10d
movzx eax, word [r14 + 6]
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x140001303
lea r8, [r14 + 0x118]
mov r9d, eax
mov ecx, dword [r8 - 4]
test ecx, ecx
je 0x1400012f9
add ecx, dword [r8]
cmp edx, ecx
cmovb edx, ecx
add r8, 0x28
sub r9, 1
jne 0x1400012e9
mov rcx, qword [r14 + 0x30]
mov r9d, 4
mov r8d, 0x3000
mov r13d, edx
call rbp
xor ecx, ecx
mov qword [rsp + 0xb8], rax
mov r12, rax
test rax, rax
jne 0x14000134d
lea r9d, [rax + 4]
mov r8d, 0x3000
mov edx, r13d
call rbp
mov qword [rsp + 0xb8], rax
mov r12, rax
test rax, rax
je 0x14000185d
mov edx, dword [r14 + 0x54]
mov r9d, 4
mov r8d, 0x1000
mov rcx, r12
call rbp
xor r10d, r10d
mov rbp, rax
test rax, rax
je 0x14000185d
mov r8d, dword [r14 + 0x54]
mov rdx, rsi
mov rcx, rax
call fcn.1400027f0
mov qword [rbx], rbp
mov eax, dword [r14 + 0x50]
mov dword [rbx + 8], eax
mov dword [rbx + 0x1c], 1
movsxd rdx, dword [rbp + 0x3c]
add rdx, rbp
mov qword [rsp + 0x30], rdx
cmp r10w, word [rsp + 0xa0]
jae 0x140001489
mov rcx, qword [rsp + 0xa0]
lea r14, [rdx + 0x118]
mov eax, r10d
mov qword [rsp + 0x28], rax
cmp dword [r14 - 4], r10d
je 0x140001474
mov r13d, dword [r14 - 4]
add r13, r12
cmp dword [r14], r10d
jne 0x140001427
mov r12d, dword [r14 - 8]
test r12d, r12d
jne 0x1400013eb
mov r12d, dword [rdx + 0x38]
test r12d, r12d
je 0x14000141d
mov edx, r12d
mov r9d, 4
mov r8d, 0x1000
mov rcx, r13
call qword [rsp + 0x20]
mov rbp, rax
test rax, rax
je 0x14000185d
mov r8d, r12d
xor edx, edx
mov rcx, r13
call fcn.1400027a0
xor r10d, r10d
mov r12, qword [rsp + 0xb8]
jmp 0x14000145e
mov edx, dword [r14]
mov r9d, 4
mov r8d, 0x1000
mov rcx, r13
call qword [rsp + 0x20]
xor r10d, r10d
mov rbp, rax
test rax, rax
je 0x14000185d
mov edx, dword [r14 + 4]
mov rcx, rax
mov r8d, dword [r14]
add rdx, rsi
call fcn.1400027f0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x30]
mov dword [r14 - 8], ebp
inc rax
add r14, 0x28
mov qword [rsp + 0x28], rax
cmp rax, rcx
jl 0x1400013c3
mov rax, qword [rbx]
xor ebp, ebp
test rax, rax
je 0x1400014cd
movsxd rcx, dword [rax + 0x3c]
mov r10, rax
sub r10, qword [rcx + rax + 0x30]
je 0x140001595
mov edx, dword [rcx + rax + 0xb0]
test edx, edx
je 0x140001595
cmp dword [rcx + rax + 0xb4], ebp
je 0x140001595
add rdx, rax
jne 0x140001502
mov dword [rbx + 0x20], 3
mov rax, qword [rdi]
test rax, rax
je 0x140001864
cmp dword [rbx + 0x1c], ebp
je 0x140001864
mov rcx, qword [rbx]
test rcx, rcx
je 0x140001864
xor edx, edx
mov r8d, 0x8000
call qword [rax + 0x20]
mov qword [rbx + 8], rbp
jmp 0x14000184e
mov ecx, dword [rdx]
mov r9d, dword [rdx + 4]
add ecx, r9d
je 0x140001595
mov esi, 0xf000
mov r14d, 0xfff
mov r12d, 0x3000
mov eax, r9d
mov r8, rbp
sub rax, 8
shr rax, 1
movsxd r9, eax
test eax, eax
jle 0x140001584
movzx ecx, word [rdx + r8*2 + 8]
movzx eax, cx
and ax, si
cmp r12w, ax
jne 0x140001556
mov eax, dword [rdx]
and rcx, r14
add rcx, rax
add rcx, qword [rbx]
add dword [rcx], r10d
movzx ecx, word [rdx + r8*2 + 8]
mov r11d, 0xa000
movzx eax, cx
and ax, si
cmp r11w, ax
jne 0x14000157c
mov eax, dword [rdx]
and rcx, r14
add rcx, rax
add rcx, qword [rbx]
add qword [rcx], r10
inc r8
cmp r8, r9
jl 0x140001536
mov eax, dword [rdx + 4]
add rdx, rax
mov ecx, dword [rdx]
mov r9d, dword [rdx + 4]
add ecx, r9d
jne 0x140001522
mov rcx, rdi
mov rcx, qword [rcx]
test rcx, rcx
je 0x14000161b
mov rax, qword [rbx]
test rax, rax
je 0x14000161b
mov r8, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov r13, qword [rcx]
movsxd rcx, dword [rax + 0x3c]
mov qword [rsp + 0xb8], r8
mov qword [rsp + 0xa0], r14
mov edx, dword [rcx + rax + 0x90]
test edx, edx
je 0x14000168f
cmp dword [rcx + rax + 0x94], ebp
je 0x14000168f
lea rsi, [rax + rdx]
cmp dword [rsi + 0xc], ebp
je 0x14000168f
mov ebp, dword [rsi + 0xc]
add rbp, qword [rbx]
mov rcx, rbp
call r8
mov r12, rax
test rax, rax
jne 0x140001623
mov rcx, rbp
call r14
xor ebp, ebp
mov r12, rax
test rax, rax
jne 0x140001625
mov dword [rbx + 0x20], 4
mov rax, qword [rdi]
jmp 0x14000182c
xor ebp, ebp
mov rax, qword [rbx]
cmp dword [rsi], ebp
je 0x140001631
mov r14d, dword [rsi]
jmp 0x140001635
mov r14d, dword [rsi + 0x10]
mov ebp, dword [rsi + 0x10]
add r14, rax
add rbp, rax
jmp 0x140001667
mov rcx, r12
test rax, rax
jns 0x14000164e
movzx edx, word [r14]
jmp 0x140001658
mov rdx, qword [rbx]
add rdx, 2
add rdx, qword [r14]
call r13
add r14, 8
mov qword [rbp], rax
add rbp, 8
mov rax, qword [r14]
test rax, rax
jne 0x140001640
add rsi, 0x14
xor ebp, ebp
cmp dword [rsi + 0xc], ebp
je 0x14000168f
mov r14, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb8]
jmp 0x1400015f0
mov rsi, qword [rbx]
mov r14, rdi
mov r8d, dword [rbx + 8]
mov rdx, rsi
call fcn.140002670
mov dword [rbx + 0xc], eax
mov rax, qword [rdi]
test rax, rax
je 0x14000161b
mov r11, qword [rax + 0x28]
mov r14, rsi
mov r13, qword [rax + 0x20]
movabs rax, 0xffffffff00000000
movdqa xmm0, xmmword [0x140001010]
and r14, rax
movsxd rax, dword [rsi + 0x3c]
movdqa xmm1, xmmword [0x140001020]
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0xb8], r11
movdqu xmmword [rsp + 0x48], xmm1
cmp bp, word [rax + rsi + 6]
jae 0x14000179e
movzx r12d, word [rax + rsi + 6]
add rsi, 0x118
add rsi, rax
xor eax, eax
mov r10d, dword [rsi - 8]
or r10, r14
mov dword [rsp + 0xa0], eax
cmp dword [rsi], eax
je 0x14000178c
mov r9d, dword [rsi + 0x14]
mov edx, dword [rsi]
bt r9d, 0x19
jae 0x14000173a
mov r8d, 0x4000
mov rcx, r10
call r13
jmp 0x140001782
mov ecx, r9d
mov eax, r9d
shr rcx, 0x1d
shr rax, 0x1b
and ecx, 2
and eax, 4
add rcx, rax
mov rax, r9
shr rax, 0x1f
add rcx, rax
mov r8d, dword [rsp + rcx*4 + 0x38]
bts r8d, 9
bt r9d, 0x1a
lea r9, [rsp + 0xa0]
cmovae r8d, dword [rsp + rcx*4 + 0x38]
mov rcx, r10
call r11
test eax, eax
je 0x1400017c8
mov r11, qword [rsp + 0xb8]
xor eax, eax
inc rbp
add rsi, 0x28
cmp rbp, r12
jl 0x14000170d
xor ebp, ebp
mov rdi, qword [rbx]
test rdi, rdi
je 0x140001864
movsxd rax, dword [rdi + 0x3c]
mov rax, qword [rax + rdi + 0xd0]
test eax, eax
je 0x1400017ee
mov ecx, eax
mov rdi, qword [rcx + rdi + 0x18]
test rdi, rdi
je 0x1400017ee
jmp 0x1400017e6
mov dword [rbx + 0x20], 5
xor ebp, ebp
jmp 0x14000161b
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call rax
lea rdi, [rdi + 8]
mov rax, qword [rdi]
test rax, rax
jne 0x1400017d6
cmp dword [rsp + 0xb0], ebp
je 0x140001856
mov rcx, qword [rbx]
test rcx, rcx
je 0x140001828
movsxd rax, dword [rcx + 0x3c]
mov edx, dword [rax + rcx + 0x28]
test edx, edx
je 0x140001828
mov eax, edx
add rax, rcx
jne 0x14000181b
mov dword [rbx + 0x20], 6
jmp 0x140001828
xor r8d, r8d
lea edx, [r8 + 1]
call rax
test eax, eax
jne 0x140001856
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140001864
cmp dword [rbx + 0x1c], ebp
je 0x140001864
mov rcx, qword [rbx]
test rcx, rcx
je 0x140001864
xor edx, edx
mov r8d, 0x8000
call qword [rax + 0x20]
and qword [rbx + 8], 0
mov qword [rbx], rbp
mov dword [rbx + 0x1c], ebp
jmp 0x140001864
mov eax, 1
jmp 0x140001866
mov dword [rbx + 0x20], 2
xor eax, eax
add rsp, 0x60
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret