Function at 0x18001eed0
Capabilities:
Encrypt data using speck

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x3c8
mov eax, 0xdd06
mov word [rsp + 0x210], ax
movabs rax, 0xb4c901840a21e
mov qword [rsp + 0x1a0], rax
movzx eax, word [0x1800c6300]
mov byte [rsp + 0x68], al
mov eax, 0x913
mov word [rsp + 0x7c], ax
mov eax, dword [0x1800c630c]
mov word [rsp + 0x74], ax
movzx eax, byte [0x1800c61c7]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xc0], 0x7a
mov dword [rsp + 0x9c], 0x586d6bd
mov dword [rsp + 0x98], 0xca46
movzx eax, word [0x1800c62c8]
cwde
mov dword [rsp + 0x94], eax
mov byte [rsp + 0x62], 0x10
mov eax, 0xcd35a3a8
mov qword [rsp + 0xb8], rax
movzx eax, byte [0x1800c62aa]
mov byte [rsp + 0x60], al
mov eax, 0xa150
mov word [rsp + 0x6c], ax
movsx ax, byte [0x1800c61c6]
mov word [rsp + 0x90], ax
mov eax, 0x3605
mov word [rsp + 0x78], ax
movzx eax, word [0x1800c62c0]
mov word [rsp + 0x88], ax
movzx eax, word [0x1800c6310]
mov word [rsp + 0x80], ax
movsx ax, byte [0x1800c61db]
mov word [rsp + 0x70], ax
mov rax, qword [0x1800c6328]
mov byte [rsp + 0x61], al
mov eax, dword [0x1800c6294]
cdqe
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xac], 0xb44ac79e
mov eax, 0x614c
mov word [rsp + 0x84], ax
movabs rax, 0x5c70fb446e341
mov qword [rsp + 0x310], rax
movzx eax, word [0x1800c62dc]
mov byte [rsp + 0xf4], al
mov dword [rsp + 0x288], 0x63dd847d
mov dword [rsp + 0x28c], 0x8c5c6a3c
movzx eax, byte [0x1800c6212]
mov byte [rsp + 0xf3], al
mov dword [rsp + 0x290], 0x26
mov byte [rsp + 0xf5], 0xc6
mov byte [rsp + 0x100], 0x75
mov byte [rsp + 0x12c], 0x47
movzx eax, byte [0x1800c6212]
mov byte [rsp + 0xf0], al
movsx ax, byte [0x1800c61c6]
mov word [rsp + 0x20c], ax
mov qword [rsp + 0x318], 0x43
mov byte [rsp + 0xf1], 0xe4
mov dword [rsp + 0x294], 0xa79e
movzx eax, word [0x1800c6300]
mov word [rsp + 0x208], ax
movzx eax, byte [0x1800c62a8]
mov byte [rsp + 0xf2], al
movsx eax, byte [0x1800c61c6]
movzx ecx, byte [rsp + 0x62]
sub eax, ecx
movsx ecx, byte [0x1800c61c6]
sub ecx, eax
mov eax, ecx
mov byte [0x1800c61c6], al
mov eax, dword [0x18020f330]
mov dword [rsp + 0xf8], eax
lea rax, [rsp + 0x338]
lea rcx, str._x_0x_08x__s:_u
mov rdi, rax
mov rsi, rcx
mov ecx, 0x26
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x338]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [0x1800c6207], al
mov eax, dword [rsp + 0xf8]
add eax, 0x13c
mov dword [rsp + 0x298], eax
mov eax, dword [rsp + 0xf8]
add eax, 0x2fe
mov dword [rsp + 0x204], eax
mov eax, dword [rsp + 0xf8]
add eax, 0x47
mov dword [rsp + 0x1c0], eax
movzx eax, word [0x1800c62c0]
movzx ecx, word [rsp + 0x7c]
cmp eax, ecx
jl 0x18001f17c
mov dword [rsp + 0x19c], 1
jmp 0x18001f187
mov dword [rsp + 0x19c], 0
movzx eax, word [0x1800c62c0]
cmp eax, 0x34
jl 0x18001f1a0
mov dword [rsp + 0x198], 1
jmp 0x18001f1ab
mov dword [rsp + 0x198], 0
mov eax, dword [rsp + 0x198]
cmp dword [rsp + 0x19c], eax
jge 0x18001f1c0
jmp 0x18001f247
movsx eax, word [0x1800c62fc]
test eax, eax
je 0x18001f1ea
movzx eax, byte [rsp + 0x61]
dec al
mov byte [rsp + 0x61], al
movzx eax, byte [0x1800c6213]
add eax, 0xd4
mov byte [0x1800c628f], al
jmp 0x18001f247
cmp dword [rsp + 0x98], 0
je 0x18001f208
imul rax, qword [rsp + 0x1a0], 0x46525662
mov dword [0x1800c62b0], eax
jmp 0x18001f247
xor eax, eax
cmp eax, 0x1a
je 0x18001f247
movzx eax, byte [0x1800c62aa]
test eax, eax
je 0x18001f22a
movzx eax, byte [0x1800c623e]
mov dword [rsp + 0x134], eax
jmp 0x18001f237
movzx eax, word [rsp + 0x78]
cwde
mov dword [rsp + 0x134], eax
movsxd rax, dword [rsp + 0x134]
mov qword [rsp + 0x1a0], rax
mov eax, dword [0x18020f330]
mov dword [rsp + 0xfc], eax
movzx eax, byte [0x1800c623f]
movsx eax, al
shl eax, 4
mov dword [0x1800c62ec], eax
mov eax, dword [rsp + 0xfc]
add eax, 0x250
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x98]
shl eax, 7
mov byte [0x1800c6207], al
mov eax, dword [rsp + 0xfc]
add eax, 0x1e7
mov dword [rsp + 0x29c], eax
movzx eax, byte [rsp + 0x62]
sub eax, 0xe437
cdqe
mov rcx, qword [rsp + 0xe0]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0xfc]
add eax, 0x189
mov dword [rsp + 0x1c8], eax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x118], eax
mov eax, dword [rsp + 0x118]
add eax, 0x1cb
mov dword [rsp + 0x1d4], eax
movabs rax, 0xcec72bbaf33f8
mov rcx, qword [0x1800c6310]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x118]
add eax, 0x206
mov dword [rsp + 0x158], eax
mov eax, dword [rsp + 0x9c]
not eax
imul eax, eax, 0x20
mov ecx, dword [0x1800c6318]
not ecx
sub eax, ecx
mov byte [0x1800c6206], al
movzx eax, word [rsp + 0x7c]
movzx ecx, word [rsp + 0x70]
movsx ecx, cx
lea eax, [rcx + rax + 0x65]
mov word [rsp + 0x70], ax
mov eax, dword [rsp + 0x118]
add eax, 2
mov dword [rsp + 0x1d0], eax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x104], eax
movzx eax, byte [0x1800c623e]
add eax, 0xaef1d7ce
mov byte [rsp + 0x61], al
movsx rax, byte [0x1800c6211]
mov rcx, qword [rsp + 0xa0]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0xa0]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x104]
add eax, 4
mov dword [rsp + 0x2a0], eax
movzx eax, byte [0x1800c6206]
movsx rax, al
add rax, qword [0x1800c6298]
mov byte [0x1800c61c7], al
mov rax, qword [rsp + 0xb8]
dec rax
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x104]
add eax, 0x3c0
mov dword [rsp + 0x1d8], eax
mov eax, dword [rsp + 0x104]
add eax, 0x280
mov dword [rsp + 0x130], eax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x108], eax
movzx eax, byte [0x1800c6213]
mov rcx, qword [0x1800c62d0]
cmp rax, rcx
jne 0x18001f444
mov rax, qword [rsp + 0xc0]
shr rax, 4
mov byte [rsp + 0x60], al
jmp 0x18001f46a
movzx eax, word [rsp + 0x7c]
test eax, eax
je 0x18001f46a
movzx eax, byte [rsp + 0x68]
movzx eax, al
movabs rcx, 0x5d3614cf3d4e3
imul rax, rcx
mov word [0x1800c62fc], ax
mov eax, dword [rsp + 0x108]
add eax, 0xa
mov dword [rsp + 0x2a4], eax
movzx eax, word [0x1800c62cc]
movabs rcx, 0x9b78e131522d1
imul rax, rcx
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x108]
add eax, 0xe2
mov dword [rsp + 0x200], eax
mov eax, dword [rsp + 0x108]
add eax, 0x16ac
mov dword [rsp + 0x2a8], eax
movzx eax, word [rsp + 0x7c]
test eax, eax
je 0x18001f4c8
jmp 0x18001f508
xor eax, eax
cmp eax, 0xff2f
je 0x18001f508
movzx eax, byte [0x1800c6206]
movsx rax, al
imul rax, qword [rsp + 0xa0]
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
imul rax, rcx
mov qword [rsp + 0xa0], rax
movzx eax, byte [0x1800c6211]
dec al
mov byte [0x1800c6211], al
mov eax, dword [rsp + 0x200]
add eax, 0xeaaf
xor eax, 0xebf5
mov ecx, dword [rsp + 0x204]
mov edx, 0x226
sub edx, ecx
mov ecx, edx
mov edx, dword [rsp + 0x1c0]
sub edx, 0x226
xor ecx, edx
imul ecx, ecx, 0
add eax, ecx
mov dword [rsp + 0x1c4], eax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x10c], eax
mov eax, dword [rsp + 0x10c]
add eax, 0x282
mov dword [rsp + 0x15c], eax
mov byte [0x1800c6211], 3
mov rax, qword [0x1800c62f0]
sub rax, 0xc83b
mov word [0x1800c62f8], ax
movzx eax, byte [0x1800c6211]
mov byte [rsp + 0xc8], al
cmp byte [rsp + 0xc8], 0
je 0x18001f5c6
cmp byte [rsp + 0xc8], 1
je 0x18001f638
cmp byte [rsp + 0xc8], 2
je 0x18001f650
cmp byte [rsp + 0xc8], 3
je 0x18001f685
jmp 0x18001f6cd
mov eax, 1
imul rax, rax, 0xd
lea rcx, [0x1802883a0]
movzx eax, byte [rcx + rax]
movzx ecx, word [rsp + 0x84]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x84], ax
movsx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18001f604
mov dword [rsp + 0x138], 1
jmp 0x18001f60f
mov dword [rsp + 0x138], 0
movzx eax, word [rsp + 0x7c]
movzx ecx, word [rsp + 0x80]
add ecx, dword [rsp + 0x138]
add ecx, eax
mov eax, ecx
movzx ecx, word [rsp + 0x7c]
imul eax, ecx
mov byte [rsp + 0x68], al
jmp 0x18001f6cd
movzx eax, word [rsp + 0x70]
cwde
mov ecx, dword [rsp + 0xac]
lea eax, [rax + rcx + 0x5c]
mov word [rsp + 0x70], ax
jmp 0x18001f6cd
movsxd rax, dword [0x1800c6318]
mov rcx, qword [0x1800c62d0]
add rax, rcx
movsxd rcx, dword [0x1800c6318]
sub rcx, rax
mov rax, rcx
mov dword [0x1800c6318], eax
movzx eax, word [rsp + 0x7c]
shl eax, 8
mov word [0x1800c62fc], ax
jmp 0x18001f6cd
movzx eax, byte [0x1800c62ab]
movzx eax, al
imul rax, qword [rsp + 0xe0]
movzx ecx, byte [0x1800c62ab]
movzx ecx, cl
add rcx, rax
mov rax, rcx
mov byte [0x1800c62ab], al
movzx eax, word [rsp + 0x78]
cwde
imul eax, dword [rsp + 0x98]
movzx ecx, word [rsp + 0x70]
movsx ecx, cx
imul eax, ecx
mov dword [0x1800c62b0], eax
mov eax, dword [rsp + 0x10c]
add eax, 0x299
mov dword [rsp + 0x1e4], eax
movzx eax, word [rsp + 0x74]
inc ax
mov word [rsp + 0x74], ax
mov eax, dword [rsp + 0x10c]
add eax, 0x1a2
mov dword [rsp + 0x1e0], eax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x110], eax
mov qword [rsp + 0xa0], 0xe79a
mov eax, dword [rsp + 0x110]
add eax, 0x1b5
mov dword [rsp + 0xd4], eax
mov eax, 0xd1
mov word [rsp + 0x84], ax
mov eax, dword [rsp + 0x110]
add eax, 0x22f
mov dword [rsp + 0x168], eax
movzx eax, byte [0x1800c623e]
movzx ecx, byte [0x1800c6213]
imul eax, ecx
movzx ecx, byte [0x1800c623e]
or ecx, eax
mov eax, ecx
mov byte [0x1800c623e], al
mov eax, dword [rsp + 0x110]
add eax, 0x21f
mov dword [rsp + 0x2ac], eax
cmp dword [rsp + 0x94], 0
je 0x18001f7a5
movzx eax, word [rsp + 0x80]
movzx ecx, byte [rsp + 0x68]
movzx ecx, cl
sub eax, ecx
mov word [rsp + 0x80], ax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x114], eax
mov dword [0x1800c62b0], 3
mov eax, dword [rsp + 0x94]
sub eax, 0xea
mov byte [rsp + 0x61], al
movzx eax, word [rsp + 0x7c]
movabs rcx, 0xf5ecc3ca4b196
sub rax, rcx
mov word [rsp + 0x78], ax
mov eax, dword [0x1800c62b0]
mov dword [rsp + 0xcc], eax
cmp dword [rsp + 0xcc], 0
je 0x18001f825
cmp dword [rsp + 0xcc], 1
je 0x18001f877
cmp dword [rsp + 0xcc], 2
je 0x18001f8b3
cmp dword [rsp + 0xcc], 3
je 0x18001f8de
jmp 0x18001f8f7
cmp dword [rsp + 0x98], 0
je 0x18001f841
movzx eax, word [rsp + 0x88]
mov qword [rsp + 0x270], rax
jmp 0x18001f851
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x270], rax
movzx eax, byte [rsp + 0x270]
mov byte [0x1800c628f], al
movzx eax, byte [rsp + 0x61]
movzx eax, al
movzx ecx, byte [rsp + 0x62]
add eax, ecx
mov byte [rsp + 0x61], al
jmp 0x18001f8f7
movzx eax, byte [0x1800c628f]
movsx eax, al
imul eax, eax, 0x5b74
cdqe
mov rcx, qword [0x1800c6310]
xor rcx, rax
mov rax, rcx
mov qword [0x1800c6310], rax
movzx eax, word [rsp + 0x70]
cwde
movzx ecx, word [0x1800c62f8]
sub eax, ecx
mov word [rsp + 0x70], ax
jmp 0x18001f8f7
movsx rax, byte [0x1800c6211]
mov rcx, qword [0x1800c62e0]
sub rcx, rax
mov rax, rcx
mov rcx, qword [0x1800c62e0]
and rcx, rax
mov rax, rcx
mov qword [0x1800c62e0], rax
jmp 0x18001f8f7
mov eax, dword [0x1800c62b4]
mov eax, eax
movabs rcx, 0x61d336da8edba
add rax, rcx
mov byte [rsp + 0x60], al
mov eax, dword [rsp + 0x114]
add eax, 0x242
mov dword [rsp + 0x2c8], eax
mov eax, dword [rsp + 0x114]
add eax, 0x3d7
mov dword [rsp + 0x1f0], eax
mov eax, dword [rsp + 0x114]
add eax, 0x36
mov dword [rsp + 0x2c4], eax
movzx eax, word [rsp + 0x90]
cwde
test eax, eax
jne 0x18001f951
movzx eax, word [rsp + 0x7c]
test eax, eax
je 0x18001f951
mov dword [rsp + 0x13c], 0
jmp 0x18001f95c
mov dword [rsp + 0x13c], 1
mov eax, dword [rsp + 0x13c]
not eax
movzx ecx, word [0x1800c6308]
movsx ecx, cx
movzx edx, word [0x1800c62dc]
movzx edx, dx
imul ecx, edx
cmp eax, ecx
jl 0x18001f982
jmp 0x18001f99e
movsx eax, byte [rsp + 0x60]
movzx ecx, word [rsp + 0x74]
movzx ecx, cx
sub eax, ecx
movsx ecx, byte [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x60], al
mov eax, dword [rsp + 0x1c4]
mov dword [rsp + 0x64], eax
mov eax, dword [0x1800c62b4]
test eax, eax
je 0x18001fa18
movzx eax, word [rsp + 0x74]
movzx eax, ax
movzx ecx, word [rsp + 0x7c]
cmp eax, ecx
je 0x18001fa16
movzx eax, byte [0x1800c62ab]
movzx eax, al
test eax, eax
je 0x18001f9e5
movzx eax, word [rsp + 0x78]
movsx rax, ax
mov qword [rsp + 0x268], rax
jmp 0x18001f9f4
mov rax, qword [0x1800c6310]
mov qword [rsp + 0x268], rax
movzx eax, word [rsp + 0x268]
mov word [0x1800c62a8], ax
movsx eax, byte [rsp + 0x60]
movzx ecx, byte [rsp + 0x61]
movzx ecx, cl
add eax, ecx
mov byte [rsp + 0x60], al
jmp 0x18001fa2b
movzx eax, word [rsp + 0x7c]
sub eax, 0xa161e4b1
mov eax, eax
mov qword [0x1800c62b8], rax
cmp qword [rsp + 0xc0], 0
je 0x18001fa38
jmp 0x18001fa3f
mov byte [0x1800c61c6], 1
mov eax, dword [0x18020f330]
mov dword [0x1800c62d8], eax
movzx eax, word [rsp + 0x88]
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
or eax, ecx
imul eax, dword [rsp + 0x94]
test eax, eax
jne 0x18001fa76
mov dword [rsp + 0x140], 1
jmp 0x18001fa81
mov dword [rsp + 0x140], 0
mov eax, dword [rsp + 0x140]
add eax, 0x2bc3
mov word [rsp + 0x84], ax
mov rax, qword [rsp + 0x3e0]
mov qword [rsp + 0x2d0], rax
mov qword [rsp + 0x1b8], 0xffffffffffffffff
inc qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x2d0]
mov rcx, qword [rsp + 0x1b8]
cmp byte [rax + rcx], 0
jne 0x18001fab1
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x280], rax
mov rax, qword [rsp + 0x3e8]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x1b0], 0xffffffffffffffff
inc qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x2d8]
mov rcx, qword [rsp + 0x1b0]
cmp byte [rax + rcx], 0
jne 0x18001fafb
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x218], rax
mov eax, dword [rsp + 0x94]
add eax, 0xe8
cdqe
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x1a0]
sub rax, 0x3a4c
mov word [rsp + 0x88], ax
mov rax, qword [rsp + 0x3f0]
mov qword [rsp + 0x2e0], rax
mov qword [rsp + 0x1a8], 0xffffffffffffffff
inc qword [rsp + 0x1a8]
mov rax, qword [rsp + 0x2e0]
mov rcx, qword [rsp + 0x1a8]
cmp byte [rax + rcx], 0
jne 0x18001fb71
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x220], rax
movzx eax, word [rsp + 0xe0]
mov word [rsp + 0x70], ax
movsx rax, word [0x1800c62a8]
mov rcx, qword [0x1800c62a0]
cmp rax, rcx
jae 0x18001fbcd
mov dword [rsp + 0x144], 1
jmp 0x18001fbd8
mov dword [rsp + 0x144], 0
movzx eax, word [rsp + 0x6c]
movzx eax, ax
movzx ecx, word [rsp + 0x74]
movzx ecx, cx
sub eax, ecx
cmp dword [rsp + 0x144], eax
je 0x18001fbf5
jmp 0x18001fc59
movzx eax, byte [0x1800c623f]
movsx eax, al
test eax, eax
je 0x18001fc05
jmp 0x18001fc59
mov rax, qword [0x1800c62e0]
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
cmp rax, rcx
jae 0x18001fc27
mov qword [rsp + 0x278], 1
jmp 0x18001fc33
mov qword [rsp + 0x278], 0
mov rax, qword [rsp + 0x278]
cmp qword [0x1800c6310], rax
ja 0x18001fc59
mov eax, dword [0x1800c62b4]
add eax, 0xd464a8d2
mov eax, eax
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x320], 0
movzx eax, word [rsp + 0x88]
movzx ecx, word [rsp + 0x90]
movsx ecx, cx
cmp eax, ecx
jl 0x18001fcb4
movzx eax, byte [0x1800c62ab]
movzx eax, al
test eax, eax
je 0x18001fcaf
movzx eax, byte [0x1800c62aa]
mov rcx, qword [0x1800c62a0]
not rcx
add rax, rcx
mov byte [0x1800c62ab], al
movzx eax, word [0x1800c62dc]
mov byte [rsp + 0x62], al
jmp 0x18001fd3c
movsx eax, byte [0x1800c61c6]
test eax, eax
jne 0x18001fccc
movzx eax, word [rsp + 0x90]
cwde
test eax, eax
je 0x18001fd20
movzx eax, word [rsp + 0x88]
test eax, eax
je 0x18001fce8
mov rax, qword [rsp + 0xa0]
not rax
test rax, rax
jne 0x18001fd20
movsx rax, byte [0x1800c61c6]
mov rcx, qword [0x1800c62f0]
sub rax, rcx
mov byte [0x1800c61c6], al
movzx eax, word [0x1800c62c8]
cwde
sub eax, 0x5a84
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
or ecx, eax
mov eax, ecx
mov word [rsp + 0x6c], ax
jmp 0x18001fd3c
movzx eax, byte [rsp + 0x61]
movzx eax, al
movabs rcx, 0xa080c2b040f62
cmp rax, rcx
jge 0x18001fd3c
mov byte [rsp + 0x62], 0xee
lea rax, [rsp + 0x360]
mov rdi, rax
xor eax, eax
mov ecx, 0x58
rep stosb byte [rdi], al
movzx eax, word [rsp + 0x74]
movzx eax, ax
test eax, eax
je 0x18001fd68
movzx eax, word [rsp + 0x70]
cwde
test eax, eax
je 0x18001fd68
jmp 0x18001fd9b
mov rax, qword [0x1800c62f0]
test rax, rax
je 0x18001fd9b
movabs rax, 0x104b86edc5153
mov qword [0x1800c62b8], rax
movsx eax, word [0x1800c62fc]
imul eax, eax, 0x7fccf1d5
cdqe
mov qword [0x1800c62d0], rax
mov qword [rsp + 0x1f8], 0
movsxd rax, dword [0x1800c6318]
cmp rax, qword [0x1800c6310]
jae 0x18001fdb9
jmp 0x18001fdfe
cmp qword [rsp + 0xc0], 0
je 0x18001fdfe
movzx eax, word [0x1800c6300]
movzx eax, ax
movabs rcx, 0x7639c7fdebb34
sub rax, rcx
mov qword [0x1800c6310], rax
mov rax, qword [0x1800c62a0]
not rax
movsxd rcx, dword [0x1800c6318]
sub rax, rcx
mov word [rsp + 0x80], ax
mov qword [rsp + 0x2f8], 0x1f0fff
mov byte [0x1800c6267], 0xda
mov eax, 1
imul rax, rax, 0xad
lea rcx, [0x180279ae0]
movsx rax, byte [rcx + rax]
mov rcx, qword [rsp + 0xc0]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x2f0], 0x1f03ff
mov dword [rsp + 0x1dc], 1
movzx eax, word [rsp + 0x70]
movsx rax, ax
mov rcx, qword [0x1800c62f0]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c62f0], rax
mov dword [rsp + 0x1e8], 8
mov r9d, 4
mov r8, qword [rsp + 0x280]
mov edx, 2
lea rcx, [fcn.180091dd4]
call fcn.18004aa40
mov qword [rsp + 0x228], rax
mov r9d, 4
mov r8, qword [rsp + 0x218]
mov edx, 2
lea rcx, [fcn.180091dd4]
call fcn.18004aa40
mov qword [rsp + 0x2e8], rax
mov r9d, 4
mov r8, qword [rsp + 0x220]
mov edx, 2
lea rcx, [fcn.180091dd4]
call fcn.18004aa40
mov qword [rsp + 0x240], rax
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x3e0]
mov r8, qword [rsp + 0x228]
mov edx, 3
lea rcx, [0x180091fdc]
call fcn.18004aa40
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
movsx rax, word [0x1800c62ac]
mov rcx, qword [0x1800c6328]
add rcx, rax
mov rax, rcx
mov qword [0x1800c6328], rax
movzx eax, byte [0x1800c6213]
mov rcx, qword [0x1800c6320]
lea rax, [rax + rcx + 0xcb]
mov byte [0x1800c6213], al
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x3e8]
mov r8, qword [rsp + 0x2e8]
mov edx, 3
lea rcx, [0x180091fdc]
call fcn.18004aa40
mov eax, 1
mov word [rsp + 0x6c], ax
movzx eax, byte [0x1800c6207]
movzx eax, al
mov ecx, dword [0x1800c6318]
sub ecx, eax
mov eax, ecx
mov dword [0x1800c6318], eax
movzx eax, word [rsp + 0x78]
cwde
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
add eax, ecx
mov word [rsp + 0x78], ax
movzx eax, word [rsp + 0x6c]
movzx eax, ax
mov dword [rsp + 0x148], eax
cmp dword [rsp + 0x148], 0
je 0x18001ffff
cmp dword [rsp + 0x148], 1
je 0x18002003f
jmp 0x18002005c
movzx eax, word [rsp + 0x88]
mov rcx, qword [rsp + 0xb8]
sub rcx, rax
mov rax, rcx
mov byte [0x1800c61c6], al
movzx eax, byte [rsp + 0x68]
movzx eax, al
mov ecx, dword [0x1800c6304]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x1800c6304]
add ecx, eax
mov eax, ecx
mov dword [0x1800c6304], eax
jmp 0x18002005c
movzx eax, word [rsp + 0x70]
movsx rax, ax
movabs rcx, 0x6063caa2d2d98
add rax, rcx
mov word [0x1800c62fc], ax
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
movzx eax, word [0x1800c6320]
mov word [rsp + 0x70], ax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov eax, dword [0x1800c630c]
sub eax, 0x262
mov byte [0x1800c6211], al
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x3f0]
mov r8, qword [rsp + 0x240]
mov edx, 3
lea rcx, [0x180091fdc]
call fcn.18004aa40
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
movzx eax, byte [0x1800c628f]
movsx eax, al
test eax, eax
je 0x18002010e
movzx eax, word [rsp + 0x6c]
movzx eax, ax
mov dword [0x1800c6290], eax
movzx eax, byte [0x1800c628f]
movsx eax, al
mov ecx, dword [0x1800c631c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [0x1800c631c]
sub ecx, eax
mov eax, ecx
mov dword [0x1800c631c], eax
jmp 0x18002014e
movzx eax, byte [0x18020f330]
mov byte [0x1800c62ab], al
movzx eax, word [rsp + 0x70]
movsx rax, ax
movzx ecx, word [0x1800c62e8]
movzx ecx, cx
movsx edx, word [0x1800c62ac]
sub ecx, edx
movsxd rcx, ecx
mov rdx, qword [0x1800c62b8]
add rcx, rdx
xor rax, rcx
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
movzx eax, word [0x1800c62dc]
movzx eax, ax
cmp rax, qword [rsp + 0xa0]
jl 0x1800201f6
movzx eax, word [rsp + 0x74]
movzx eax, ax
movsx ecx, word [0x1800c62fc]
sub eax, ecx
test eax, eax
jne 0x180020190
mov dword [rsp + 0x14c], 1
jmp 0x18002019b
mov dword [rsp + 0x14c], 0
movzx eax, byte [0x1800c62ab]
movzx eax, al
mov ecx, dword [rsp + 0x9c]
mov rdx, qword [0x1800c62f0]
sub rcx, rdx
imul rax, rcx
not rax
movzx ecx, byte [0x1800c62aa]
mov edx, dword [rsp + 0x14c]
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
xor rax, rcx
mov byte [rsp + 0x62], al
movzx eax, byte [0x1800c623e]
add eax, 0x199d
movzx ecx, byte [0x1800c62aa]
sub ecx, eax
mov eax, ecx
mov byte [0x1800c62aa], al
mov eax, dword [rsp + 0x1c8]
add eax, 0x101
mov ecx, dword [rsp + 0x150]
mov edx, dword [rsp + 0x150]
sub ecx, edx
imul eax, ecx
mov ecx, dword [rsp + 0x64]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x64], eax
mov r9, qword [rsp + 0x228]
lea r8, [rsp + 0x300]
mov edx, 2
mov rcx, qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
call fcn.18004aa40
movzx eax, word [rsp + 0x84]
sub eax, 0xf3
mov dword [0x1800c6290], eax
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov eax, 1
mov word [0x1800c62fc], ax
movzx eax, word [rsp + 0x80]
movzx ecx, byte [0x1800c6207]
movzx ecx, cl
xor eax, ecx
movzx ecx, word [rsp + 0x80]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x80], ax
movsx eax, word [0x1800c62fc]
mov dword [rsp + 0x1cc], eax
cmp dword [rsp + 0x1cc], 1
je 0x1800202af
jmp 0x180020316
mov eax, dword [0x1800c62c4]
test eax, eax
jne 0x1800202c7
mov qword [rsp + 0x230], 1
jmp 0x1800202d3
mov qword [rsp + 0x230], 0
mov rax, qword [0x1800c62d0]
mov rcx, qword [rsp + 0x230]
sub rcx, rax
mov rax, rcx
test rax, rax
jne 0x1800202fb
mov qword [rsp + 0x238], 1
jmp 0x180020307
mov qword [rsp + 0x238], 0
mov rax, qword [rsp + 0x238]
mov qword [0x1800c62e0], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
movzx eax, word [0x1800c62dc]
movzx eax, ax
test eax, eax
je 0x1800203d2
movzx eax, byte [0x1800c6213]
movzx ecx, word [rsp + 0x74]
movzx ecx, cx
movzx edx, word [0x1800c6300]
movzx edx, dx
sub ecx, edx
cmp eax, ecx
jg 0x180020358
mov byte [0x1800c62ab], 0x2c
jmp 0x1800203d0
mov eax, dword [rsp + 0x9c]
not eax
test eax, eax
je 0x1800203d0
movzx eax, byte [rsp + 0x62]
movabs rcx, 0x9d5e10deaf0
add rax, rcx
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0xb8]
mov rcx, 0xffffffffffffcb7d
sub rcx, rax
mov rax, rcx
test rax, rax
jne 0x1800203a6
mov dword [rsp + 0x154], 1
jmp 0x1800203b1
mov dword [rsp + 0x154], 0
movzx eax, word [rsp + 0x78]
cwde
movzx ecx, word [rsp + 0x70]
movsx ecx, cx
imul eax, ecx
sub eax, dword [rsp + 0x154]
mov word [0x1800c62fc], ax
jmp 0x1800203ee
mov rax, qword [0x1800c62a0]
not rax
movzx ecx, byte [0x1800c6212]
or rax, rcx
mov word [rsp + 0x80], ax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov r9, qword [rsp + 0x240]
lea r8, [rsp + 0x328]
mov edx, 2
mov rcx, qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
call fcn.18004aa40
mov eax, dword [rsp + 0x64]
inc eax
mov ecx, dword [rsp + 0x1d0]
mov edx, dword [rsp + 0x158]
imul ecx, edx
mov edx, dword [rsp + 0x1d4]
imul edx, edx, 0x253
sub ecx, edx
mov edx, dword [rsp + 0x158]
add edx, 0x253
imul edx, edx, 0
imul ecx, edx
sub eax, ecx
mov dword [rsp + 0x64], eax
movsx eax, byte [rsp + 0x60]
movzx ecx, word [rsp + 0x74]
movzx ecx, cx
cmp eax, ecx
jne 0x180020469
jmp 0x18002047c
mov eax, dword [rsp + 0x94]
sar eax, 5
cdqe
mov qword [0x1800c62f0], rax
mov eax, dword [rsp + 0x130]
mov ecx, dword [rsp + 0x1d8]
add eax, ecx
mov ecx, dword [rsp + 0x130]
mov edx, dword [rsp + 0x130]
xor ecx, edx
imul eax, ecx
mov ecx, dword [rsp + 0x64]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x64], eax
mov qword [rsp + 0xc0], 2
mov eax, dword [0x1800c62d8]
add eax, 0x11
mov byte [rsp + 0x60], al
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x1dc]
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0x328]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x300]
lea rcx, [rsp + 0x1f8]
call qword [sym.imp.ntdll.dll_RtlCreateProcessParametersEx]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0x15c]
mov ecx, dword [rsp + 0x1e0]
sub eax, ecx
mov ecx, dword [rsp + 0x1e4]
mov edx, dword [rsp + 0x15c]
add ecx, edx
cmp eax, ecx
je 0x180020781
cmp dword [rsp + 0xb0], 0
jge 0x180020781
mov byte [0x1800c628f], 3
mov eax, dword [rsp + 0xac]
movabs rcx, 0xfa1da99c57b28
sub rax, rcx
movzx ecx, byte [0x1800c623f]
movsx rcx, cl
sub rcx, rax
mov rax, rcx
mov byte [0x1800c623f], al
movzx eax, byte [0x1800c628f]
mov byte [rsp + 0xd0], al
cmp byte [rsp + 0xd0], 0
je 0x1800205d7
cmp byte [rsp + 0xd0], 1
je 0x18002060b
cmp byte [rsp + 0xd0], 2
je 0x18002061b
cmp byte [rsp + 0xd0], 3
je 0x180020642
jmp 0x18002068b
movzx eax, byte [0x1800c6207]
movzx eax, al
mov ecx, dword [0x1800c62ec]
imul ecx, eax
mov eax, ecx
mov dword [0x1800c62ec], eax
movzx eax, word [0x1800c6300]
movzx eax, ax
add eax, 0xbe90fb51
mov word [rsp + 0x78], ax
jmp 0x18002068b
movzx eax, word [0x18020f330]
mov word [0x1800c62fc], ax
jmp 0x18002068b
movzx eax, byte [rsp + 0x68]
movzx eax, al
add eax, 0x26c4
cdqe
mov rcx, qword [rsp + 0xb8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xb8], rax
jmp 0x18002068b
movsx rax, byte [0x1800c61c6]
mov rcx, qword [0x1800c6310]
imul rcx, rax
mov rax, rcx
mov rcx, qword [0x1800c6310]
add rcx, rax
mov rax, rcx
mov qword [0x1800c6310], rax
movzx eax, word [rsp + 0x80]
sub eax, 0xddaf9bc5
movsx ecx, word [0x1800c62a8]
sub ecx, eax
mov eax, ecx
mov word [0x1800c62a8], ax
mov eax, 0xf2a2
mov word [rsp + 0x7c], ax
mov eax, dword [rsp + 0x94]
sub eax, 0xaf
mov byte [0x1800c62aa], al
mov eax, dword [0x18020f330]
mov dword [rsp + 0x11c], eax
mov eax, dword [rsp + 0x11c]
add eax, 0x139
mov dword [rsp + 0x164], eax
movzx eax, byte [0x1800c6213]
mov byte [rsp + 0x60], al
mov eax, dword [rsp + 0x11c]
add eax, 0x1d1
mov dword [rsp + 0x160], eax
mov eax, dword [rsp + 0x11c]
add eax, 0x11d
mov dword [rsp + 0x2b4], eax
mov eax, dword [rsp + 0x160]
or eax, 0x148
mov ecx, dword [rsp + 0x164]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x160]
mov edx, dword [rsp + 0x164]
imul ecx, edx
add ecx, 0xfffffe81
cmp eax, ecx
je 0x180020781
movzx eax, word [rsp + 0x84]
test eax, eax
je 0x18002075f
movzx eax, byte [0x1800c61c7]
test eax, eax
je 0x18002075f
mov rax, qword [0x1800c62a0]
sub rax, 0xcffe
mov byte [rsp + 0x60], al
mov eax, dword [0x18020f330]
mov dword [rsp + 0xac], eax
movzx eax, word [rsp + 0x74]
movzx eax, ax
movzx ecx, word [0x1800c62cc]
and eax, ecx
mov word [rsp + 0x74], ax
mov eax, dword [rsp + 0xb0]
jmp 0x1800212a4
mov qword [rsp + 0x360], 0x58
mov dword [rsp + 0x368], 0
call fcn.18002a940
mov r8d, 0x60
mov edx, dword [rsp + 0x1e8]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xe8]
mov qword [rax], 0x28
mov eax, 0x20
imul rax, rax, 0
mov rcx, qword [rsp + 0xe8]
mov qword [rcx + rax + 8], 0x20005
movzx eax, word [rsp + 0x300]
mov ecx, 0x20
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rcx + 0x10], rax
mov eax, 0x20
imul rax, rax, 0
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x308]
mov qword [rcx + rax + 0x18], rdx
mov eax, dword [rsp + 0xd4]
mov ecx, dword [rsp + 0x168]
add eax, ecx
mov ecx, dword [rsp + 0x168]
mov edx, dword [rsp + 0xd4]
imul ecx, edx
add eax, ecx
mov ecx, dword [rsp + 0xd4]
mov edx, dword [rsp + 0xd4]
add ecx, edx
cmp eax, ecx
je 0x180020e8b
movzx eax, byte [0x1800c628e]
movzx eax, al
mov rcx, qword [0x1800c62e0]
cmp rax, rcx
jb 0x180020874
jmp 0x180020883
mov rax, qword [0x1800c62b8]
mov qword [rsp + 0xc0], rax
cmp dword [rsp + 0x3f8], 0
je 0x180020e8b
mov dword [0x1800c630c], 3
movzx eax, word [0x1800c62c0]
movabs rcx, 0xbcd8a4fbf1d3a
imul rax, rcx
mov dword [rsp + 0x94], eax
movsx eax, byte [0x1800c61c6]
movsx ecx, byte [0x1800c6267]
xor eax, ecx
mov byte [0x1800c61c6], al
mov eax, dword [0x1800c630c]
mov dword [rsp + 0xd8], eax
cmp dword [rsp + 0xd8], 0
je 0x180020913
cmp dword [rsp + 0xd8], 1
je 0x180020972
cmp dword [rsp + 0xd8], 2
je 0x180020992
cmp dword [rsp + 0xd8], 3
je 0x1800209c7
jmp 0x1800209d2
mov dword [rsp + 0xac], 0x54c6
movsx rax, word [0x1800c62fc]
mov rcx, qword [0x1800c62b8]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [0x1800c62ab]
movzx ecx, cl
not ecx
mov edx, dword [0x1800c6304]
sub ecx, edx
not ecx
movsxd rcx, ecx
and rax, rcx
movzx ecx, word [rsp + 0x70]
movsx ecx, cx
movzx edx, word [rsp + 0x74]
movzx edx, dx
add edx, 4
sub ecx, edx
movsxd rcx, ecx
add rax, rcx
mov byte [0x1800c6212], al
jmp 0x1800209d2
movzx eax, byte [rsp + 0x61]
movzx eax, al
mov rcx, qword [rsp + 0xb8]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xb8], rax
jmp 0x1800209d2
mov eax, dword [0x18020f330]
mov dword [rsp + 0x98], eax
movzx eax, word [0x1800c62dc]
movzx eax, ax
movsx ecx, byte [rsp + 0x60]
sub eax, ecx
movzx ecx, word [0x1800c62dc]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [0x1800c62dc], ax
jmp 0x1800209d2
movzx eax, byte [0x18020f330]
mov byte [rsp + 0x62], al
mov byte [0x1800c628f], 4
cmp qword [0x1800c6310], 0
jne 0x1800209f0
mov dword [rsp + 0x16c], 1
jmp 0x1800209fb
mov dword [rsp + 0x16c], 0
movzx eax, word [rsp + 0x6c]
movzx eax, ax
mov ecx, dword [0x1800c6294]
sub ecx, eax
mov eax, ecx
movzx ecx, byte [rsp + 0x61]
movzx ecx, cl
mov edx, dword [rsp + 0x16c]
sub edx, ecx
mov ecx, edx
sub eax, ecx
cdqe
mov qword [rsp + 0xc0], rax
movzx eax, byte [0x1800c628f]
mov byte [rsp + 0xa8], al
cmp byte [rsp + 0xa8], 0
je 0x180020a79
cmp byte [rsp + 0xa8], 1
je 0x180020a93
cmp byte [rsp + 0xa8], 2
je 0x180020ad7
cmp byte [rsp + 0xa8], 3
je 0x180020ae6
cmp byte [rsp + 0xa8], 4
je 0x180020b0a
jmp 0x180020b1f
movzx eax, byte [rsp + 0x62]
mov ecx, dword [0x1800c6304]
add ecx, eax
mov eax, ecx
mov dword [0x1800c6304], eax
jmp 0x180020b1f
mov eax, dword [0x1800c631c]
sub eax, 0xad
mov byte [0x1800c628e], al
movzx eax, byte [rsp + 0x62]
mov ecx, dword [0x1800c631c]
add eax, ecx
test eax, eax
jne 0x180020abf
mov byte [rsp + 0x8c], 1
jmp 0x180020ac7
mov byte [rsp + 0x8c], 0
movzx eax, byte [rsp + 0x8c]
mov byte [0x1800c6211], al
jmp 0x180020b1f
movzx eax, byte [0x18020f330]
mov byte [0x1800c61c6], al
jmp 0x180020b1f
movzx eax, word [rsp + 0x6c]
mov word [0x1800c62a8], ax
mov eax, dword [rsp + 0x9c]
sub eax, 0xdbda
mov eax, eax
mov qword [rsp + 0xa0], rax
jmp 0x180020b1f
movsx eax, word [0x1800c62ac]
add eax, 0xc460
cdqe
mov qword [0x1800c62b8], rax
mov eax, dword [0x18020f330]
mov dword [rsp + 0x120], eax
mov eax, dword [rsp + 0x120]
add eax, 0x141
mov dword [rsp + 0x2c0], eax
movzx eax, byte [rsp + 0x61]
movzx eax, al
test eax, eax
je 0x180020b59
mov eax, 2
mov word [0x1800c62e8], ax
jmp 0x180020b8b
movzx eax, word [rsp + 0x90]
cwde
test eax, eax
je 0x180020b74
movzx eax, byte [0x1800c628e]
movzx eax, al
test eax, eax
je 0x180020b8b
movzx eax, byte [0x1800c6206]
movsx eax, al
sar eax, 2
cdqe
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0x120]
add eax, 2
mov dword [rsp + 0x170], eax
xor eax, eax
mov word [rsp + 0x78], ax
mov rax, qword [0x1800c6328]
sub rax, qword [0x1800c6310]
mov rcx, qword [0x1800c6328]
add rcx, rax
mov rax, rcx
mov qword [0x1800c6328], rax
movzx eax, word [rsp + 0x78]
cwde
mov dword [rsp + 0x1ec], eax
cmp dword [rsp + 0x1ec], 0
je 0x180020bde
jmp 0x180020bf2
movzx eax, word [rsp + 0x74]
movzx eax, ax
xor eax, 0xc6be
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x120]
add eax, 0x1ca
mov dword [rsp + 0x2bc], eax
mov eax, dword [rsp + 0x170]
mov ecx, dword [rsp + 0x170]
add eax, ecx
cmp eax, 0x47
je 0x180020e8b
movzx eax, word [rsp + 0x78]
cwde
test eax, eax
jne 0x180020c36
mov qword [rsp + 0x248], 1
jmp 0x180020c42
mov qword [rsp + 0x248], 0
mov rax, qword [rsp + 0x248]
mov rcx, qword [rsp + 0xe0]
add rcx, rax
mov rax, rcx
test rax, rax
jne 0x180020c6a
mov dword [rsp + 0x174], 1
jmp 0x180020c75
mov dword [rsp + 0x174], 0
mov eax, dword [0x1800c6214]
test eax, eax
jne 0x180020c8c
mov dword [rsp + 0x178], 1
jmp 0x180020c97
mov dword [rsp + 0x178], 0
movzx eax, word [rsp + 0x90]
cwde
movzx ecx, word [rsp + 0x80]
sub eax, ecx
mov ecx, dword [rsp + 0x174]
sub ecx, eax
mov eax, ecx
movzx ecx, word [rsp + 0x70]
movsx ecx, cx
and ecx, dword [rsp + 0x178]
add eax, ecx
cdqe
mov qword [0x1800c6298], rax
movzx eax, word [rsp + 0x80]
add eax, 0x9549e376
mov dword [0x1800c62d8], eax
mov ecx, dword [rsp + 0x3f8]
call fcn.18001e980
mov qword [rsp + 0x258], rax
mov eax, dword [rsp + 0x1f0]
mov ecx, 0x220
sub ecx, eax
mov eax, ecx
cmp eax, 0x20
je 0x180020e39
cmp qword [rsp + 0x258], 0
jne 0x180020e39
mov eax, dword [0x18020f330]
mov dword [rsp + 0x124], eax
mov eax, dword [rsp + 0x124]
add eax, 0x13d
mov dword [rsp + 0x2b8], eax
mov eax, dword [rsp + 0x124]
add eax, 0x39
mov dword [rsp + 0x128], eax
mov qword [0x1800c62f0], 0xd04a
movsx eax, byte [0x1800c61db]
test eax, eax
jne 0x180020d72
mov dword [rsp + 0x17c], 1
jmp 0x180020d7d
mov dword [rsp + 0x17c], 0
movsx eax, byte [0x1800c61db]
mov ecx, dword [0x1800c6294]
xor ecx, dword [rsp + 0x17c]
add eax, ecx
movzx ecx, byte [rsp + 0x68]
movzx ecx, cl
add eax, ecx
mov word [rsp + 0x74], ax
mov eax, dword [rsp + 0x124]
add eax, 0x22f
mov dword [rsp + 0x2b0], eax
mov eax, dword [rsp + 0x128]
mov ecx, dword [rsp + 0x128]
mov edx, dword [rsp + 0x128]
or ecx, edx
mov edx, 0x3ae
sub edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x180020e39
cmp dword [0x1800c6318], 0
jne 0x180020df0
mov qword [rsp + 0x250], 1
jmp 0x180020dfc
mov qword [rsp + 0x250], 0
movzx eax, word [0x1800c62cc]
mov ecx, dword [0x1800c6290]
add eax, ecx
mov ecx, dword [0x1800c631c]
sub ecx, eax
mov eax, ecx
mov eax, eax
movzx ecx, byte [rsp + 0x68]
movzx ecx, cl
mov rdx, qword [0x1800c6328]
sub rdx, qword [rsp + 0x250]
and rcx, rdx
add rax, rcx
mov word [rsp + 0x6c], ax
mov eax, 0x20
imul rax, rax, 1
mov rcx, qword [rsp + 0xe8]
mov qword [rcx + rax + 8], 0x60000
mov eax, 0x20
imul rax, rax, 1
mov rcx, qword [rsp + 0xe8]
mov qword [rcx + rax + 0x10], 8
mov eax, 0x20
imul rax, rax, 1
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x258]
mov qword [rcx + rax + 0x18], rdx
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x360]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x1f8]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x418]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x410]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x2f0]
mov r8d, dword [rsp + 0x2f8]
mov rdx, qword [rsp + 0x408]
mov rcx, qword [rsp + 0x400]
call fcn.1800049c0
mov dword [rsp + 0xb0], eax
cmp dword [rsp + 0xb0], 0
jge 0x180021074
mov eax, dword [0x1800c6318]
cmp dword [rsp + 0x9c], eax
jne 0x180021060
mov eax, dword [0x1800c6290]
movzx ecx, byte [rsp + 0x61]
movzx ecx, cl
cmp eax, ecx
je 0x180020f60
movzx eax, byte [0x1800c623e]
xor rax, qword [rsp + 0xa0]
movzx ecx, byte [0x1800c623e]
add rcx, rax
mov rax, rcx
mov byte [0x1800c623e], al
jmp 0x18002105e
movzx eax, word [rsp + 0x6c]
movzx eax, ax
cmp eax, 0xc87046cb
jbe 0x180020fe1
movzx eax, word [rsp + 0x88]
xor eax, dword [0x1800c62ec]
test eax, eax
jne 0x180020f8e
mov dword [rsp + 0x180], 1
jmp 0x180020f99
mov dword [rsp + 0x180], 0
movzx eax, word [rsp + 0x84]
movzx ecx, byte [rsp + 0x68]
movzx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x180]
add ecx, eax
mov eax, ecx
mov byte [0x1800c61c7], al
movzx eax, word [rsp + 0x6c]
movzx eax, ax
movsx ecx, byte [0x1800c61c6]
add eax, ecx
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x6c], ax
jmp 0x18002105e
cmp dword [rsp + 0xac], 0xa913
ja 0x180020ffb
mov dword [rsp + 0x184], 1
jmp 0x180021006
mov dword [rsp + 0x184], 0
mov eax, dword [rsp + 0x184]
not eax
test eax, eax
je 0x18002101c
mov byte [0x1800c62aa], 2
jmp 0x18002105e
movzx eax, word [rsp + 0x78]
cwde
test eax, eax
jne 0x18002105e
movsx eax, byte [0x1800c6267]
test eax, eax
je 0x180021040
mov eax, dword [0x1800c6290]
mov dword [rsp + 0x188], eax
jmp 0x180021051
movzx eax, byte [0x1800c628f]
movsx eax, al
mov dword [rsp + 0x188], eax
mov eax, dword [rsp + 0x188]
mov dword [0x1800c62b4], eax
jmp 0x180021074
cmp dword [rsp + 0x98], 0
je 0x180021074
mov dword [0x1800c62c4], 8
call fcn.18002a940
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov r8, qword [rax + 0x30]
mov edx, 3
mov rcx, qword [sym.imp.ntdll.dll_RtlFreeHeap]
call fcn.18004aa40
movzx eax, word [rsp + 0x74]
movzx eax, ax
movzx ecx, word [rsp + 0x6c]
movzx ecx, cx
imul eax, ecx
mov byte [rsp + 0x62], al
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
movzx eax, byte [0x1800c6266]
movzx eax, al
not eax
cdqe
mov rcx, qword [0x1800c6328]
imul rcx, rax
mov rax, rcx
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov eax, dword [0x1800c62b0]
movsx ecx, byte [rsp + 0x60]
cmp eax, ecx
je 0x180021107
mov dword [rsp + 0x190], 1
jmp 0x180021112
mov dword [rsp + 0x190], 0
mov eax, dword [0x1800c62b0]
cmp eax, 2
je 0x18002112a
mov dword [rsp + 0x18c], 1
jmp 0x180021135
mov dword [rsp + 0x18c], 0
mov eax, dword [rsp + 0x18c]
cmp dword [rsp + 0x190], eax
jl 0x18002115b
movzx eax, word [0x1800c62dc]
movzx eax, ax
sar eax, 7
mov word [0x1800c62f8], ax
jmp 0x1800211d7
movzx eax, word [rsp + 0x84]
movzx ecx, byte [0x1800c628e]
movzx ecx, cl
cmp eax, ecx
jge 0x18002117e
mov dword [rsp + 0x194], 1
jmp 0x180021189
mov dword [rsp + 0x194], 0
movzx eax, word [rsp + 0x70]
cwde
cmp eax, dword [rsp + 0x194]
jge 0x1800211b2
mov eax, 0xffff88d9
mov word [rsp + 0x78], ax
movsx eax, byte [0x1800c61c6]
shl eax, 8
mov byte [rsp + 0x60], al
jmp 0x1800211d7
movzx eax, byte [rsp + 0x68]
movzx eax, al
test eax, eax
jne 0x1800211d7
mov eax, 4
imul rax, rax, 0x62
lea rcx, [0x1802796c0]
movzx eax, word [rcx + rax]
mov word [rsp + 0x74], ax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov r8, qword [rsp + 0x1f8]
mov edx, 1
mov rcx, qword [sym.imp.ntdll.dll_RtlDestroyProcessParameters]
call fcn.18004aa40
mov rax, qword [rsp + 0xb8]
mov ecx, 1
imul rcx, rcx, 0x8330
lea rdx, [0x1802a2ee0]
mov byte [rdx + rcx], al
movsx eax, byte [0x1800c61c6]
movzx ecx, word [0x1800c62c8]
movsx ecx, cx
add eax, ecx
movsx ecx, byte [0x1800c61c6]
and ecx, eax
mov eax, ecx
mov byte [0x1800c61c6], al
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
movzx eax, word [0x18020f330]
mov word [0x1800c62cc], ax
mov eax, dword [0x1800c62b4]
test eax, eax
je 0x180021276
movzx eax, word [rsp + 0x74]
movzx eax, ax
mov qword [rsp + 0x260], rax
jmp 0x180021285
mov rax, qword [0x1800c6310]
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0xb0]
add rsp, 0x3c8
pop rdi
pop rsi
ret