Function at 0x140015510
Capabilities:
Access peb ldr_data
Get kernel32 base address
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x400]
sub rsp, 0x500
mov rax, qword [0x140181020]
xor rax, rsp
mov qword [rbp + 0x3f0], rax
mov rax, r9
mov qword [rsp + 0x50], rax
mov rbx, rdx
mov qword [rsp + 0x60], rdx
mov qword [rbp - 0x58], rcx
mov qword [rbp + 0x200], rdx
mov qword [rbp + 0x208], rax
xor r13d, r13d
mov dword [rsp + 0x40], r13d
lea rcx, [rbp + 0x180]
call fcn.14001e7e0
mov rcx, rax
call fcn.14001cad0
mov rdx, rax
mov r8, qword [rbx + 0x10]
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x140015590
movabs rax, 0x7fffffffffffffff
sub rax, r8
cmp rax, rcx
jb 0x14001649f
mov r9, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1400155bc
mov r9, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x248]
call fcn.140025d40
mov dword [rsp + 0x40], 0x40
lea r12, [rbp + 0x248]
cmp qword [rbp + 0x260], 0x10
cmovae r12, qword [rbp + 0x248]
lea rcx, [rbp + 0x1c0]
call fcn.14001e920
mov rcx, rax
call fcn.14001d820
mov rsi, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rdi, qword [rcx]
mov eax, 0x5a4d
cmp qword [rdi + 0x60], 0
je 0x1400156e4
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x140015626
cmp word [r11], ax
jne 0x1400156e4
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x1400156e4
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x1400156e4
lea rax, [r11 + rcx]
mov r14d, dword [rax + 0x1c]
add r14, r11
mov r9d, dword [rax + 0x20]
add r9, r11
mov r15d, dword [rax + 0x24]
add r15, r11
mov r10d, r13d
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140015621
nop dword [rax + rax]
xor r8b, r8b
mov ecx, dword [r9]
add rcx, r11
cmp byte [rcx], r8b
je 0x1400156d3
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rcx + rdx]
test al, al
je 0x1400156ce
cmp byte [rcx], al
jne 0x1400156d3
mov r8b, 1
inc rcx
cmp byte [rcx], 0
jne 0x1400156a4
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
xor edi, edi
jmp 0x1400156e8
test r8b, r8b
jne 0x1400156bb
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140015690
jmp 0x140015621
xor edi, edi
mov eax, edi
lea rdx, [rbp + 0x2b0]
mov rcx, r12
call rax
mov r13, rax
mov qword [rbp - 0x50], rax
cmp rax, 0xffffffffffffffff
jne 0x14001572a
lea rcx, [rbp + 0x248]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x60]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x50]
call fcn.140005a50
xor al, al
jmp 0x14001644a
mov r15d, 0x16
movabs r14, 0x8000000000000000
mov ebx, dword [rsp + 0x40]
or ebx, 1
lea rcx, [rbp - 0x28]
call fcn.14001ea90
mov rcx, rax
call fcn.14001c7f0
lea rcx, [rbp + 0x2dc]
sub rax, rcx
nop dword [rax]
movzx r8d, byte [rcx]
movzx edx, byte [rcx + rax]
sub r8d, edx
jne 0x140015774
inc rcx
test edx, edx
jne 0x140015760
test r8d, r8d
je 0x1400157bd
or ebx, 2
lea rcx, [rbp + 0x210]
call fcn.14001ebd0
mov rcx, rax
call fcn.14001cad0
lea rcx, [rbp + 0x2dc]
sub rax, rcx
nop word [rax + rax]
movzx r8d, byte [rcx]
movzx edx, byte [rcx + rax]
sub r8d, edx
jne 0x1400157b4
inc rcx
test edx, edx
jne 0x1400157a0
test r8d, r8d
je 0x1400157bd
xor al, al
jmp 0x1400157bf
mov al, 1
test bl, 2
je 0x1400157c7
and ebx, 0xfffffffd
and ebx, 0xfffffffe
mov dword [rsp + 0x40], ebx
test al, al
jne 0x14001621e
lea rcx, [rbp + 0x20]
call fcn.14001ed10
mov rcx, rax
call fcn.14001c7f0
mov rdx, rax
mov r10, qword [rsp + 0x60]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x140015800
movabs r12, 0x7fffffffffffffff
mov rax, r12
sub rax, r8
cmp rax, rcx
jb 0x140016499
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x14001582f
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x28]
call fcn.140025d40
or ebx, 4
lea rdx, [rbp + 0x2dc]
lea rcx, [rbp - 0x28]
call fcn.140005750
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x270], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rbp + 0x280], xmm0
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or ebx, 8
lea rcx, [rbp - 0x28]
call fcn.140005a50
test byte [rbp + 0x2b0], 0x10
je 0x140015a60
lea rax, [rbp + 0x58]
mov qword [rsp + 0x58], rax
lea rcx, [rbp + 0xa0]
call fcn.14001ee50
mov rcx, rax
call fcn.14001c7f0
mov rdx, rax
mov r10, qword [rsp + 0x50]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rax + rcx], 0
jne 0x1400158d0
mov rax, r12
sub rax, r8
cmp rax, rcx
jb 0x1400164b7
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x1400158f5
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x78]
call fcn.140025d40
bts ebx, 8
lea rdx, [rbp + 0x2dc]
lea rcx, [rbp + 0x78]
call fcn.140005750
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rdi
mov qword [rbp + 0x70], rdi
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x68], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts ebx, 7
mov dword [rsp + 0x40], ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rdi
lea rsi, [rbp + 0x270]
movups xmm1, xmmword [rsp + 0x68]
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
cmovae rsi, qword [rbp + 0x10]
movq rdi, xmm1
cmp rdi, r12
ja 0x1400164b1
mov qword [rbp - 0x30], 0xf
cmp rdi, 0x10
jae 0x1400159b4
mov qword [rbp - 0x38], rdi
movups xmm0, xmmword [rsi]
movups xmmword [rbp - 0x48], xmm0
jmp 0x140015a3b
mov rbx, rdi
or rbx, 0xf
cmp rbx, r12
jbe 0x1400159c9
mov rbx, r12
lea rax, [r14 + 0x27]
jmp 0x1400159eb
cmp rbx, 0x16
cmovb rbx, r15
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140015a0d
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400164ab
mov rcx, rax
call fcn.14012f630
mov rcx, rax
test rax, rax
je 0x1400164a5
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140015a1f
test rcx, rcx
je 0x140015a19
call fcn.14012f630
jmp 0x140015a1f
xor r13d, r13d
mov eax, r13d
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rbx
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.140131900
nop
lea r9, [rbp + 0x58]
mov r8b, 1
lea rdx, [rbp - 0x48]
mov rcx, qword [rbp - 0x58]
call fcn.140015510
nop
lea rcx, [rbp + 0x78]
call fcn.140005a50
xor edi, edi
jmp 0x14001620e
xorps xmm0, xmm0
movups xmmword [rbp + 0x210], xmm0
mov qword [rbp + 0x220], rdi
mov qword [rbp + 0x228], rdi
xor r8d, r8d
lea rdx, [0x14015f218]
lea rcx, [rbp + 0x210]
call fcn.140005e70
nop
lea rcx, [rbp + 0x20]
call fcn.14001ef90
mov rcx, rax
call fcn.14001c7f0
mov rdx, rax
mov r10, qword [rsp + 0x50]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rax + rcx], 0
jne 0x140015ab3
mov rax, r12
sub rax, r8
cmp rax, rcx
jb 0x1400164c9
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x140015ad8
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x28]
call fcn.140025d40
bts ebx, 9
mov dword [rsp + 0x40], ebx
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x210]
call fcn.1400057f0
nop
lea rcx, [rbp - 0x28]
call fcn.140005a50
lea rdx, [rbp + 0x2dc]
lea rcx, [rbp + 0x210]
call fcn.140005750
lea rdx, [rbp + 0x270]
movups xmm0, xmmword [rsp + 0x68]
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
cmovae rdx, qword [rbp + 0x10]
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], rdi
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140015b60
lea rcx, [rbp - 0x78]
call fcn.140005e70
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rax
lea r13, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae r13, qword [rbp - 0x78]
lea rcx, [rbp + 0xe0]
call fcn.14001e670
mov rcx, rax
call fcn.14001d6f0
mov r14, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140015c75
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140015bb5
mov ebx, 0x5a4d
cmp word [r11], bx
jne 0x140015c70
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140015c70
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140015c70
lea rax, [r11 + rcx]
mov r15d, dword [rax + 0x1c]
add r15, r11
mov ebx, dword [rax + 0x20]
add rbx, r11
mov r12d, dword [rax + 0x24]
add r12, r11
mov r10d, edi
mov r9, rdi
mov edi, dword [rax + 0x18]
test edi, edi
je 0x140015c69
nop
xor dl, dl
mov ecx, dword [rbx + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140015c5e
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140015c5a
cmp byte [rcx], al
jne 0x140015c5e
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140015c33
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor edi, edi
jmp 0x140015c78
test dl, dl
jne 0x140015c4a
inc r10d
inc r9
cmp r10d, edi
jb 0x140015c20
xor edi, edi
jmp 0x140015bb5
mov r10, rdi
jmp 0x140015c7d
mov r10, rdi
mov ebx, 0x5a4d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, 0xffffffff
mov r8, r13
xor edx, edx
mov ecx, 0xfde9
call r10
mov dword [rsp + 0x44], eax
xor r8d, r8d
movsxd rdx, eax
lea rcx, [rbp - 0x28]
call fcn.14001e3a0
or dword [rsp + 0x40], 0x10
lea r13, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r13, qword [rbp - 0x28]
lea rax, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae rax, qword [rbp - 0x78]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x130]
call fcn.14001e670
mov rcx, rax
call fcn.14001d6f0
mov r14, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140015dd2
nop dword [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140015dbc
cmp word [r11], bx
jne 0x140015dcd
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140015dcd
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140015dcd
lea rax, [r11 + rcx]
mov r15d, dword [rax + 0x1c]
add r15, r11
mov ebx, dword [rax + 0x20]
add rbx, r11
mov r12d, dword [rax + 0x24]
add r12, r11
mov r10d, edi
mov r9, rdi
mov edi, dword [rax + 0x18]
test edi, edi
je 0x140015dba
xor dl, dl
mov ecx, dword [rbx + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140015daf
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140015dab
cmp byte [rcx], al
jne 0x140015daf
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140015d84
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor edi, edi
jmp 0x140015dd5
test dl, dl
jne 0x140015d9b
inc r10d
inc r9
cmp r10d, edi
jb 0x140015d71
xor edi, edi
cmp qword [rsi + 0x60], 0
je 0x140015dd2
mov ebx, 0x5a4d
jmp 0x140015d10
mov r10, rdi
jmp 0x140015dda
mov r10, rdi
mov ebx, 0x5a4d
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov r9d, 0xffffffff
mov r8, qword [rsp + 0x48]
xor edx, edx
mov ecx, 0xfde9
call r10
nop
lea rcx, [rbp - 0x78]
call fcn.140005a50
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rax, qword [rbp - 0x28]
mov qword [rsp + 0x58], rax
lea rdx, [rbp + 0x210]
cmp qword [rbp + 0x228], 0x10
cmovae rdx, qword [rbp + 0x210]
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rdi
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140015e50
lea rcx, [rsp + 0x68]
call fcn.140005e70
lea rax, [rsp + 0x68]
mov qword [rbp + 0x10], rax
lea r13, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae r13, qword [rsp + 0x68]
lea rcx, [rbp + 0x130]
call fcn.14001e670
mov rcx, rax
call fcn.14001d6f0
mov r14, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140015f82
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140015f6c
cmp word [r11], bx
jne 0x140015f7d
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140015f7d
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140015f7d
lea rax, [r11 + rcx]
mov r15d, dword [rax + 0x1c]
add r15, r11
mov ebx, dword [rax + 0x20]
add rbx, r11
mov r12d, dword [rax + 0x24]
add r12, r11
mov r10d, edi
mov r9, rdi
mov edi, dword [rax + 0x18]
test edi, edi
je 0x140015f6a
xor dl, dl
mov ecx, dword [rbx + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140015f5f
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140015f5b
cmp byte [rcx], al
jne 0x140015f5f
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140015f34
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor edi, edi
jmp 0x140015f85
test dl, dl
jne 0x140015f4b
inc r10d
inc r9
cmp r10d, edi
jb 0x140015f21
xor edi, edi
cmp qword [rsi + 0x60], 0
je 0x140015f82
mov ebx, 0x5a4d
jmp 0x140015ec0
mov r10, rdi
jmp 0x140015f8a
mov r10, rdi
mov ebx, 0x5a4d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, 0xffffffff
mov r8, r13
xor edx, edx
mov ecx, 0xfde9
call r10
mov dword [rsp + 0x44], eax
xor r8d, r8d
movsxd rdx, eax
lea rcx, [rbp + 0x20]
call fcn.14001e3a0
or dword [rsp + 0x40], 0x20
lea r13, [rbp + 0x20]
cmp qword [rbp + 0x38], 8
cmovae r13, qword [rbp + 0x20]
lea rax, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0xe0]
call fcn.14001e670
mov rcx, rax
call fcn.14001d6f0
mov r14, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x1400160df
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x1400160cc
cmp word [r11], bx
jne 0x1400160dd
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x1400160dd
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x1400160dd
lea rax, [r11 + rcx]
mov r15d, dword [rax + 0x1c]
add r15, r11
mov edi, dword [rax + 0x20]
add rdi, r11
mov r12d, dword [rax + 0x24]
add r12, r11
xor ecx, ecx
mov r10d, ecx
mov r9d, ecx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x1400160cc
xor dl, dl
mov ecx, dword [rdi + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x1400160c1
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x1400160bd
cmp byte [rcx], al
jne 0x1400160c1
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140016096
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor edi, edi
jmp 0x1400160e2
test dl, dl
jne 0x1400160ad
inc r10d
inc r9
cmp r10d, ebx
jb 0x140016083
cmp qword [rsi + 0x60], 0
je 0x1400160dd
mov ebx, 0x5a4d
jmp 0x140016020
xor edi, edi
mov r10, rdi
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov r9d, 0xffffffff
mov r8, qword [rsp + 0x48]
xor edx, edx
mov ecx, 0xfde9
call r10
nop
lea rcx, [rsp + 0x68]
call fcn.140005a50
lea rax, [rbp + 0x20]
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x38]
cmp rdx, 8
cmovae rax, rcx
mov r10, qword [rbp - 0x58]
test r10, r10
jne 0x140016133
mov eax, 0x10000
jmp 0x140016164
cmp dword [r10], 2
je 0x140016140
mov eax, 0x80000
jmp 0x140016164
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov r8, qword [rsp + 0x58]
mov rdx, rax
mov rcx, qword [r10 + 8]
call fcn.140032660
mov rdx, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x20]
mov dword [0x140186cd0], eax
mov ebx, dword [rsp + 0x40]
and ebx, 0xffffffdf
cmp rdx, 8
jb 0x1400161a9
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400161a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400164bd
call fcn.14012f66c
mov qword [rbp + 0x30], rdi
mov qword [rbp + 0x38], 7
mov word [rbp + 0x20], di
and ebx, 0xffffffef
mov dword [rsp + 0x40], ebx
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140016201
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400161fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400164c3
call fcn.14012f66c
nop
lea rcx, [rbp + 0x210]
call fcn.140005a50
nop
lea rcx, [rbp + 0x270]
call fcn.140005a50
mov r13, qword [rbp - 0x50]
lea rcx, [rbp + 0x270]
call fcn.14001f0d0
mov rcx, rax
call fcn.14001d290
mov r14, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140016315
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140016309
mov ebx, 0x5a4d
cmp word [r11], bx
jne 0x140016310
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140016310
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140016310
lea rax, [r11 + rcx]
mov r15d, dword [rax + 0x1c]
add r15, r11
mov ebx, dword [rax + 0x20]
add rbx, r11
mov r12d, dword [rax + 0x24]
add r12, r11
mov r10d, edi
mov r9, rdi
mov edi, dword [rax + 0x18]
test edi, edi
je 0x140016309
nop word [rax + rax]
xor dl, dl
mov eax, dword [rbx + r9*4]
add rax, r11
cmp byte [rax], dl
je 0x1400162fe
mov r8, r14
sub r8, rax
movzx ecx, byte [rax + r8]
test cl, cl
je 0x1400162fa
cmp byte [rax], cl
jne 0x1400162fe
mov dl, 1
inc rax
cmp byte [rax], 0
jne 0x1400162d3
movzx eax, word [r12 + r9*2]
mov r8d, dword [r15 + rax*4]
add r8, r11
xor edi, edi
jmp 0x140016318
test dl, dl
jne 0x1400162ea
inc r10d
inc r9
cmp r10d, edi
jb 0x1400162c0
xor edi, edi
jmp 0x140016249
mov r8, rdi
jmp 0x14001631d
mov r8, rdi
mov ebx, 0x5a4d
lea rdx, [rbp + 0x2b0]
mov rcx, r13
call r8
test eax, eax
jne 0x14001572a
lea rdx, [0x14015f250]
lea rcx, [rbp + 0xa0]
call fcn.14001f230
mov rcx, rax
call fcn.14001c8d0
mov rsi, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rdi, qword [rcx]
xor r13d, r13d
cmp qword [rdi + 0x60], r13
je 0x14001641e
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x140016489
cmp word [r11], bx
jne 0x14001641e
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14001641e
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14001641e
lea rax, [r11 + rcx]
mov r14d, dword [rax + 0x1c]
add r14, r11
mov r9d, dword [rax + 0x20]
add r9, r11
mov r15d, dword [rax + 0x24]
add r15, r11
mov r10d, r13d
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140016489
nop dword [rax + rax]
xor r8b, r8b
mov ecx, dword [r9]
add rcx, r11
cmp byte [rcx], r8b
je 0x140016479
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rcx + rdx]
test al, al
je 0x140016474
cmp byte [rcx], al
jne 0x140016479
mov r8b, 1
inc rcx
cmp byte [rcx], r13b
jne 0x1400163f8
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov r13d, dword [r14 + rcx*4]
add r13, r11
mov rcx, qword [rbp - 0x50]
call r13
nop
lea rcx, [rbp + 0x248]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x60]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x50]
call fcn.140005a50
mov al, 1
mov rcx, qword [rbp + 0x3f0]
xor rcx, rsp
call fcn.14012f610
mov rbx, qword [rsp + 0x550]
add rsp, 0x500
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r8b, r8b
jne 0x14001640f
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x1400163e0
cmp qword [rdi + 0x60], r13
je 0x14001641e
mov ebx, 0x5a4d
jmp 0x140016380
call fcn.140005200
nop
call fcn.140005200
nop
call fcn.140136294
int3
call fcn.140005160
int3
call fcn.140005200
nop
call fcn.140005200
nop
call fcn.140136294
nop
call fcn.140136294
int3
call fcn.140005200
int3