Function at 0x140125e10
Capabilities:
Access peb ldr_data
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x670]
sub rsp, 0x770
mov rax, qword [0x140188020]
xor rax, rsp
mov qword [rbp + 0x650], rax
cmp dword [rcx + 0x24], 0
mov esi, r9d
mov r14d, dword [rbp + 0x6c0]
mov rbx, r8
mov rdi, rcx
je 0x140125e57
mov eax, 0x40000
jmp 0x1401274ce
cmp byte [rcx + 0x40], 0
je 0x140125e67
mov eax, 0x50000
jmp 0x1401274ce
mov qword [rsp + 0x768], r13
xor r13d, r13d
mov eax, r13d
mov dword [rsp + 0x48], eax
lea ecx, [r13 + 0xc]
cmp qword [rdi], rax
je 0x140125e8d
cmp r14d, 4
cmovne eax, ecx
mov dword [rsp + 0x48], eax
lea rcx, [rbp + 0x440]
sub rcx, rdx
nop word [rax + rax]
movzx eax, word [rdx]
mov word [rcx + rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x140125ea0
movzx ecx, word [rbp + 0x440]
mov qword [rsp + 0x7a8], r12
mov qword [rsp + 0x760], r15
test cx, cx
je 0x1401274b1
lea rax, [rbp + 0x440]
mov edx, 0x2f
nop dword [rax]
cmp cx, 0x5c
jne 0x140125ee9
mov word [rax], dx
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x140125ee0
mov r15d, 8
lea r12, [r15 - 9]
cmp r14d, 4
jne 0x140125f2d
lea rcx, [rbp + 0x440]
mov rax, r12
cmp word [rcx + rax*2 + 2], r13w
lea rax, [rax + 1]
jne 0x140125f10
cmp word [rbp + rax*2 + 0x43e], dx
je 0x140125f2d
mov byte [rsp + 0x40], 1
jmp 0x140125f52
mov dword [rsp + 0x44], r15d
mov byte [rsp + 0x40], r13b
cmp r14d, 4
je 0x140125f52
lea rcx, [rbp + 0x440]
mov byte [rsp + 0x40], r13b
call fcn.140120380
test al, al
je 0x140125f57
mov dword [rsp + 0x44], r13d
cmp r14d, 2
jne 0x140125f6a
mov rdx, rbx
mov rcx, rdi
call fcn.140123c80
jmp 0x140125fa8
cmp r14d, 1
jne 0x140125f80
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call fcn.140124080
jmp 0x140125fa8
cmp r14d, 3
jne 0x140125f96
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call fcn.140124af0
jmp 0x140125fa8
cmp r14d, 4
jne 0x1401274b1
mov rcx, rdi
call fcn.1401250e0
test eax, eax
jne 0x1401274b6
mov cl, 0x7d
mov qword [rbp + 0x3f0], r13
movsx ebx, cl
xor eax, eax
mov byte [rbp - 0x60], cl
mov ecx, ebx
mov byte [rbp - 0x30], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140125fdc
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140125feb
mov edx, 0x9d
call fcn.140128630
imul r11d, ebx, 0x5bd1e995
lea r9, [rbp - 0x5c]
mov r8d, r13d
mov r10, r15
nop dword [rax]
mov ecx, r8d
lea r9, [r9 + 4]
mov eax, r11d
add r8d, 0x5bd1e995
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
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 - 4], eax
sub r10, 1
jne 0x140126000
xor r9d, r9d
lea r8, [rbp - 0x5c]
lea rdx, [rbp - 0x30]
call fcn.14011c9b0
movsx ebx, byte [rbp - 0x60]
mov ecx, ebx
mov qword [rbp - 0x38], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126079
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126088
mov edx, 0x9d
call fcn.140128630
imul r11d, ebx, 0x5bd1e995
lea r9, [rbp - 0x5c]
mov r8d, r13d
mov r10, r15
nop dword [rax]
mov ecx, r8d
lea r9, [r9 + 4]
mov eax, r11d
add r8d, 0x5bd1e995
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
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 - 4], eax
sub r10, 1
jne 0x1401260a0
mov r9d, dword [0x140196874]
lea r8, [rbp - 0x5c]
mov rdx, qword [rbp - 0x38]
call fcn.14011cb00
mov rcx, rax
test rax, rax
jne 0x14012610a
mov rcx, r13
jmp 0x14012610d
mov byte [rax], r13b
lea rdx, [rbp + 0xb8]
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140126120
movzx eax, byte [0x14016dee0]
mov cl, 0x39
xor al, cl
movsx ebx, cl
mov byte [rbp - 0x80], al
movzx eax, byte [0x14016dee1]
xor al, cl
mov byte [rsp + 0x50], cl
mov byte [rbp - 0x7f], al
movzx eax, byte [0x14016dee2]
xor al, cl
mov byte [rbp - 0x7e], al
movzx eax, byte [0x14016dee3]
xor al, cl
mov byte [rbp - 0x7d], al
movzx eax, byte [0x14016dee4]
xor al, cl
mov byte [rbp - 0x7c], al
movzx eax, byte [0x14016dee5]
xor al, cl
mov byte [rbp - 0x7b], al
movzx eax, byte [0x14016dee6]
xor al, cl
mov byte [rbp - 0x7a], al
movzx eax, byte [0x14016dee7]
xor al, cl
mov byte [rbp - 0x79], al
movzx eax, byte [0x14016dee8]
xor al, cl
mov byte [rbp - 0x78], al
movzx eax, byte [0x14016dee9]
xor al, cl
mov byte [rbp - 0x77], al
movzx eax, byte [0x14016deea]
xor al, cl
mov byte [rbp - 0x76], al
movzx eax, byte [0x14016deeb]
xor al, cl
mov byte [rbp - 0x75], al
movzx eax, byte [0x14016deec]
xor al, cl
mov byte [rbp - 0x74], al
movzx eax, byte [0x14016deed]
xor al, cl
mov byte [rbp - 0x73], al
movzx eax, byte [0x14016deee]
xor al, cl
mov byte [rbp - 0x72], al
movzx eax, byte [0x14016deef]
xor al, cl
mov byte [rbp - 0x71], al
movzx eax, byte [0x14016def0]
xor al, cl
mov byte [rbp - 0x70], al
movzx eax, byte [0x14016def1]
xor al, cl
mov byte [rbp - 0x6f], al
movzx eax, byte [0x14016def2]
xor al, cl
mov ecx, ebx
mov byte [rbp - 0x6e], al
xor eax, eax
mov byte [rbp - 0x6d], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126238
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126247
mov edx, 0x9d
call fcn.140128630
imul r11d, ebx, 0x5bd1e995
lea r9, [rsp + 0x54]
mov r8d, r13d
mov r10, r15
nop dword [rax]
mov ecx, r8d
lea r9, [r9 + 4]
mov eax, r11d
add r8d, 0x5bd1e995
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
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 - 4], eax
sub r10, 1
jne 0x140126260
lea r9d, [r10 + 0x13]
lea r8, [rsp + 0x54]
lea rdx, [rbp - 0x80]
call fcn.14011c9b0
movsx ebx, byte [rsp + 0x50]
mov ecx, ebx
mov qword [rsp + 0x78], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401262dd
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401262ec
mov edx, 0x9d
call fcn.140128630
imul r11d, ebx, 0x5bd1e995
lea r9, [rsp + 0x54]
mov r8d, r13d
mov r10, r15
nop
mov ecx, r8d
lea r9, [r9 + 4]
mov eax, r11d
add r8d, 0x5bd1e995
shr eax, 0x18
xor eax, r11d
imul eax, eax, 0x5bd1e995
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 - 4], eax
sub r10, 1
jne 0x140126300
mov r9d, dword [0x140196874]
lea r8, [rsp + 0x54]
mov rdx, qword [rsp + 0x78]
call fcn.14011cb00
mov rsi, rax
test rax, rax
jne 0x14012636c
mov rsi, r13
jmp 0x1401263b0
movdqu xmm0, xmmword [rax]
movsx edx, byte [rsp + 0x50]
mov ecx, 3
movd xmm1, edx
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pxor xmm1, xmm0
movdqu xmmword [rax], xmm1
add rax, 0x10
nop word [rax + rax]
xor byte [rax], dl
lea rax, [rax + 1]
sub rcx, 1
jne 0x1401263a0
mov byte [rsi + 0x13], r13b
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r14, qword [rax]
mov eax, 0x5a4d
cmp qword [r14 + 0x60], r13
je 0x1401264b7
nop dword [rax]
nop word [rax + rax]
mov r11, qword [r14 + 0x30]
mov r14, qword [r14]
test r11, r11
je 0x1401264a9
cmp word [r11], ax
jne 0x1401264b4
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x1401264b4
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x1401264b4
mov r13d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r13, r11
mov ecx, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add rcx, r11
xor r10d, r10d
mov qword [rbp - 0x28], rcx
test ebx, ebx
je 0x1401264a4
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140126498
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rcx + rdx]
test al, al
je 0x140126493
cmp byte [rcx], al
jne 0x140126498
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140126464
mov rcx, qword [rbp - 0x28]
movsxd rax, r10d
movzx ecx, word [rcx + rax*2]
mov eax, dword [r13 + rcx*4]
add rax, r11
xor r13d, r13d
jmp 0x1401264ba
test r8b, r8b
jne 0x14012647b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140126450
mov eax, 0x5a4d
cmp qword [r14 + 0x60], 0
jne 0x1401263e0
xor r13d, r13d
mov rax, r13
mov qword [rsp + 0x38], r13
lea rcx, [rbp + 0x1d8]
mov qword [rsp + 0x30], r13
lea r8, [rbp + 0x440]
mov dword [rsp + 0x28], 0x104
mov r9d, r12d
mov qword [rsp + 0x20], rcx
xor edx, edx
mov ecx, 0xfde9
call rax
lea rax, [rbp + 0x1d8]
inc r12
cmp byte [rax + r12], 0
jne 0x1401264f2
cmp byte [rsp + 0x40], 0
mov qword [rbp + 0x88], r12
je 0x140126684
mov cl, 0x7a
mov word [rbp - 0x30], 0x55
movsx ebx, cl
mov byte [rbp - 0x60], cl
mov ecx, ebx
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126534
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126543
mov edx, 0x9d
call fcn.140128630
imul r10d, ebx, 0x5bd1e995
lea r8, [rbp - 0x5c]
mov edx, r13d
mov r9, r15
nop dword [rax]
nop dword [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r10d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140126560
mov r9d, 1
lea r8, [rbp - 0x5c]
lea rdx, [rbp - 0x30]
call fcn.14011c9b0
movsx ebx, byte [rbp - 0x60]
mov ecx, ebx
mov qword [rbp - 0x38], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401265d8
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401265e7
mov edx, 0x9d
call fcn.140128630
imul r10d, ebx, 0x5bd1e995
lea r8, [rbp - 0x5c]
mov edx, r13d
mov r9, r15
nop dword [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r10d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140126600
mov r9d, dword [0x140196874]
lea r8, [rbp - 0x5c]
mov rdx, qword [rbp - 0x38]
call fcn.14011cb00
mov rdx, rax
test rax, rax
jne 0x140126666
mov rdx, r13
jmp 0x140126670
movzx eax, byte [rbp - 0x60]
xor byte [rdx], al
mov byte [rdx + 1], 0
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
inc qword [rbp + 0x88]
mov cl, 0x39
xor eax, eax
movsx ebx, cl
mov byte [rbp - 0x20], cl
mov ecx, ebx
mov byte [rbp + 0x10], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401266a9
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401266b8
mov edx, 0x9d
call fcn.140128630
imul r10d, ebx, 0x5bd1e995
lea r8, [rbp - 0x1c]
mov edx, r13d
mov r9, r15
nop dword [rax]
mov eax, r10d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r10d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x1401266d0
lea r8, [rbp - 0x1c]
lea rdx, [rbp + 0x10]
call fcn.14011c9b0
movsx ebx, byte [rbp - 0x20]
mov ecx, ebx
mov qword [rbp + 8], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126742
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126751
mov edx, 0x9d
call fcn.140128630
imul r10d, ebx, 0x5bd1e995
lea r8, [rbp - 0x1c]
mov edx, r13d
mov r9, r15
mov eax, r10d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r10d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140126762
mov r9d, dword [0x140196874]
lea r8, [rbp - 0x1c]
mov rdx, qword [rbp + 8]
call fcn.14011cb00
mov rcx, rax
test rax, rax
jne 0x1401267c8
mov rcx, r13
jmp 0x1401267cb
mov byte [rax], 0
lea rdx, [rbp + 0x2dc]
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1401267e0
cmp qword [rdi], 0
mov eax, dword [rdi + 0x90]
mov dword [rbp + 0x78], eax
movzx eax, r15w
mov word [rbp + 0x74], ax
mov qword [rbp + 0x1d0], r13
mov qword [rbp + 0xa0], r13
mov dword [rbp + 0x3e0], 1
mov dword [rbp + 0x3e8], r13d
mov word [rbp + 0xaa], r13w
mov dword [rbp + 0x70], 0x140b17
mov dword [rbp + 0x7c], r13d
je 0x140126849
cmp dword [rbp + 0x6c0], 4
je 0x140126849
mov eax, 9
mov word [rbp + 0x74], ax
mov r12d, dword [rsp + 0x44]
mov word [rbp + 0xac], ax
mov word [rbp + 0x76], r12w
test r12d, r12d
jne 0x140126877
mov ecx, dword [rdi + 0x98]
test ecx, ecx
js 0x140126877
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rbp + 0x80], eax
jmp 0x140126884
mov ecx, dword [rdi + 0x98]
mov dword [rbp + 0x80], r13d
mov eax, dword [rdi + 0x70]
mov r8, rdi
mov rdx, qword [rdi + 0x80]
mov dword [rbp + 0xb0], eax
mov eax, dword [rdi + 0x28]
add eax, dword [rdi + 0x20]
mov dword [rbp + 0xb4], eax
lea rax, [rbp + 0x410]
mov qword [rbp + 0x1c0], rax
lea rax, [rbp + 0x428]
mov qword [rbp + 0x1c8], rax
movzx eax, byte [rdi + 0x80]
mov byte [rbp + 0x415], al
mov rax, rdx
sar rax, 8
mov byte [rbp + 0x416], al
mov rax, rdx
sar rax, 0x10
mov byte [rbp + 0x417], al
movzx eax, byte [rdi + 0x78]
mov byte [rbp + 0x419], al
mov dword [rbp + 0x84], ecx
mov rcx, qword [rdi + 0x78]
mov rax, rcx
sar rdx, 0x18
sar rax, 8
mov byte [rbp + 0x41a], al
mov rax, rcx
sar rax, 0x10
mov byte [rbp + 0x41b], al
movzx eax, byte [rdi + 0x88]
sar rcx, 0x18
mov byte [rbp + 0x41d], al
mov byte [rbp + 0x41c], cl
mov rcx, qword [rdi + 0x88]
mov rax, rcx
mov dword [rbp + 0x410], 0xd5455
sar rax, 8
mov byte [rbp + 0x41e], al
mov rax, rcx
sar rcx, 0x18
mov byte [rbp + 0x414], 7
movsd xmm0, qword [rbp + 0x410]
mov byte [rbp + 0x420], cl
lea rcx, [rbp + 0x70]
sar rax, 0x10
movsd qword [rbp + 0x428], xmm0
mov word [rbp + 0xa8], r13w
mov qword [rbp + 0x90], 0x11
mov qword [rbp + 0x98], 9
mov byte [rbp + 0x418], dl
mov byte [rbp + 0x41f], al
mov byte [rbp + 0x430], dl
mov byte [rbp + 0x42a], 5
call fcn.14011f580
test eax, eax
je 0x1401269f0
cmp byte [rdi + 0xb0], 0
je 0x1401269d3
mov rdx, qword [rdi + 0xa8]
test rdx, rdx
je 0x1401269d3
call fcn.140128850
mov eax, dword [rdi + 0x9c]
mov dword [rdi + 0x98], eax
mov qword [rdi + 0xa8], r13
mov eax, 0x400
jmp 0x1401274b6
mov eax, dword [rbp + 0x90]
mov ecx, dword [rbp + 0x88]
add eax, 0x1e
add ecx, eax
mov eax, dword [rdi + 0x24]
add dword [rdi + 0x28], ecx
test eax, eax
je 0x140126a40
cmp byte [rdi + 0xb0], 0
je 0x140126a28
mov rdx, qword [rdi + 0xa8]
test rdx, rdx
je 0x140126a28
call fcn.140128850
mov eax, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x9c]
mov dword [rdi + 0x98], ecx
mov qword [rdi + 0xa8], r13
jmp 0x1401274b6
mov dword [rdi + 0x44], 0x12345678
lea rsi, [0x140168c70]
mov dword [rdi + 0x48], 0x23456789
mov dword [rdi + 0x4c], 0x34567890
mov r8, qword [rdi]
test r8, r8
je 0x140126aad
movzx eax, byte [r8]
test al, al
je 0x140126aad
mov edx, dword [rdi + 0x44]
xor rax, rdx
movzx ecx, al
shr edx, 8
xor edx, dword [rsi + rcx*4]
movzx eax, dl
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
mov dword [rdi + 0x44], edx
mov edx, dword [rdi + 0x4c]
inc eax
mov ecx, eax
shr rcx, 0x18
mov dword [rdi + 0x48], eax
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], edx
add r8, 1
jne 0x140126a64
cmp byte [0x14018df60], 0
jne 0x140126edc
movzx eax, byte [0x14016dd48]
mov cl, 0x29
xor al, cl
movsx ebx, cl
mov byte [rbp - 0x80], al
movzx eax, byte [0x14016dd49]
xor al, cl
mov byte [rsp + 0x50], cl
mov byte [rbp - 0x7f], al
movzx eax, byte [0x14016dd4a]
xor al, cl
mov byte [rbp - 0x7e], al
movzx eax, byte [0x14016dd4b]
xor al, cl
mov byte [rbp - 0x7d], al
movzx eax, byte [0x14016dd4c]
xor al, cl
mov byte [rbp - 0x7c], al
movzx eax, byte [0x14016dd4d]
xor al, cl
mov byte [rbp - 0x7b], al
movzx eax, byte [0x14016dd4e]
xor al, cl
mov byte [rbp - 0x7a], al
movzx eax, byte [0x14016dd4f]
xor al, cl
mov byte [rbp - 0x79], al
movzx eax, byte [0x14016dd50]
xor al, cl
mov byte [rbp - 0x78], al
movzx eax, byte [0x14016dd51]
xor al, cl
mov byte [rbp - 0x77], al
movzx eax, byte [0x14016dd52]
xor al, cl
mov byte [rbp - 0x76], al
movzx eax, byte [0x14016dd53]
xor al, cl
mov ecx, ebx
mov byte [rbp - 0x75], al
xor eax, eax
mov byte [rbp - 0x74], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126b70
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126b7f
mov edx, 0x9d
call fcn.140128630
imul r10d, ebx, 0x5bd1e995
lea r8, [rsp + 0x54]
mov edx, r13d
mov r9, r15
mov eax, r10d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r10d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140126b91
mov r9d, 0xc
lea r8, [rsp + 0x54]
lea rdx, [rbp - 0x80]
call fcn.14011c9b0
movsx ebx, byte [rsp + 0x50]
mov ecx, ebx
mov qword [rsp + 0x78], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140126c0c
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140126c1b
mov edx, 0x9d
call fcn.140128630
imul r9d, ebx, 0x5bd1e995
lea r8, [rsp + 0x54]
mov edx, r13d
nop word [rax + rax]
mov eax, r9d
lea r8, [r8 + 4]
shr eax, 0x18
xor eax, r9d
imul eax, eax, 0x5bd1e995
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r15, 1
jne 0x140126c30
mov r9d, dword [0x140196874]
lea r8, [rsp + 0x54]
mov rdx, qword [rsp + 0x78]
call fcn.14011cb00
mov r15, rax
test rax, rax
jne 0x140126c98
mov r15, r13
jmp 0x140126cb2
movzx edx, byte [rsp + 0x50]
mov ecx, 0xc
xor byte [rax], dl
lea rax, [rax + 1]
sub rcx, 1
jne 0x140126ca2
mov byte [r15 + 0xc], cl
lea rdx, str.GetDesktopWindow
lea rcx, [rbp + 0x20]
call fcn.140102670
mov rcx, rax
call fcn.14001d480
mov rcx, qword gs:[0x60]
mov r14, rax
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140126dbc
nop dword [rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140126dae
mov r12d, 0x5a4d
cmp word [r11], r12w
jne 0x140126e8c
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140126e8c
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140126e8c
mov r12d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
xor ecx, ecx
mov r13d, dword [rax + 0x24]
add r12, r11
mov ebx, dword [rax + 0x18]
add r9, r11
add r13, r11
mov r10d, ecx
test ebx, ebx
je 0x140126dae
nop dword [rax + rax]
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140126da2
mov rdx, r14
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x140126d9d
cmp byte [rcx], al
jne 0x140126da2
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140126d74
movsxd rax, r10d
movzx ecx, word [r13 + rax*2]
mov eax, dword [r12 + rcx*4]
add rax, r11
jmp 0x140126dbf
test r8b, r8b
jne 0x140126d8b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140126d60
cmp qword [rsi + 0x60], 0
jne 0x140126cf0
xor r13d, r13d
mov rax, r13
mov r12d, 0x5a4d
xor ebx, ebx
call rax
mov rcx, qword gs:[0x60]
mov r13, rax
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
cmp qword [rsi + 0x60], 0
je 0x140126ebf
nop dword [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140126ea6
cmp word [r11], r12w
jne 0x140126eba
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140126eba
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140126eba
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r12d, dword [rax + 0x24]
add r9, r11
add r12, r11
mov r10d, ebx
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x140126ea6
mov eax, dword [r9]
xor r8b, r8b
add rax, r11
cmp byte [rax], r8b
je 0x140126e9a
mov rdx, r15
sub rdx, rax
movzx ecx, byte [rax + rdx]
test cl, cl
je 0x140126e95
cmp byte [rax], cl
jne 0x140126e9a
inc rax
mov r8b, 1
cmp byte [rax], 0
jne 0x140126e64
movsxd rax, r10d
movzx ecx, word [r12 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140126ec1
xor ebx, ebx
mov eax, ebx
jmp 0x140126dc7
test r8b, r8b
jne 0x140126e7b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140126e50
cmp qword [rsi + 0x60], 0
je 0x140126ebf
xor ebx, ebx
mov r12d, 0x5a4d
jmp 0x140126df0
mov rax, rbx
jmp 0x140126ec1
xor eax, eax
call rax
xor eax, r13d
mov ecx, eax
call fcn.140137ce8
mov r12d, dword [rsp + 0x44]
lea rsi, [0x140168c70]
xor r13d, r13d
mov rbx, r13
nop
call fcn.140137cbc
sar eax, 7
mov byte [rbp + rbx + 0x400], al
inc rbx
cmp rbx, 0xc
jl 0x140126ee0
mov eax, dword [rbp + 0x78]
mov rbx, r13
shr eax, 8
mov byte [rbp + 0x40b], al
nop word [rax + rax]
mov r8d, dword [rdi + 0x4c]
mov edx, dword [rdi + 0x44]
mov r11d, r8d
movsx r9, byte [rbp + rbx + 0x400]
mov ecx, edx
xor rcx, r9
shr edx, 8
movzx eax, cl
and r8d, 0xfffd
or r8d, 2
xor edx, dword [rsi + rax*4]
mov r10d, edx
movzx eax, dl
add eax, dword [rdi + 0x48]
movsx rdx, byte [rbp + rbx + 0x401]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov ecx, eax
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
mov eax, r8d
xor eax, 1
imul eax, r8d
xor r11d, dword [rsi + rcx*4]
mov ecx, r10d
movsx r8, byte [rbp + rbx + 0x402]
xor rcx, rdx
mov dword [rdi + 0x4c], r11d
and r11d, 0xfffd
shr r10d, 8
or r11d, 2
shr eax, 8
xor al, r9b
mov byte [rbp + rbx + 0x400], al
movzx eax, cl
xor r10d, dword [rsi + rax*4]
mov dword [rdi + 0x44], r10d
movzx eax, r10b
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov r9d, dword [rdi + 0x4c]
mov ecx, eax
shr rcx, 0x18
movzx eax, r9b
xor rcx, rax
shr r9d, 8
mov eax, r11d
xor eax, 1
imul eax, r11d
xor r9d, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], r9d
and r9d, 0xfffd
or r9d, 2
shr eax, 8
xor al, dl
mov edx, dword [rdi + 0x44]
mov byte [rbp + rbx + 0x401], al
mov ecx, edx
xor rcx, r8
shr edx, 8
movzx eax, cl
xor edx, dword [rsi + rax*4]
mov dword [rdi + 0x44], edx
movzx eax, dl
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov r10d, dword [rdi + 0x4c]
mov ecx, eax
movzx eax, r10b
shr rcx, 0x18
xor rcx, rax
shr r10d, 8
xor r10d, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], r10d
mov edx, dword [rdi + 0x44]
mov eax, r9d
xor eax, 1
mov ecx, edx
imul eax, r9d
and r10d, 0xfffd
shr edx, 8
or r10d, 2
shr eax, 8
xor al, r8b
movsx r8, byte [rbp + rbx + 0x403]
mov byte [rbp + rbx + 0x402], al
xor rcx, r8
movzx eax, cl
xor edx, dword [rsi + rax*4]
mov dword [rdi + 0x44], edx
movzx eax, dl
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov r11d, dword [rdi + 0x4c]
mov ecx, eax
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
mov eax, r10d
xor eax, 1
imul eax, r10d
xor r11d, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], r11d
and r11d, 0xfffd
mov edx, dword [rdi + 0x44]
or r11d, 2
mov ecx, edx
shr edx, 8
shr eax, 8
xor al, r8b
movsx r8, byte [rbp + rbx + 0x404]
mov byte [rbp + rbx + 0x403], al
xor rcx, r8
movzx eax, cl
xor edx, dword [rsi + rax*4]
mov dword [rdi + 0x44], edx
movzx eax, dl
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov r9d, dword [rdi + 0x4c]
mov ecx, eax
movzx eax, r9b
shr rcx, 0x18
xor rcx, rax
shr r9d, 8
mov eax, r11d
xor eax, 1
imul eax, r11d
xor r9d, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], r9d
and r9d, 0xfffd
mov edx, dword [rdi + 0x44]
or r9d, 2
mov ecx, edx
shr edx, 8
shr eax, 8
xor al, r8b
movsx r8, byte [rbp + rbx + 0x405]
mov byte [rbp + rbx + 0x404], al
xor rcx, r8
movzx eax, cl
xor edx, dword [rsi + rax*4]
mov dword [rdi + 0x44], edx
movzx eax, dl
add eax, dword [rdi + 0x48]
imul eax, eax, 0x8088405
inc eax
mov dword [rdi + 0x48], eax
mov edx, dword [rdi + 0x4c]
mov ecx, eax
movzx eax, dl
shr rcx, 0x18
xor rcx, rax
shr edx, 8
mov eax, r9d
xor eax, 1
imul eax, r9d
xor edx, dword [rsi + rcx*4]
mov dword [rdi + 0x4c], edx
shr eax, 8
xor al, r8b
mov byte [rbp + rbx + 0x405], al
add rbx, 6
cmp rbx, 0xc
jl 0x140126f10
mov rax, qword [rdi]
mov esi, dword [rbp + 0x6c0]
test rax, rax
je 0x1401271da
cmp esi, 4
je 0x1401271da
mov r8d, 0xc
lea rdx, [rbp + 0x400]
mov rcx, rdi
call fcn.1401231b0
add dword [rdi + 0x28], 0xc
mov rax, qword [rdi]
mov ebx, r13d
test rax, rax
je 0x1401271ed
cmp esi, 4
je 0x1401271ed
mov byte [rdi + 0x41], 1
jmp 0x1401271fa
mov byte [rdi + 0x41], 0
cmp esi, 4
je 0x140127298
cmp r12d, 8
jne 0x140127213
lea rdx, [rbp + 0x70]
mov rcx, rdi
call fcn.140125ab0
mov ebx, eax
jmp 0x14012729f
test r12d, r12d
jne 0x14012729f
mov r8d, 0x4000
lea rdx, [rdi + 0xcc]
mov rcx, rdi
mov r14d, r13d
call fcn.1401256a0
mov ebx, eax
test eax, eax
je 0x140127279
nop word [rax + rax]
cmp ebx, 0xffffffff
je 0x140127279
mov r8d, ebx
lea rdx, [rdi + 0xcc]
mov rcx, rdi
call fcn.1401231b0
cmp eax, ebx
jne 0x14012728b
mov r8d, 0x4000
lea rdx, [rdi + 0xcc]
mov rcx, rdi
add r14d, ebx
call fcn.1401256a0
mov ebx, eax
test eax, eax
jne 0x140127240
mov esi, dword [rbp + 0x6c0]
mov ebx, r13d
mov dword [rdi + 0xc8], r14d
jmp 0x14012729f
mov esi, dword [rbp + 0x6c0]
mov ebx, 0x60000
jmp 0x14012729f
mov dword [rdi + 0xc8], r13d
cmp byte [rdi + 0xb0], 0
mov byte [rdi + 0x41], 0
je 0x1401272bd
mov rdx, qword [rdi + 0xa8]
test rdx, rdx
je 0x1401272bd
call fcn.140128850
mov ecx, dword [rdi + 0xc8]
add dword [rdi + 0x28], ecx
mov eax, dword [rdi + 0x24]
mov edx, dword [rdi + 0x9c]
mov qword [rdi + 0xa8], r13
mov dword [rdi + 0x98], edx
test eax, eax
jne 0x1401274b6
test ebx, ebx
jne 0x1401269e6
add ecx, dword [rsp + 0x48]
cmp dword [rbp + 0x80], ecx
mov eax, dword [rdi + 0xa0]
sete r8b
mov dword [rbp + 0x7c], eax
mov dword [rbp + 0x80], ecx
mov dword [rbp + 0x84], edx
cmp byte [rdi + 0x2c], bl
je 0x140127381
cmp qword [rdi], 0
je 0x14012731f
cmp esi, 4
jne 0x140127381
movzx eax, word [rbp + 0x74]
mov word [rbp + 0x76], r12w
test al, 1
jne 0x140127338
mov ecx, 0xfff7
and ax, cx
mov word [rbp + 0x74], ax
mov edx, dword [rbp + 0xb4]
mov rcx, rdi
sub edx, dword [rdi + 0x20]
mov word [rbp + 0xac], ax
call fcn.140123490
test al, al
je 0x140127377
mov r8, rdi
lea rcx, [rbp + 0x70]
call fcn.14011f580
test eax, eax
jne 0x1401269e6
mov edx, dword [rdi + 0x28]
mov rcx, rdi
call fcn.140123490
test al, al
jne 0x1401273bd
mov eax, 0x2000000
jmp 0x1401274b6
cmp word [rbp + 0x76], r12w
jne 0x1401274aa
test r12d, r12d
jne 0x14012739a
test r8b, r8b
je 0x1401274aa
mov r8, rdi
lea rcx, [rbp + 0x70]
call fcn.14011f900
test eax, eax
jne 0x1401269e6
movzx eax, word [rbp + 0xac]
add dword [rdi + 0x28], 0x10
mov word [rbp + 0x74], ax
mov eax, dword [rdi + 0x24]
test eax, eax
jne 0x1401274b6
mov rcx, qword [rbp + 0x98]
call fcn.14012bbf0
mov r8, qword [rbp + 0x98]
mov rcx, rax
mov rdx, qword [rbp + 0x1c8]
mov rbx, rax
call fcn.14012dc00
mov ecx, 0x388
mov qword [rbp + 0x1c8], rbx
call fcn.14012bbb4
mov r8, rax
mov rcx, rax
lea rax, [rbp + 0x70]
mov edx, 7
nop dword [rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm1, xmmword [rax - 0x70]
movups xmmword [rcx - 0x70], xmm1
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x60], xmm0
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x50], xmm1
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x40], xmm0
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x30], xmm1
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x20], xmm0
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x140127410
mov rax, qword [rax]
mov qword [rcx], rax
mov rcx, qword [rdi + 0x60]
test rcx, rcx
jne 0x14012747a
mov qword [rdi + 0x60], r8
xor eax, eax
jmp 0x1401274b6
mov rax, qword [rcx + 0x380]
test rax, rax
je 0x14012749f
nop word [rax + rax]
mov rcx, rax
mov rax, qword [rax + 0x380]
test rax, rax
jne 0x140127490
mov qword [rcx + 0x380], r8
xor eax, eax
jmp 0x1401274b6
mov eax, 0x4000000
jmp 0x1401274b6
mov eax, 0x10000
mov r12, qword [rsp + 0x7a8]
mov r15, qword [rsp + 0x760]
mov r13, qword [rsp + 0x768]
mov rcx, qword [rbp + 0x650]
xor rcx, rsp
call fcn.14012b8f0
add rsp, 0x770
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret