Function at 0x140036040
Capabilities:
Access peb ldr_data
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x328]
sub rsp, 0x428
mov rax, qword [0x140181020]
xor rax, rsp
mov qword [rbp + 0x310], rax
mov rax, r9
mov qword [rsp + 0x50], rax
mov rsi, r8
mov qword [rbp - 0x68], r8
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x130], r8
mov qword [rbp + 0x138], rax
xor r13d, r13d
mov dword [rsp + 0x40], r13d
mov cl, 0x4b
mov byte [rbp + 0x140], cl
mov word [rbp + 0x170], 0x6117
xor eax, eax
mov byte [rbp + 0x172], al
movsx ebx, cl
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1400360ce
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x1400360dd
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
mov r8d, r13d
lea r9, [rbp + 0x144]
mov r10d, 8
nop dword [rax]
nop dword [rax + rax]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul ecx, eax, 0x5bd1e995
xor ecx, r8d
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x140036100
mov eax, 2
nop dword [rax + rax]
inc eax
test al, 0xf
jne 0x140036150
mov qword [0x140187190], r13
lea edi, [rax + 8]
mov edx, edi
call fcn.140052d80
mov rbx, rax
mov qword [0x140187190], rax
test rax, rax
jne 0x14003617b
mov rbx, r13
jmp 0x1400361bd
mov dword [0x14018719c], edi
mov dword [0x140187198], 2
mov dword [rax], edi
mov eax, dword [0x140187198]
mov dword [rbx + 4], eax
movzx eax, word [rbp + 0x170]
mov word [rbx + 8], ax
mov edx, dword [0x14018719c]
add edx, 0xfffffff8
lea rcx, [rbx + 8]
lea r9, [rbp + 0x144]
mov r8b, 1
call fcn.140052470
mov qword [rbp + 0x168], rbx
movsx ebx, byte [rbp + 0x140]
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1400361e3
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x1400361f2
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
mov r8d, r13d
lea r9, [rbp + 0x144]
mov r10d, 8
nop dword [rax]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
mov ecx, r8d
xor ecx, eax
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x140036210
mov r9d, dword [0x14018719c]
lea r8, [rbp + 0x144]
mov rdx, qword [rbp + 0x168]
call fcn.1400525a0
mov rdx, rax
test rax, rax
jne 0x140036280
mov rdx, r13
jmp 0x140036290
movzx eax, byte [rbp + 0x140]
xor byte [rdx], al
xor byte [rdx + 1], al
mov byte [rdx + 2], 0
mov r8, qword [rsi + 0x10]
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp byte [rdx + rcx], 0
jne 0x1400362a0
movabs rax, 0x7fffffffffffffff
sub rax, r8
cmp rax, rcx
jb 0x1400375fb
mov r9, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x1400362cc
mov r9, qword [rsi]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x1b0]
call fcn.140025d40
mov dword [rsp + 0x40], 0x200
lea r12, [rbp + 0x1b0]
cmp qword [rbp + 0x1c8], 0x10
cmovae r12, qword [rbp + 0x1b0]
lea rcx, [rbp + 0xf0]
call fcn.14003a230
mov rbx, rax
movsx edi, byte [rax]
mov ecx, edi
call fcn.140014160
add edi, eax
cmp edi, 0xfffffff0
jg 0x140036330
mov edx, 0x84
call fcn.140052d80
cmp edi, 0xffffffb7
jg 0x14003633f
mov edx, 0x9d
call fcn.140052d80
imul edi, edi, 0x5bd1e995
mov r9d, r13d
lea r8, [rbx + 4]
mov r10, r8
mov r11d, 8
nop word [rax + rax]
mov eax, edi
shr eax, 0x18
xor eax, edi
imul ecx, eax, 0x5bd1e995
xor ecx, r9d
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r10], eax
add r9d, 0x5bd1e995
lea r10, [r10 + 4]
sub r11, 1
jne 0x140036360
mov r9d, dword [0x14018719c]
mov rdx, qword [rbx + 0x28]
call fcn.1400525a0
mov rdi, rax
test rax, rax
jne 0x1400363c2
xor ebx, ebx
mov edi, ebx
jmp 0x1400363e4
mov rcx, rdi
mov edx, 0xe
nop word [rax + rax]
movzx eax, byte [rbx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400363d0
mov byte [rdi + 0xe], dl
xor ebx, ebx
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
mov eax, 0x5a4d
cmp qword [rsi + 0x60], 0
je 0x1400364cb
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x1400364c4
cmp word [r11], ax
jne 0x1400364cb
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x1400364cb
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x1400364cb
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, ebx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x1400364bf
nop word [rax + rax]
xor r8b, r8b
mov ecx, dword [r9]
add rcx, r11
cmp byte [rcx], r8b
je 0x1400364b3
mov rdx, rdi
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x1400364ae
cmp byte [rcx], al
jne 0x1400364b3
mov r8b, 1
inc rcx
cmp byte [rcx], 0
jne 0x140036484
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
xor ebx, ebx
jmp 0x1400364ce
test r8b, r8b
jne 0x14003649b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140036470
mov eax, 0x5a4d
xor ebx, ebx
jmp 0x1400363fd
mov rax, rbx
lea rdx, [rbp + 0x1d0]
mov rcx, r12
call rax
mov qword [rbp + 0x38], rax
cmp rax, 0xffffffffffffffff
jne 0x140036510
lea rcx, [rbp + 0x1b0]
call fcn.140005a50
nop
mov rcx, qword [rbp - 0x68]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x50]
call fcn.140005a50
xor al, al
jmp 0x1400375d2
mov esi, dword [rsp + 0x40]
or esi, 1
lea rdx, [0x14015f230]
lea rcx, [rbp + 0x178]
call fcn.140028dd0
mov rcx, rax
call fcn.14001c7f0
lea rcx, [rbp + 0x1fc]
sub rax, rcx
nop dword [rax]
movzx r8d, byte [rcx]
movzx edx, byte [rcx + rax]
sub r8d, edx
jne 0x140036554
inc rcx
test edx, edx
jne 0x140036540
test r8d, r8d
je 0x14003675d
or esi, 2
mov cl, 0x6a
mov byte [rsp + 0x60], cl
mov word [rbp - 0x70], 0x4444
xor eax, eax
mov byte [rbp - 0x6e], al
movsx ebx, cl
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x14003658c
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x14003659b
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
xor r13d, r13d
mov r8d, r13d
lea r9, [rsp + 0x64]
lea r10d, [r13 + 8]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
mov ecx, r8d
xor ecx, eax
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x1400365b1
mov eax, 2
nop
inc eax
test al, 0xf
jne 0x140036600
mov qword [0x140187190], r13
lea edi, [rax + 8]
mov edx, edi
call fcn.140052d80
mov rbx, rax
mov qword [0x140187190], rax
test rax, rax
jne 0x14003662b
mov rbx, r13
jmp 0x140036668
mov dword [0x14018719c], edi
mov dword [0x140187198], 2
mov dword [rax], edi
mov eax, dword [0x140187198]
mov dword [rbx + 4], eax
movzx eax, word [rbp - 0x70]
mov word [rbx + 8], ax
mov edx, dword [0x14018719c]
add edx, 0xfffffff8
lea rcx, [rbx + 8]
lea r9, [rsp + 0x64]
mov r8b, 1
call fcn.140052470
mov qword [rbp - 0x78], rbx
movsx ebx, byte [rsp + 0x60]
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140036689
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x140036698
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
xor ebx, ebx
mov r8d, ebx
lea r9, [rsp + 0x64]
lea r10d, [rbx + 8]
nop dword [rax]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
mov ecx, r8d
xor ecx, eax
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x1400366b0
mov r9d, dword [0x14018719c]
lea r8, [rsp + 0x64]
mov rdx, qword [rbp - 0x78]
call fcn.1400525a0
mov rdx, rax
test rax, rax
jne 0x140036720
mov rdx, rbx
jmp 0x14003672d
movzx eax, byte [rsp + 0x60]
xor byte [rdx], al
xor byte [rdx + 1], al
mov byte [rdx + 2], bl
lea rax, [rbp + 0x1fc]
sub rdx, rax
nop word [rax + rax]
movzx r8d, byte [rax]
movzx ecx, byte [rax + rdx]
sub r8d, ecx
jne 0x140036754
inc rax
test ecx, ecx
jne 0x140036740
test r8d, r8d
je 0x14003675d
xor al, al
jmp 0x14003675f
mov al, 1
test sil, 2
je 0x140036768
and esi, 0xfffffffd
and esi, 0xfffffffe
mov dword [rsp + 0x40], esi
test al, al
jne 0x14003729d
lea rdx, [0x14015f238]
lea rcx, [rbp + 0x50]
call fcn.14003a3a0
mov rcx, rax
call fcn.14001c7f0
mov rdx, rax
mov r10, qword [rbp - 0x68]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rax + rcx], 0
jne 0x1400367a1
movabs r14, 0x7fffffffffffffff
mov rax, r14
sub rax, r8
cmp rax, rcx
jb 0x1400375f5
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x1400367d0
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x30]
call fcn.140025d40
or esi, 4
lea rdx, [rbp + 0x1fc]
lea rcx, [rbp - 0x30]
call fcn.140005750
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x140], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp + 0x150], xmm0
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or esi, 8
lea rcx, [rbp - 0x30]
call fcn.140005a50
test byte [rbp + 0x1d0], 0x10
je 0x140036aeb
lea rax, [rsp + 0x60]
mov qword [rsp + 0x58], rax
mov cl, 0x65
mov byte [rbp - 0x10], cl
mov word [rbp + 0x20], 0x39
movsx ebx, cl
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140036870
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x14003687f
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
xor r13d, r13d
mov r8d, r13d
lea r9, [rbp - 0xc]
lea r10d, [r13 + 8]
nop dword [rax]
nop dword [rax + rax]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul ecx, eax, 0x5bd1e995
xor ecx, r8d
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x1400368a0
mov eax, 1
nop dword [rax + rax]
inc eax
test al, 0xf
jne 0x1400368f0
mov qword [0x140187190], r13
lea edi, [rax + 8]
mov edx, edi
call fcn.140052d80
mov rbx, rax
mov qword [0x140187190], rax
test rax, rax
jne 0x14003691b
mov rbx, r13
jmp 0x140036956
mov dword [0x14018719c], edi
mov dword [0x140187198], 1
mov dword [rax], edi
mov eax, dword [0x140187198]
mov dword [rbx + 4], eax
movzx eax, byte [rbp + 0x20]
mov byte [rbx + 8], al
mov edx, dword [0x14018719c]
add edx, 0xfffffff8
lea rcx, [rbx + 8]
lea r9, [rbp - 0xc]
mov r8b, 1
call fcn.140052470
mov qword [rbp + 0x18], rbx
movsx ebx, byte [rbp - 0x10]
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140036976
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x140036985
mov edx, 0x9d
call fcn.140052d80
imul r11d, ebx, 0x5bd1e995
mov r8d, r13d
lea r9, [rbp - 0xc]
mov r10d, 8
nop dword [rax]
mov eax, r11d
shr eax, 0x18
xor eax, r11d
imul ecx, eax, 0x5bd1e995
xor ecx, r8d
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r9], eax
add r8d, 0x5bd1e995
lea r9, [r9 + 4]
sub r10, 1
jne 0x1400369a0
mov r9d, dword [0x14018719c]
lea r8, [rbp - 0xc]
mov rdx, qword [rbp + 0x18]
call fcn.1400525a0
mov rdx, rax
test rax, rax
jne 0x140036a10
mov rdx, r13
jmp 0x140036a1a
movzx eax, byte [rbp - 0x10]
xor byte [rdx], al
mov byte [rdx + 1], r13b
mov r10, qword [rsp + 0x50]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [rdx + rcx], r13b
jne 0x140036a30
mov rax, r14
sub rax, r8
cmp rax, rcx
jb 0x140037601
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x140036a55
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x178]
call fcn.140025d40
or esi, 0x20
lea rdx, [rbp + 0x1fc]
lea rcx, [rbp + 0x178]
call fcn.140005750
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r13
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or esi, 0x40
mov dword [rsp + 0x40], esi
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x50]
call fcn.140005930
nop
lea r9, [rsp + 0x60]
mov r8, rax
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x30]
call fcn.140036040
nop
jmp 0x140037282
xorps xmm0, xmm0
movups xmmword [rbp + 0x178], xmm0
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x190], rbx
xor r8d, r8d
lea rdx, [0x14015f218]
lea rcx, [rbp + 0x178]
call fcn.140005e70
nop
lea rcx, [rbp + 0x50]
call fcn.14003a4e0
mov rcx, rax
call fcn.14001c7f0
mov rdx, rax
mov r10, qword [rsp + 0x50]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp byte [rax + rcx], 0
jne 0x140036b40
mov rax, r14
sub rax, r8
cmp rax, rcx
jb 0x140037613
mov r9, r10
cmp qword [r10 + 0x18], 0x10
jb 0x140036b65
mov r9, qword [r10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
lea rcx, [rsp + 0x60]
call fcn.140025d40
bts esi, 7
mov dword [rsp + 0x40], esi
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x178]
call fcn.1400057f0
nop
lea rcx, [rsp + 0x60]
call fcn.140005a50
lea rdx, [rbp + 0x1fc]
lea rcx, [rbp + 0x178]
call fcn.140005750
lea rdx, [rbp + 0x140]
movups xmm0, xmmword [rbp - 0x60]
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
cmovae rdx, qword [rbp + 0x40]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], rbx
mov qword [rbp + 8], rbx
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140036bf0
lea rcx, [rbp - 0x10]
call fcn.140005e70
lea rax, [rbp - 0x10]
mov qword [rsp + 0x58], rax
lea r13, [rbp - 0x10]
cmp qword [rbp + 8], 0x10
cmovae r13, qword [rbp - 0x10]
lea rcx, [rbp + 0x50]
call fcn.14003a920
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 0x140036d05
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140036c42
mov edi, 0x5a4d
cmp word [r11], di
jne 0x140036d00
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140036d00
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140036d00
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
mov r10d, ebx
mov r9, rbx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140036cf9
nop dword [rax + rax]
xor dl, dl
mov ecx, dword [rdi + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140036cee
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140036cea
cmp byte [rcx], al
jne 0x140036cee
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140036cc3
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor ebx, ebx
jmp 0x140036d08
test dl, dl
jne 0x140036cda
inc r10d
inc r9
cmp r10d, ebx
jb 0x140036cb0
xor ebx, ebx
jmp 0x140036c42
mov r10, rbx
jmp 0x140036d0d
mov r10, rbx
mov edi, 0x5a4d
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9d, 0xffffffff
mov r8, r13
xor edx, edx
mov ecx, 0xfde9
call r10
mov dword [rsp + 0x48], eax
xor r8d, r8d
movsxd rdx, eax
lea rcx, [rsp + 0x60]
call fcn.14001e3a0
or dword [rsp + 0x40], 0x100
lea r13, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae r13, qword [rsp + 0x60]
lea rax, [rbp - 0x10]
cmp qword [rbp + 8], 0x10
cmovae rax, qword [rbp - 0x10]
mov qword [rbp - 0x60], rax
lea rcx, [rbp + 0xa0]
call fcn.14003aa90
mov rcx, rax
call fcn.14001d6f0
mov r12, 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 0x140036e62
nop
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140036e4c
cmp word [r11], di
jne 0x140036e5d
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140036e5d
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140036e5d
lea rax, [r11 + rcx]
mov r14d, dword [rax + 0x1c]
add r14, r11
mov edi, dword [rax + 0x20]
add rdi, r11
mov r15d, dword [rax + 0x24]
add r15, r11
mov r10d, ebx
mov r9, rbx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140036e4a
xor dl, dl
mov ecx, dword [rdi + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140036e3f
mov r8, r12
sub r8, rcx
movzx eax, byte [r8 + rcx]
test al, al
je 0x140036e3b
cmp byte [rcx], al
jne 0x140036e3f
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140036e14
movzx eax, word [r15 + r9*2]
mov r10d, dword [r14 + rax*4]
add r10, r11
xor ebx, ebx
jmp 0x140036e65
test dl, dl
jne 0x140036e2b
inc r10d
inc r9
cmp r10d, ebx
jb 0x140036e01
xor ebx, ebx
cmp qword [rsi + 0x60], 0
je 0x140036e62
mov edi, 0x5a4d
jmp 0x140036da0
mov r10, rbx
jmp 0x140036e6a
mov r10, rbx
mov edi, 0x5a4d
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov r9d, 0xffffffff
mov r8, qword [rbp - 0x60]
xor edx, edx
mov ecx, 0xfde9
call r10
nop
lea rcx, [rbp - 0x10]
call fcn.140005a50
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
mov qword [rsp + 0x58], rax
lea rdx, [rbp + 0x178]
cmp qword [rbp + 0x190], 0x10
cmovae rdx, qword [rbp + 0x178]
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], rbx
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140036ee0
lea rcx, [rbp - 0x50]
call fcn.140005e70
lea rax, [rbp - 0x50]
mov qword [rbp + 0x40], rax
lea r13, [rbp - 0x50]
cmp qword [rbp - 0x38], 0x10
cmovae r13, qword [rbp - 0x50]
lea rcx, [rbp + 0xa0]
call fcn.14003a920
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 0x140037002
nop
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140036fec
cmp word [r11], di
jne 0x140036ffd
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140036ffd
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140036ffd
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
mov r10d, ebx
mov r9, rbx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140036fea
xor dl, dl
mov ecx, dword [rdi + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x140036fdf
mov r8, r14
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140036fdb
cmp byte [rcx], al
jne 0x140036fdf
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140036fb4
movzx eax, word [r12 + r9*2]
mov r10d, dword [r15 + rax*4]
add r10, r11
xor ebx, ebx
jmp 0x140037005
test dl, dl
jne 0x140036fcb
inc r10d
inc r9
cmp r10d, ebx
jb 0x140036fa1
xor ebx, ebx
cmp qword [rsi + 0x60], 0
je 0x140037002
mov edi, 0x5a4d
jmp 0x140036f40
mov r10, rbx
jmp 0x14003700a
mov r10, rbx
mov edi, 0x5a4d
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9d, 0xffffffff
mov r8, r13
xor edx, edx
mov ecx, 0xfde9
call r10
mov dword [rsp + 0x48], eax
xor r8d, r8d
movsxd rdx, eax
lea rcx, [rbp - 0x30]
call fcn.14001e3a0
or dword [rsp + 0x40], 0x10
lea r13, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae r13, qword [rbp - 0x30]
lea rax, [rbp - 0x50]
cmp qword [rbp - 0x38], 0x10
cmovae rax, qword [rbp - 0x50]
mov qword [rbp - 0x60], rax
lea rcx, [rbp + 0x50]
call fcn.14003aa90
mov rcx, rax
call fcn.14001d6f0
mov r12, 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 0x14003715b
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x14003714a
cmp word [r11], di
jne 0x14003715b
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14003715b
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14003715b
lea rax, [r11 + rcx]
mov r14d, dword [rax + 0x1c]
add r14, r11
mov edi, dword [rax + 0x20]
add rdi, r11
mov r15d, dword [rax + 0x24]
add r15, r11
mov r10d, ebx
mov r9, rbx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140037148
xor dl, dl
mov ecx, dword [rdi + r9*4]
add rcx, r11
cmp byte [rcx], dl
je 0x14003713d
mov r8, r12
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x140037139
cmp byte [rcx], al
jne 0x14003713d
mov dl, 1
inc rcx
cmp byte [rcx], 0
jne 0x140037114
movzx eax, word [r15 + r9*2]
mov r10d, dword [r14 + rax*4]
add r10, r11
jmp 0x14003715e
test dl, dl
jne 0x14003712b
inc r10d
inc r9
cmp r10d, ebx
jb 0x140037101
xor ebx, ebx
cmp qword [rsi + 0x60], 0
je 0x14003715b
mov edi, 0x5a4d
jmp 0x1400370a0
mov r10, rbx
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov r9d, 0xffffffff
mov r8, qword [rbp - 0x60]
xor edx, edx
mov ecx, 0xfde9
call r10
nop
lea rcx, [rbp - 0x50]
call fcn.140005a50
lea rax, [rbp - 0x30]
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
cmovae rax, rcx
mov r10, qword [rbp + 0x28]
test r10, r10
jne 0x1400371ad
mov eax, 0x10000
jmp 0x1400371de
cmp dword [r10], 2
je 0x1400371ba
mov eax, 0x80000
jmp 0x1400371de
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 - 0x18]
mov rcx, qword [rbp - 0x30]
mov dword [0x140186cd0], eax
mov ebx, dword [rsp + 0x40]
and ebx, 0xffffffef
cmp rdx, 8
jb 0x140037223
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003721e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140037607
call fcn.14012f66c
xor r13d, r13d
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], r13w
btr ebx, 8
mov dword [rsp + 0x40], ebx
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140037282
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003727c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003760d
call fcn.14012f66c
nop
lea rcx, [rbp + 0x178]
call fcn.140005a50
nop
lea rcx, [rbp + 0x140]
call fcn.140005a50
jmp 0x1400372a0
xor r13d, r13d
lea rcx, [rbp + 0x50]
call fcn.14003a620
mov rdi, rax
movsx ebx, byte [rax]
mov ecx, ebx
call fcn.140014160
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1400372c7
mov edx, 0x84
call fcn.140052d80
cmp ebx, 0xffffffb7
jg 0x1400372d6
mov edx, 0x9d
call fcn.140052d80
imul ebx, ebx, 0x5bd1e995
mov r9d, r13d
lea r8, [rdi + 4]
mov r10, r8
mov r11d, 8
nop dword [rax]
mov eax, ebx
shr eax, 0x18
xor eax, ebx
imul eax, eax, 0x5bd1e995
mov ecx, r9d
xor ecx, eax
imul edx, ecx, 0x286a90b9
xor edx, 0xaa2a7357
mov eax, edx
shr eax, 0xd
xor eax, edx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r10], eax
add r9d, 0x5bd1e995
lea r10, [r10 + 4]
sub r11, 1
jne 0x1400372f0
mov r9d, dword [0x14018719c]
mov rdx, qword [rdi + 0x28]
call fcn.1400525a0
mov r14, rax
test rax, rax
jne 0x140037355
xor ebx, ebx
mov r14d, ebx
jmp 0x140037375
mov rcx, r14
mov edx, 0xd
nop dword [rax]
movzx eax, byte [rdi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140037360
mov byte [r14 + 0xd], dl
xor ebx, ebx
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
cmp qword [rsi + 0x60], 0
je 0x140037465
xor r13d, r13d
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140037459
mov r15d, 0x5a4d
cmp word [r11], r15w
jne 0x14003756c
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14003756c
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14003756c
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, r13d
mov r9, r13
mov edi, dword [rax + 0x18]
test edi, edi
je 0x140037459
nop word [rax + rax]
xor dl, dl
mov eax, dword [rbx + r9*4]
add rax, r11
cmp byte [rax], dl
je 0x14003744e
mov r8, r14
sub r8, rax
movzx ecx, byte [r8 + rax]
test cl, cl
je 0x14003744a
cmp byte [rax], cl
jne 0x14003744e
mov dl, 1
inc rax
cmp byte [rax], r13b
jne 0x140037423
movzx eax, word [r12 + r9*2]
mov r8d, dword [r15 + rax*4]
add r8, r11
xor ebx, ebx
jmp 0x140037468
test dl, dl
jne 0x14003743a
inc r10d
inc r9
cmp r10d, edi
jb 0x140037410
cmp qword [rsi + 0x60], r13
jne 0x1400373a0
xor ebx, ebx
mov r8, rbx
mov r15d, 0x5a4d
lea rdx, [rbp + 0x1d0]
mov r12, qword [rbp + 0x38]
mov rcx, r12
call r8
test eax, eax
jne 0x140036510
lea rdx, [0x14015f250]
lea rcx, [rbp + 0x50]
call fcn.14003a780
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]
cmp qword [rdi + 0x60], 0
je 0x1400375a5
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x140037587
cmp word [r11], r15w
jne 0x14003759b
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14003759b
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x1400375a5
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, ebx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140037587
nop
xor r8b, r8b
mov ecx, dword [r9]
add rcx, r11
cmp byte [rcx], r8b
je 0x14003757b
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x140037576
cmp byte [rcx], al
jne 0x14003757b
mov r8b, 1
inc rcx
cmp byte [rcx], 0
jne 0x140037544
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov r13d, dword [r14 + rcx*4]
add r13, r11
jmp 0x1400375a8
xor ebx, ebx
mov r8d, ebx
jmp 0x14003746e
test r8b, r8b
jne 0x14003755b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140037530
cmp qword [rdi + 0x60], 0
je 0x1400375a5
xor ebx, ebx
mov r15d, 0x5a4d
jmp 0x1400374d0
mov qword [rsp + 0x48], rbx
mov r13, rbx
jmp 0x1400375a8
xor r13d, r13d
mov rcx, r12
call r13
nop
lea rcx, [rbp + 0x1b0]
call fcn.140005a50
nop
mov rcx, qword [rbp - 0x68]
call fcn.140005a50
nop
mov rcx, qword [rsp + 0x50]
call fcn.140005a50
mov al, 1
mov rcx, qword [rbp + 0x310]
xor rcx, rsp
call fcn.14012f610
add rsp, 0x428
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140005200
nop
call fcn.140005200
nop
call fcn.140005200
nop
call fcn.140136294
nop
call fcn.140136294
int3
call fcn.140005200
int3