Function at 0x18003ef70
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x328
mov dword [rsp + 0x298], 0x34e3
movzx eax, byte [str.not_a_stream]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x4c], 0xa5570437
mov rax, qword [0x1800c3690]
mov byte [rsp + 0x22], al
mov rax, qword [0x1800c3660]
mov word [rsp + 0x38], ax
mov rax, qword [0x1800c36c8]
mov byte [rsp + 0x30], al
mov eax, dword [0x1800c3594]
cdqe
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x70], 0xf782a380
movabs rax, 0x76caa6821a7b4
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x21], 0x2f
movzx eax, word [0x1800c3624]
movzx eax, ax
mov dword [rsp + 0x3c], eax
mov eax, 1
mov word [rsp + 0x34], ax
mov byte [rsp + 0x29], 0x2a
mov byte [rsp + 0x20], 0xb9
mov dword [rsp + 0x48], 3
mov dword [rsp + 0x44], 0x3862
movzx eax, word [0x1800c3678]
mov word [rsp + 0x24], ax
mov eax, 0x72ad
mov word [rsp + 0x2c], ax
mov rax, qword [0x1800c36b0]
mov dword [rsp + 0x50], eax
mov byte [rsp + 0x28], 0x49
movsx rax, byte [0x1800c35a7]
mov qword [rsp + 0x78], rax
mov rax, qword [0x1800c36a0]
mov word [rsp + 0x40], ax
movabs rax, 0x96400f1dc05
mov qword [rsp + 0x2f0], rax
mov byte [rsp + 0xec], 0xc2
movzx eax, byte [0x1800c35d3]
mov byte [rsp + 0x98], al
movzx eax, byte [0x1800c3678]
mov byte [rsp + 0x99], al
mov eax, dword [0x1800c3594]
mov dword [rsp + 0x29c], eax
mov byte [rsp + 0xee], 0x5d
movzx eax, byte [str.not_a_stream]
mov dword [rsp + 0x2b4], eax
movzx eax, byte [0x1800c35d4]
mov byte [rsp + 0xed], al
mov byte [rsp + 0x20], 0xe
movzx eax, byte [rsp + 0x30]
movzx eax, al
sub eax, 0x5a2f
cdqe
mov qword [0x1800c36b8], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0x9c]
add eax, 0x3c1
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0x9c]
add eax, 0x177
mov dword [rsp + 0x1d8], eax
mov eax, dword [rsp + 0x9c]
add eax, 0x1f6
mov dword [rsp + 0x2b0], eax
mov byte [rsp + 0x21], 4
mov eax, dword [0x1800c3594]
mov word [0x1800c3624], ax
movzx eax, byte [rsp + 0x21]
mov byte [rsp + 0x80], al
cmp byte [rsp + 0x80], 0
je 0x18003f18c
cmp byte [rsp + 0x80], 1
je 0x18003f1a7
cmp byte [rsp + 0x80], 2
je 0x18003f1e0
cmp byte [rsp + 0x80], 3
je 0x18003f24a
cmp byte [rsp + 0x80], 4
je 0x18003f269
jmp 0x18003f278
mov eax, 0x85dd825a
mov rcx, qword [0x1800c3680]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x54], eax
jmp 0x18003f278
movsx eax, word [rsp + 0x2c]
add eax, 0x38
movzx ecx, word [rsp + 0x38]
movsx ecx, cx
xor ecx, eax
mov eax, ecx
mov word [rsp + 0x38], ax
mov rax, qword [0x1800c3660]
movabs rcx, 0x3610b898e1908
sub rax, rcx
mov qword [0x1800c3690], rax
jmp 0x18003f278
mov eax, dword [rsp + 0x54]
cdqe
movabs rcx, 0xb1fbb3136abcc
imul rax, rcx
mov qword [rsp + 0x68], rax
movsx eax, byte [0x1800c35a5]
test eax, eax
jne 0x18003f211
mov dword [rsp + 0x1bc], 1
jmp 0x18003f21c
mov dword [rsp + 0x1bc], 0
movzx eax, byte [rsp + 0x30]
movzx eax, al
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
sub eax, ecx
mov ecx, dword [rsp + 0x70]
mov edx, dword [rsp + 0x1bc]
add edx, ecx
mov ecx, edx
sub eax, ecx
cdqe
mov qword [0x1800c3688], rax
jmp 0x18003f278
movzx eax, word [0x1800c35ec]
movsx rax, ax
movabs rcx, 0x33584a7e55cf2
add rax, rcx
mov word [rsp + 0x40], ax
jmp 0x18003f278
movzx eax, byte [0x1800c35d3]
dec al
mov byte [0x1800c35d3], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa0], eax
movsx eax, word [rsp + 0x2c]
mov ecx, dword [rsp + 0x70]
cmp eax, ecx
jg 0x18003f30b
movzx eax, byte [0x1800c35a3]
movsx eax, al
test eax, eax
je 0x18003f2e6
movzx eax, byte [0x1800c35a6]
movsx eax, al
imul eax, eax, 0
mov dword [0x1800c36c0], eax
movzx eax, byte [rsp + 0x20]
movsx eax, al
test eax, eax
jne 0x18003f2cc
mov dword [rsp + 0x1c0], 1
jmp 0x18003f2d7
mov dword [rsp + 0x1c0], 0
mov eax, dword [rsp + 0x1c0]
mov dword [0x1800c36c0], eax
jmp 0x18003f309
cmp dword [0x1800c35d4], 0
je 0x18003f309
movzx eax, word [rsp + 0x24]
movsx rax, ax
movabs rcx, 0x427f7541e5252
add rax, rcx
mov byte [rsp + 0x21], al
jmp 0x18003f34a
mov rax, qword [0x1800c36c8]
test rax, rax
je 0x18003f34a
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x3c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov rax, qword [0x1800c3690]
movabs rcx, 0xc44a402bc7ee8
sub rax, rcx
mov qword [0x1800c36b0], rax
mov eax, dword [rsp + 0xa0]
add eax, 0x8e
mov dword [rsp + 0x2ac], eax
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18003f376
movzx eax, word [rsp + 0x24]
cwde
shl eax, 7
mov dword [0x1800c3594], eax
mov eax, dword [rsp + 0xa0]
add eax, 0xaa
mov dword [rsp + 0x234], eax
mov eax, 0xc8
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0xa0]
add eax, 0x41
mov dword [rsp + 0x2a8], eax
mov eax, dword [rsp + 0x234]
xor eax, 0xe2
xor eax, 0x49
mov dword [rsp + 0x1e0], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa4], eax
mov eax, dword [0x1800c3594]
cdqe
mov rcx, qword [rsp + 0x78]
sub rax, rcx
mov dword [0x1800c3594], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x2c4
mov dword [rsp + 0x2d0], eax
mov qword [0x1800c3690], 0x41
movsx rax, byte [rsp + 0x22]
mov qword [0x1800c36b0], rax
mov eax, dword [rsp + 0xa4]
add eax, 0x34
mov dword [rsp + 0x23c], eax
movzx eax, word [rsp + 0x38]
cwde
movsx ecx, word [rsp + 0x2c]
cmp eax, ecx
jg 0x18003f435
mov dword [rsp + 0x1c8], 1
jmp 0x18003f440
mov dword [rsp + 0x1c8], 0
movzx eax, word [rsp + 0x38]
cwde
cmp eax, 0x1b
jg 0x18003f458
mov dword [rsp + 0x1c4], 1
jmp 0x18003f463
mov dword [rsp + 0x1c4], 0
mov eax, dword [rsp + 0x1c4]
cmp dword [rsp + 0x1c8], eax
jg 0x18003f4a5
movzx eax, byte [rsp + 0x21]
mov rcx, qword [0x1800c36d8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c36d8], rax
mov rax, qword [0x1800c3668]
mov ecx, dword [rsp + 0x44]
lea rax, [rcx + rax - 0x84db]
mov dword [rsp + 0x44], eax
jmp 0x18003f51a
movzx eax, byte [rsp + 0x29]
test eax, eax
jne 0x18003f4bb
mov dword [rsp + 0xf4], 1
jmp 0x18003f4c6
mov dword [rsp + 0xf4], 0
movsx eax, word [0x1800c360c]
sub eax, dword [rsp + 0x3c]
mov ecx, dword [0x1800c35d4]
mov edx, dword [rsp + 0xf4]
sub edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x18003f51a
movzx eax, byte [rsp + 0x29]
not eax
cdqe
mov rcx, qword [0x1800c36a8]
add rcx, rax
mov rax, rcx
movsxd rcx, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x78]
imul rdx, rcx
mov rcx, rdx
not rcx
or rax, rcx
mov qword [0x1800c3690], rax
mov eax, dword [rsp + 0xa4]
add eax, 0x3e5
mov dword [rsp + 0x100], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa8], eax
mov rax, qword [0x1800c36b8]
add rax, 0x3d6989b8
mov qword [0x1800c3688], rax
movsx rax, byte [0x1800c35a7]
mov qword [0x1800c3660], rax
mov eax, dword [rsp + 0xa8]
add eax, 0x3b3
mov dword [rsp + 0x1f4], eax
movzx eax, byte [rsp + 0x20]
movsx eax, al
test eax, eax
je 0x18003f5ec
mov dword [0x1800c35d4], 0
movsx rax, byte [0x1800c35a7]
mov rcx, qword [rsp + 0x68]
imul rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
mov eax, dword [0x1800c36d4]
shl eax, 2
mov dword [0x1800c35bc], eax
mov eax, dword [0x1800c35d4]
mov dword [rsp + 0x230], eax
cmp dword [rsp + 0x230], 0
je 0x18003f5d2
jmp 0x18003f5ea
mov eax, 1
imul rax, rax, 0x49
lea rcx, [0x1806efcc0]
movzx edx, byte [rsp + 0x60]
mov byte [rcx + rax], dl
jmp 0x18003f60e
movzx eax, byte [rsp + 0x21]
add eax, dword [0x1800c35bc]
movzx ecx, byte [rsp + 0x21]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x21], al
mov dword [0x1800c3594], 0x5d
mov eax, dword [rsp + 0xa8]
add eax, 0x10c
mov dword [rsp + 0x1f8], eax
mov eax, 0xffffc251
mov word [0x1800c35ec], ax
mov eax, dword [rsp + 0xa8]
add eax, 0x281
mov dword [rsp + 0xcc], eax
movsx eax, byte [0x1800c35a5]
mov ecx, dword [rsp + 0x70]
cmp eax, ecx
je 0x18003f65c
mov dword [rsp + 0xfc], 1
jmp 0x18003f667
mov dword [rsp + 0xfc], 0
movsx eax, byte [0x1800c35a5]
cmp eax, 0x55
je 0x18003f680
mov dword [rsp + 0xf8], 1
jmp 0x18003f68b
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0xfc], eax
jne 0x18003f6aa
movzx eax, byte [0x1800c3680]
mov byte [str.not_a_stream], al
jmp 0x18003f6ce
movzx eax, byte [rsp + 0x20]
movsx rax, al
movabs rcx, 0xb24ff797be10e
sub rax, rcx
mov word [rsp + 0x38], ax
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0x22], al
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x150], 0
cmp dword [rsp + 0x50], 0
je 0x18003f6ed
jmp 0x18003f707
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x18003f707
mov rax, qword [0x1800c36c8]
shl rax, 8
mov qword [0x1800c36c8], rax
imul rax, qword [0x1800c3670], 0x4b
mov qword [rsp + 0x60], rax
mov dword [rsp + 0xe0], 0x38c48348
mov eax, dword [rsp + 0x23c]
mov ecx, dword [rsp + 0x100]
mov edx, dword [rsp + 0x100]
imul ecx, edx
cmp eax, ecx
je 0x18003fecf
mov eax, dword [0x1800c36d4]
test eax, eax
je 0x18003f751
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov eax, eax
movabs rcx, 0x128c0b92070f8
add rax, rcx
mov rcx, qword [0x1800c3690]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c3690], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xac], eax
movzx eax, byte [rsp + 0x29]
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
cmp eax, ecx
je 0x18003f7bd
movzx eax, word [rsp + 0x24]
movsx rax, ax
mov rcx, qword [0x1800c36b8]
xor rax, rcx
movzx ecx, word [rsp + 0x24]
movsx rcx, cx
sub rcx, rax
mov rax, rcx
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0xac]
add eax, 0x789b
mov dword [rsp + 0x2b8], eax
mov eax, dword [rsp + 0xac]
add eax, 0xa0a1
mov dword [rsp + 0x238], eax
mov dword [rsp + 0x70], 0xe59e9bbf
mov eax, dword [rsp + 0xac]
add eax, 0x60
mov dword [rsp + 0x2bc], eax
mov eax, dword [rsp + 0x238]
or eax, 0x7d69
add eax, 0xffff04d3
mov dword [rsp + 0x1e4], eax
movzx eax, byte [0x1800c35a4]
cmp eax, dword [0x1800c35bc]
ja 0x18003f830
mov dword [rsp + 0x108], 1
jmp 0x18003f83b
mov dword [rsp + 0x108], 0
movzx eax, byte [0x1800c35a4]
cmp eax, 0x5e
jg 0x18003f854
mov dword [rsp + 0x104], 1
jmp 0x18003f85f
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x104]
cmp dword [rsp + 0x108], eax
jne 0x18003f881
movzx eax, byte [rsp + 0x20]
movsx rax, al
sub rax, qword [rsp + 0x68]
mov byte [rsp + 0x20], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb0], eax
movzx eax, word [rsp + 0x24]
cwde
cmp eax, dword [rsp + 0x4c]
je 0x18003f8a7
mov dword [rsp + 0x110], 1
jmp 0x18003f8b2
mov dword [rsp + 0x110], 0
movzx eax, word [rsp + 0x24]
cwde
cmp eax, 0x5f
je 0x18003f8ca
mov dword [rsp + 0x10c], 1
jmp 0x18003f8d5
mov dword [rsp + 0x10c], 0
mov eax, dword [rsp + 0x10c]
cmp dword [rsp + 0x110], eax
je 0x18003f93a
movzx eax, word [rsp + 0x24]
movsx rax, ax
cmp qword [0x1800c36a8], rax
jle 0x18003f904
mov dword [rsp + 0x118], 1
jmp 0x18003f90f
mov dword [rsp + 0x118], 0
cmp qword [0x1800c36a8], 0x55
jle 0x18003f926
mov dword [rsp + 0x114], 1
jmp 0x18003f931
mov dword [rsp + 0x114], 0
mov eax, dword [rsp + 0x114]
jmp 0x18003f974
movzx eax, word [rsp + 0x24]
cwde
movzx ecx, byte [rsp + 0x20]
movsx ecx, cl
not ecx
imul eax, ecx
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
cmp eax, ecx
jne 0x18003f974
mov eax, dword [0x1800c36d4]
mov eax, eax
movabs rcx, 0x2eb0e3d807ccc
sub rax, rcx
mov byte [0x1800c35a5], al
mov eax, dword [rsp + 0xb0]
add eax, 0x4733
mov dword [rsp + 0x1d4], eax
movzx eax, word [0x1800c3624]
movzx eax, ax
not eax
cdqe
movsxd rcx, dword [rsp + 0x3c]
imul rcx, qword [0x1800c3678]
cmp rax, rcx
jge 0x18003f9b4
mov dword [rsp + 0x124], 1
jmp 0x18003f9bf
mov dword [rsp + 0x124], 0
movzx eax, byte [rsp + 0x28]
test eax, eax
jne 0x18003f9e1
mov rax, qword [0x1800c3668]
test rax, rax
je 0x18003f9e1
mov dword [rsp + 0x11c], 0
jmp 0x18003f9ec
mov dword [rsp + 0x11c], 1
movzx eax, byte [rsp + 0x29]
cmp dword [rsp + 0x11c], eax
je 0x18003fa07
mov dword [rsp + 0x120], 1
jmp 0x18003fa12
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x120]
cmp dword [rsp + 0x124], eax
jle 0x18003fac2
xor eax, eax
mov word [0x1800c360c], ax
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
jne 0x18003fa4b
mov qword [rsp + 0x258], 1
jmp 0x18003fa57
mov qword [rsp + 0x258], 0
movzx eax, word [rsp + 0x34]
movzx eax, ax
mov rcx, qword [0x1800c3668]
and rcx, rax
mov rax, rcx
imul rax, qword [rsp + 0x258]
mov word [rsp + 0x2c], ax
movsx eax, word [0x1800c360c]
mov dword [rsp + 0x1cc], eax
cmp dword [rsp + 0x1cc], 0
je 0x18003fa94
jmp 0x18003fac0
movzx eax, byte [0x1800c35a4]
mov rcx, qword [0x1800c36a0]
and rcx, rax
mov rax, rcx
movsx rcx, byte [0x1800c35a5]
imul rax, rcx
mov byte [rsp + 0x22], al
mov eax, dword [rsp + 0x54]
mov byte [rsp + 0x29], al
jmp 0x18003fae0
mov eax, dword [rsp + 0x54]
mov ecx, dword [0x1800c35d4]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x1800c35d4]
add ecx, eax
mov eax, ecx
mov dword [0x1800c35d4], eax
mov eax, dword [rsp + 0xb0]
add eax, 0x4425
mov dword [rsp + 0x1d0], eax
movzx eax, byte [rsp + 0x30]
movzx eax, al
cmp dword [rsp + 0x44], eax
jbe 0x18003fb0e
mov dword [rsp + 0x12c], 1
jmp 0x18003fb19
mov dword [rsp + 0x12c], 0
cmp dword [rsp + 0x44], 0x62
jbe 0x18003fb2d
mov dword [rsp + 0x128], 1
jmp 0x18003fb38
mov dword [rsp + 0x128], 0
mov eax, dword [rsp + 0x128]
cmp dword [rsp + 0x12c], eax
je 0x18003fb4a
jmp 0x18003fb77
mov rax, qword [0x1800c36b0]
dec rax
mov qword [0x1800c36b0], rax
movzx eax, byte [rsp + 0x20]
movsx rax, al
movabs rcx, 0x6143fd0e92a69
imul rax, rcx
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0xb0]
add eax, 0xbb
mov dword [rsp + 0x2c0], eax
mov eax, dword [0x1800c36d4]
mov eax, eax
imul rax, qword [0x1800c3698]
mov qword [rsp + 0x60], rax
movsx eax, byte [0x1800c35a5]
cmp dword [0x1800c35bc], eax
ja 0x18003fbee
mov byte [rsp + 0x20], 0x5e
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x18003fbd0
movsxd rax, dword [rsp + 0x3c]
mov qword [rsp + 0x260], rax
jmp 0x18003fbdd
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x260], rax
movzx eax, word [rsp + 0x260]
mov word [0x1800c36d0], ax
jmp 0x18003fc49
movzx eax, byte [0x1800c35eb]
movzx eax, al
test eax, eax
je 0x18003fc05
xor eax, eax
cmp eax, 0xcd52
je 0x18003fc49
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x44]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
movzx eax, byte [0x1800c35a6]
movsx rax, al
mov rcx, qword [0x1800c3668]
sub rcx, rax
mov rax, rcx
mov rcx, qword [0x1800c3668]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c3668], rax
mov eax, dword [rsp + 0x1d0]
add eax, 0x3d
mov ecx, dword [rsp + 0x1d4]
xor ecx, 0xd3ee
or eax, ecx
mov ecx, dword [rsp + 0xb4]
mov edx, dword [rsp + 0x1d8]
add ecx, edx
mov edx, dword [rsp + 0xb4]
mov r8d, dword [rsp + 0xb4]
xor edx, r8d
imul ecx, edx
mov edx, 0xffff2b4f
lea rax, [rax + rdx]
lea eax, [rax + rcx]
mov dword [rsp + 0x1e8], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
add eax, 0xfd
mov dword [rsp + 0x1dc], eax
mov eax, dword [rsp + 0x44]
add eax, 0xf170
mov byte [0x1800c35a4], al
mov eax, dword [rsp + 0xb8]
add eax, 0xe77b
mov dword [rsp + 0x2c4], eax
mov eax, dword [rsp + 0xb8]
add eax, 0xfe79
mov dword [rsp + 0x130], eax
mov rax, qword [0x1800c3660]
dec rax
mov qword [0x1800c3660], rax
movsx rax, word [rsp + 0x2c]
imul rax, qword [0x1800c3688]
movsx rcx, word [rsp + 0x2c]
sub rcx, rax
mov rax, rcx
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0x130]
mov ecx, dword [rsp + 0x130]
xor eax, ecx
mov ecx, dword [rsp + 0x1dc]
xor ecx, 0xb
xor eax, ecx
xor eax, 0x52
mov dword [rsp + 0x1ec], eax
mov eax, dword [rsp + 0x1e0]
test eax, eax
jne 0x18003fecf
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x1e4]
mov ecx, dword [rsp + 0xbc]
add eax, ecx
mov dword [rsp + 0x1f0], eax
mov eax, dword [rsp + 0xbc]
add eax, 0x27c
mov dword [rsp + 0x2c8], eax
mov eax, dword [rsp + 0x1e8]
mov ecx, dword [rsp + 0xbc]
add eax, ecx
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0x1ec]
add eax, ecx
mov ecx, dword [rsp + 0x1f0]
bts ecx, 8
sub eax, ecx
mov ecx, dword [rsp + 0xc0]
mov edx, dword [rsp + 0xc0]
sub ecx, edx
cmp eax, ecx
je 0x18003fecf
movzx eax, byte [str.not_a_stream]
mov rcx, qword [0x1800c3690]
cmp rax, rcx
jne 0x18003fdf7
mov dword [rsp + 0x138], 1
jmp 0x18003fe02
mov dword [rsp + 0x138], 0
movzx eax, byte [str.not_a_stream]
cmp eax, 0x4f
jne 0x18003fe1b
mov dword [rsp + 0x134], 1
jmp 0x18003fe26
mov dword [rsp + 0x134], 0
mov eax, dword [rsp + 0x134]
cmp dword [rsp + 0x138], eax
jne 0x18003fe42
mov rax, qword [rsp + 0x78]
mov word [rsp + 0x40], ax
jmp 0x18003feac
movzx eax, byte [rsp + 0x28]
mov rcx, qword [0x1800c3690]
cmp rax, rcx
je 0x18003fe55
jmp 0x18003feac
movzx eax, byte [str.not_a_stream]
not eax
and eax, 0x1688
test eax, eax
je 0x18003fe74
mov eax, dword [rsp + 0x54]
add eax, 0x35
mov byte [rsp + 0x28], al
jmp 0x18003feac
movzx eax, byte [rsp + 0x20]
movsx eax, al
test eax, eax
jne 0x18003feac
imul rax, qword [0x1800c36a8], 0x1823
mov qword [0x1800c3698], rax
mov rax, qword [0x1800c36c8]
movabs rcx, 0x40789e37e73ce
imul rax, rcx
mov word [rsp + 0x38], ax
mov rax, qword [0x1806dbf60]
shl rax, 3
shl rax, 0x18
mov ecx, dword [rsp + 0xe0]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0xe0], eax
mov dword [rsp + 0x58], 0
jmp 0x18003fee3
mov eax, dword [rsp + 0x58]
inc eax
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x350]
cmp dword [rsp + 0x58], eax
jae 0x180041387
mov rax, qword [0x1800c36d8]
test rax, rax
jne 0x18003ff0e
mov qword [rsp + 0x268], 1
jmp 0x18003ff1a
mov qword [rsp + 0x268], 0
mov rax, qword [0x1800c36c8]
cmp rax, qword [rsp + 0x268]
ja 0x18003ff39
mov qword [rsp + 0x270], 1
jmp 0x18003ff45
mov qword [rsp + 0x270], 0
mov rax, qword [0x1800c36c8]
not rax
xor rax, qword [rsp + 0x270]
not rax
test rax, rax
jne 0x18003ff78
movzx eax, word [rsp + 0x34]
movzx eax, ax
test eax, eax
jne 0x18003ff78
mov dword [rsp + 0x13c], 0
jmp 0x18003ff83
mov dword [rsp + 0x13c], 1
mov eax, dword [rsp + 0x13c]
not eax
test eax, eax
je 0x18003ff92
jmp 0x18003ffd2
mov eax, dword [0x1800c3594]
test eax, eax
je 0x18003ffaa
movzx eax, word [0x1800c36c4]
mov word [rsp + 0x38], ax
jmp 0x18003ffd2
movsx eax, byte [0x1800c35a7]
movzx ecx, word [rsp + 0x34]
movzx ecx, cx
cmp eax, ecx
jne 0x18003ffd2
mov eax, dword [rsp + 0x4c]
mov dword [0x1800c3594], eax
movzx eax, byte [rsp + 0x28]
mov dword [0x1800c36c0], eax
mov rax, qword [0x1800c36c8]
test rax, rax
jne 0x18003fff8
mov rax, qword [0x1800c36a0]
test rax, rax
jne 0x18003fff8
mov qword [rsp + 0x278], 0
jmp 0x180040004
mov qword [rsp + 0x278], 1
mov rax, qword [rsp + 0x278]
cmp qword [rsp + 0x68], rax
jge 0x180040025
mov eax, dword [rsp + 0x44]
imul rax, qword [0x1800c36a8]
mov dword [rsp + 0x44], eax
jmp 0x180040095
movsx eax, word [0x1800c360c]
cmp eax, dword [0x1800c35bc]
jae 0x180040042
mov qword [rsp + 0x280], 1
jmp 0x18004004e
mov qword [rsp + 0x280], 0
mov rax, qword [0x1800c3690]
cmp qword [rsp + 0x280], rax
jg 0x180040095
mov rax, qword [0x1800c36a8]
mov rcx, qword [0x1800c36a8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c36a8], rax
movzx eax, byte [0x1800c35a6]
movsx rax, al
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xc4], eax
mov eax, 1
imul rax, rax, 0x6ac
lea rcx, [0x18075d6c0]
movzx edx, byte [0x1800c36a8]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0xc4]
add eax, 0x392
mov dword [rsp + 0x144], eax
mov eax, dword [rsp + 0xc4]
add eax, 0x4b
mov dword [rsp + 0x148], eax
movzx eax, word [rsp + 0x34]
movzx eax, ax
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
test rax, rax
je 0x180040118
movsxd rax, dword [0x1800c36c4]
cmp rax, qword [0x1800c3680]
je 0x180040118
mov dword [rsp + 0x140], 1
jmp 0x180040123
mov dword [rsp + 0x140], 0
mov eax, dword [rsp + 0x140]
not eax
test eax, eax
je 0x180040132
jmp 0x18004016c
mov eax, dword [rsp + 0x50]
movabs rcx, 0x1588ad7dbcdeb
imul rax, rcx
mov word [0x1800c360c], ax
mov rax, qword [0x1800c3668]
mov ecx, 0x9bcaeaa9
xor rax, rcx
mov ecx, dword [0x1800c35d4]
add rcx, rax
mov rax, rcx
mov dword [0x1800c35d4], eax
mov eax, dword [rsp + 0xc4]
add eax, 0x1a0
mov dword [rsp + 0x2cc], eax
mov eax, dword [rsp + 0x144]
mov ecx, dword [rsp + 0x144]
imul eax, ecx
mov ecx, dword [rsp + 0x148]
lea eax, [rax + rcx + 0x33c]
mov ecx, dword [rsp + 0x148]
mov edx, 0x394
sub edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x180041382
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x1800401cb
mov dword [rsp + 0x14c], 1
jmp 0x1800401d6
mov dword [rsp + 0x14c], 0
cmp dword [rsp + 0x14c], 0
je 0x1800401ef
mov rax, qword [rsp + 0x78]
inc rax
mov qword [rsp + 0x78], rax
jmp 0x18004020a
mov rax, qword [0x1800c3668]
not rax
test rax, rax
je 0x18004020a
mov eax, 0x905ea875
mov qword [0x1800c36d8], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [0x1800c36c4]
and ecx, eax
mov eax, ecx
mov ecx, dword [0x1800c36c4]
sub ecx, eax
mov eax, ecx
mov dword [0x1800c36c4], eax
mov eax, dword [rsp + 0x54]
add eax, 0xcd80a6b1
mov word [rsp + 0x40], ax
mov eax, dword [rsp + 0xc8]
add eax, 0x14a
mov dword [rsp + 0x2d4], eax
mov eax, dword [rsp + 0xc8]
add eax, 0x10f
mov dword [rsp + 0x2d8], eax
mov eax, dword [0x1806dc008]
mov qword [rsp + 0x60], rax
movabs rax, 0xd2a9f88a20f40
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0xc8]
add eax, 0x168
mov dword [rsp + 0x178], eax
mov dword [rsp + 0xf0], 0
mov eax, dword [rsp + 0x58]
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x348]
mov eax, dword [rcx + rax]
mov rcx, qword [rsp + 0x340]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1800402df
mov rax, qword [rsp + 0x90]
inc rax
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x58]
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x348]
mov eax, dword [rcx + rax + 4]
mov rcx, qword [rsp + 0x340]
add rcx, rax
mov rax, rcx
cmp qword [rsp + 0x90], rax
jae 0x18004048b
mov rax, qword [rsp + 0x90]
mov ecx, dword [rsp + 0xe0]
cmp dword [rax], ecx
jne 0x18004033f
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax + 4]
cmp eax, 0xc3
jne 0x18004033f
cmp dword [rsp + 0x370], 1
je 0x180040363
mov rax, qword [rsp + 0x90]
movzx eax, word [rax]
cmp eax, 0x23ff
jne 0x180040486
cmp dword [rsp + 0x370], 0
jne 0x180040486
mov rax, qword [rsp + 0x358]
mov dword [rax], 0
mov eax, dword [rsp + 0x58]
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x348]
mov eax, dword [rcx + rax + 8]
mov rcx, qword [rsp + 0x340]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x2e8], rax
mov r8, qword [rsp + 0x358]
mov rdx, qword [rsp + 0x2e8]
mov rcx, qword [rsp + 0x340]
call fcn.18003cf30
mov dword [rsp + 0x150], eax
cmp dword [rsp + 0x150], 0
je 0x180040486
mov eax, dword [rsp + 0x88]
inc eax
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x368]
mov ecx, dword [rsp + 0x88]
cmp dword [rax], ecx
jb 0x1800403f5
jmp 0x1800402cc
mov rax, qword [rsp + 0x368]
mov ecx, dword [rsp + 0x88]
mov dword [rax], ecx
cmp dword [rsp + 0x370], 1
jne 0x18004044b
mov rax, qword [rsp + 0x90]
mov qword [0x1806dbef8], rax
mov rax, qword [rsp + 0x358]
mov eax, dword [rax]
mov qword [0x1806dbf28], rax
mov dword [rsp + 0xf0], 1
mov rax, qword [rsp + 0x360]
mov ecx, dword [rsp + 0x58]
mov dword [rax], ecx
jmp 0x180040484
mov rax, qword [rsp + 0x90]
mov qword [0x1806dbef0], rax
mov rax, qword [rsp + 0x358]
mov eax, dword [rax]
mov qword [0x1806dbf20], rax
mov dword [rsp + 0xf0], 1
mov rax, qword [rsp + 0x360]
mov ecx, dword [rsp + 0x58]
mov dword [rax], ecx
jmp 0x18004048b
jmp 0x1800402cc
mov eax, dword [rsp + 0xcc]
mov ecx, dword [rsp + 0xcc]
add eax, ecx
mov ecx, dword [rsp + 0x1f4]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xcc]
mov edx, dword [rsp + 0x1f8]
xor ecx, edx
cmp eax, ecx
je 0x180041382
lea rax, [rsp + 0x2f8]
lea rcx, [0x18009fc80]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x26
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x2f8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [rsp + 0x34], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd0], eax
mov eax, dword [rsp + 0xd0]
add eax, 0x77b1
mov dword [rsp + 0x200], eax
mov eax, dword [rsp + 0xd0]
add eax, 0x2c
mov dword [rsp + 0x204], eax
movsx eax, byte [0x1800c35a5]
xor eax, 0x915727bd
mov byte [0x1800c35a6], al
mov rax, qword [0x1800c36b8]
mov rcx, qword [0x1800c36d8]
imul rax, rcx
mov rcx, qword [0x1800c36b8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c36b8], rax
mov eax, dword [rsp + 0xd0]
add eax, 0x94
mov dword [rsp + 0x154], eax
mov dword [rsp + 0x50], 0
mov eax, dword [0x1800c35d4]
mov rcx, qword [0x1800c3660]
imul rax, rcx
mov dword [0x1800c35d4], eax
mov rax, qword [0x1800c36b8]
mov ecx, 0x81f82a30
sub rax, rcx
mov qword [0x1800c3680], rax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x1fc], eax
cmp dword [rsp + 0x1fc], 0
je 0x1800405b5
jmp 0x1800405e0
mov eax, 1
imul rax, rax, 0x9322
lea rcx, [0x1808140c0]
movsx eax, byte [rcx + rax]
movzx ecx, byte [0x1800c35a6]
movsx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [0x1800c35a6], al
movzx eax, word [0x1800c35ec]
cwde
movzx ecx, byte [0x1800c35a4]
cmp eax, ecx
jne 0x1800405f5
jmp 0x180040624
movzx eax, byte [0x1800c35a3]
movsx eax, al
imul eax, eax, 0x581e6486
mov dword [0x1800c3594], eax
movsx eax, byte [rsp + 0x22]
movsx ecx, byte [rsp + 0x22]
sub eax, ecx
movsx ecx, byte [rsp + 0x22]
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x22], al
mov eax, dword [rsp + 0x200]
mov ecx, dword [rsp + 0x204]
imul eax, ecx
mov ecx, dword [rsp + 0x154]
mov edx, dword [rsp + 0x154]
sub ecx, edx
mov edx, 0xffeb6fb4
lea rax, [rax + rdx]
lea eax, [rax + rcx]
mov dword [rsp + 0x21c], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd4], eax
cmp qword [rsp + 0x68], 0
jne 0x18004067a
mov dword [rsp + 0x158], 1
jmp 0x180040685
mov dword [rsp + 0x158], 0
mov eax, dword [rsp + 0x158]
cmp dword [0x1800c35d4], eax
ja 0x1800406a1
mov dword [rsp + 0x160], 1
jmp 0x1800406ac
mov dword [rsp + 0x160], 0
cmp qword [rsp + 0x60], 0
jae 0x1800406c1
mov dword [rsp + 0x15c], 1
jmp 0x1800406cc
mov dword [rsp + 0x15c], 0
mov eax, dword [rsp + 0x15c]
cmp dword [rsp + 0x160], eax
jge 0x180040706
mov eax, dword [rsp + 0x48]
mov eax, eax
mov rcx, qword [0x1800c36b8]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c36b8], rax
movzx eax, word [0x1806dc008]
mov word [0x1800c360c], ax
jmp 0x18004070d
mov byte [0x1800c35a4], 0xa4
mov eax, dword [rsp + 0xd4]
add eax, 0x186
mov dword [rsp + 0x210], eax
imul eax, dword [0x1800c35d4], 0x952fb3da
mov dword [rsp + 0x50], eax
movzx eax, byte [0x1806dc008]
mov byte [0x1800c35a4], al
mov eax, dword [rsp + 0xd4]
add eax, 0x7d7
mov dword [rsp + 0x20c], eax
movzx eax, byte [0x1800c35eb]
movzx eax, al
cmp eax, dword [0x1800c35bc]
jne 0x180040771
mov rax, qword [0x1800c3660]
sub rax, 0xa155
mov byte [rsp + 0x28], al
mov eax, dword [rsp + 0xd4]
add eax, 0x1fcb
mov dword [rsp + 0x208], eax
cmp dword [0x1800c35bc], 0
je 0x180040815
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [0x1800c3678]
imul rcx, rax
mov rax, rcx
mov rcx, qword [0x1800c3678]
add rcx, rax
mov rax, rcx
mov qword [0x1800c3678], rax
mov rax, qword [0x1800c36b8]
test rax, rax
jne 0x1800407d2
mov qword [rsp + 0x250], 1
jmp 0x1800407de
mov qword [rsp + 0x250], 0
movsxd rax, dword [0x1800c36c4]
mov rcx, qword [0x1800c36b8]
mov rdx, qword [rsp + 0x250]
add rdx, rcx
mov rcx, rdx
movsx rdx, word [rsp + 0x40]
add rdx, qword [rsp + 0x68]
imul rcx, rdx
add rax, rcx
mov byte [rsp + 0x29], al
jmp 0x1800408e4
cmp qword [rsp + 0x60], 0
je 0x18004086a
cmp qword [rsp + 0x68], 0
je 0x18004086a
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x180040840
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x164], eax
jmp 0x18004084c
movzx eax, byte [rsp + 0x21]
mov dword [rsp + 0x164], eax
movzx eax, word [rsp + 0x164]
mov word [rsp + 0x2c], ax
movzx eax, byte [rsp + 0x20]
movsx eax, al
shl eax, 5
mov byte [rsp + 0x30], al
jmp 0x1800408e4
cmp dword [rsp + 0x4c], 0
jb 0x1800408e4
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x180040886
mov dword [rsp + 0x168], 1
jmp 0x180040891
mov dword [rsp + 0x168], 0
cmp dword [rsp + 0x3c], 0
jne 0x1800408a5
mov dword [rsp + 0x16c], 1
jmp 0x1800408b0
mov dword [rsp + 0x16c], 0
mov eax, dword [rsp + 0x54]
imul eax, dword [rsp + 0x168]
add eax, dword [rsp + 0x16c]
movzx ecx, word [rsp + 0x34]
movzx ecx, cx
add eax, ecx
mov byte [str.not_a_stream], al
mov rax, qword [0x1800c36c8]
sub rax, 0xa6a6
mov dword [rsp + 0x3c], eax
mov rax, qword [0x1800c36b8]
cmp qword [rsp + 0x60], rax
jb 0x1800408ff
mov dword [rsp + 0x170], 1
jmp 0x18004090a
mov dword [rsp + 0x170], 0
mov rax, qword [0x1800c36a0]
cmp rax, 0x6605c048
jg 0x180040926
mov dword [rsp + 0x174], 1
jmp 0x180040931
mov dword [rsp + 0x174], 0
mov eax, dword [rsp + 0x170]
not eax
add eax, dword [rsp + 0x174]
cmp eax, 0xeac4
jne 0x180040982
movsx eax, byte [rsp + 0x22]
imul eax, eax, 0xd2
movzx ecx, byte [0x1800c35d3]
add ecx, eax
mov eax, ecx
mov byte [0x1800c35d3], al
movsxd rax, dword [0x1800c36c4]
mov rcx, qword [0x1800c36b0]
imul rcx, rax
mov rax, rcx
mov qword [0x1800c36b0], rax
jmp 0x1800409a4
movzx eax, byte [0x1800c35a3]
movsx eax, al
sub eax, dword [rsp + 0x4c]
movzx ecx, byte [0x1800c35a3]
movsx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [0x1800c35a3], al
mov eax, dword [rsp + 0x208]
mov ecx, 0x32c6
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x20c]
mov edx, dword [rsp + 0x210]
xor ecx, edx
or eax, ecx
mov ecx, 0x178f
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x178]
mov edx, dword [rsp + 0x178]
xor ecx, edx
sub eax, ecx
mov dword [rsp + 0x220], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd8], eax
movsx ax, byte [0x1800c35a5]
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0xd8]
add eax, 0x58
mov dword [rsp + 0x19c], eax
mov byte [0x1800c35d3], 0
cmp dword [rsp + 0x50], 0
jne 0x180040a2e
mov dword [rsp + 0x17c], 1
jmp 0x180040a39
mov dword [rsp + 0x17c], 0
movsx rax, word [0x1800c36d0]
mov rcx, qword [0x1800c36c8]
and rax, rcx
mov ecx, dword [rsp + 0x48]
add ecx, dword [rsp + 0x17c]
mov ecx, ecx
sub rax, rcx
test rax, rax
jne 0x180040a6e
mov qword [rsp + 0x288], 1
jmp 0x180040a7a
mov qword [rsp + 0x288], 0
mov rax, qword [rsp + 0x288]
mov qword [0x1800c36b0], rax
mov dword [rsp + 0x4c], 0xd37b0456
movzx eax, byte [0x1800c35d3]
mov dword [rsp + 0x2dc], eax
mov eax, dword [rsp + 0xd8]
add eax, 0x67f7
mov dword [rsp + 0x2e0], eax
mov eax, dword [rsp + 0xd8]
add eax, 0xda
mov dword [rsp + 0x214], eax
mov rax, qword [0x1800c36e0]
test rax, rax
je 0x180040ae8
mov eax, dword [rsp + 0x4c]
not eax
test eax, eax
je 0x180040ae8
mov dword [rsp + 0x188], 1
jmp 0x180040af3
mov dword [rsp + 0x188], 0
movzx eax, word [rsp + 0x38]
cwde
test eax, eax
jne 0x180040b0a
mov dword [rsp + 0x180], 1
jmp 0x180040b15
mov dword [rsp + 0x180], 0
mov eax, dword [0x1800c36d4]
cmp eax, dword [rsp + 0x180]
jbe 0x180040b31
mov dword [rsp + 0x184], 1
jmp 0x180040b3c
mov dword [rsp + 0x184], 0
mov eax, dword [rsp + 0x184]
cmp dword [rsp + 0x188], eax
jl 0x180040bf1
cmp dword [0x1800c36c0], 0x63555e2
jne 0x180040ba7
mov rax, qword [0x1800c3660]
test rax, rax
jne 0x180040b75
mov dword [rsp + 0x18c], 1
jmp 0x180040b80
mov dword [rsp + 0x18c], 0
mov eax, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x18c]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
movzx eax, word [rsp + 0x34]
movzx eax, ax
sub eax, 0x4de714bf
mov byte [rsp + 0x28], al
jmp 0x180040bec
mov qword [0x1800c3690], 0xc537
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
je 0x180040bd3
movzx eax, byte [0x1800c35a3]
movsx eax, al
mov dword [rsp + 0x190], eax
jmp 0x180040be0
mov eax, dword [0x1800c36d4]
mov dword [rsp + 0x190], eax
movzx eax, byte [rsp + 0x190]
mov byte [rsp + 0x28], al
jmp 0x180040d1c
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x180040c0e
mov rax, qword [rsp + 0x60]
shl rax, 5
mov qword [0x1800c36e0], rax
jmp 0x180040d1c
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
jne 0x180040c2a
mov qword [rsp + 0x290], 1
jmp 0x180040c36
mov qword [rsp + 0x290], 0
mov rax, qword [0x1800c36d8]
cmp qword [rsp + 0x290], rax
je 0x180040c54
mov dword [rsp + 0x194], 1
jmp 0x180040c5f
mov dword [rsp + 0x194], 0
movzx eax, word [rsp + 0x24]
cwde
movzx ecx, byte [str.not_a_stream]
imul eax, ecx
mov ecx, dword [rsp + 0x194]
add ecx, eax
mov eax, ecx
not eax
test eax, eax
je 0x180040ce2
cmp dword [rsp + 0x44], 0
jne 0x180040c94
mov dword [rsp + 0x198], 1
jmp 0x180040c9f
mov dword [rsp + 0x198], 0
movzx eax, byte [rsp + 0x21]
imul eax, dword [rsp + 0x198]
mov ecx, dword [rsp + 0x44]
imul ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x60]
lea rax, [rcx + rax + 0x74f5]
not rax
mov byte [str.not_a_stream], al
movzx eax, byte [str.not_a_stream]
sub eax, 0x97ce8401
mov eax, eax
mov qword [rsp + 0x78], rax
jmp 0x180040d1c
cmp dword [rsp + 0x50], 0xd21033e0
ja 0x180040d1c
movzx eax, byte [0x1806dc008]
mov byte [0x1800c35a3], al
mov eax, dword [0x1800c3594]
cdqe
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
movzx eax, byte [0x1800c35a6]
movsx eax, al
mov ecx, dword [rsp + 0x3c]
lea eax, [rax + rcx - 0xebfb571]
mov byte [0x1800c35a6], al
mov eax, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0x214]
add eax, ecx
mov ecx, dword [rsp + 0x19c]
add ecx, 0x1d
or eax, ecx
mov ecx, 0x376
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x224], eax
mov eax, dword [rsp + 0x50]
cmp rax, qword [rsp + 0x68]
jge 0x180040d70
jmp 0x180040d98
movzx eax, byte [0x1800c35a6]
movsx eax, al
movzx ecx, word [rsp + 0x38]
movsx ecx, cx
sub ecx, 0xcf
imul eax, ecx
mov word [rsp + 0x34], ax
mov dword [rsp + 0x4c], 0x66
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xdc], eax
mov eax, 4
mov word [rsp + 0x34], ax
mov eax, dword [rsp + 0x3c]
add eax, 0xff
cdqe
mov qword [0x1800c3668], rax
movzx eax, word [rsp + 0x34]
movzx eax, ax
mov dword [rsp + 0x84], eax
cmp dword [rsp + 0x84], 0
je 0x180040e13
cmp dword [rsp + 0x84], 1
je 0x180040e5d
cmp dword [rsp + 0x84], 2
je 0x180040e7b
cmp dword [rsp + 0x84], 3
je 0x180040eb3
cmp dword [rsp + 0x84], 4
je 0x180040f12
jmp 0x180040f8a
movsx rax, byte [0x1800c35a5]
mov rcx, qword [0x1800c3688]
xor rcx, rax
mov rax, rcx
mov word [rsp + 0x2c], ax
movzx eax, word [0x1800c3624]
movzx eax, ax
mov rcx, qword [0x1800c36e0]
add rax, rcx
movzx ecx, word [0x1800c3624]
movzx ecx, cx
add rcx, rax
mov rax, rcx
mov word [0x1800c3624], ax
jmp 0x180040f8a
mov eax, 1
imul rax, rax, 0x7b
lea rcx, [0x1806efcc0]
movzx eax, byte [rcx + rax]
mov qword [rsp + 0x78], rax
jmp 0x180040f8a
mov rax, qword [0x1800c36e0]
mov ecx, 0xf811c94f
sub rax, rcx
mov dword [0x1800c36d4], eax
movzx eax, word [rsp + 0x24]
cwde
movsx ecx, byte [rsp + 0x22]
sub eax, ecx
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
and ecx, eax
mov eax, ecx
mov word [rsp + 0x24], ax
jmp 0x180040f8a
movsx eax, byte [0x1800c35a7]
test eax, eax
jne 0x180040ecb
mov dword [rsp + 0x1a0], 1
jmp 0x180040ed6
mov dword [rsp + 0x1a0], 0
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x3c]
xor ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0x1a0]
mov dword [0x1800c36c4], eax
imul eax, dword [0x1800c35d4], 0xf40afdd1
mov eax, eax
movsx rcx, word [rsp + 0x40]
xor rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [0x1800c3678], rax
jmp 0x180040f8a
mov eax, dword [rsp + 0x3c]
and eax, 0xff
test eax, eax
jne 0x180040f2c
mov dword [rsp + 0x1a4], 1
jmp 0x180040f37
mov dword [rsp + 0x1a4], 0
movzx eax, byte [rsp + 0x30]
movzx eax, al
mov ecx, dword [rsp + 0x1a4]
imul ecx, eax
mov eax, ecx
cdqe
movsx rcx, byte [0x1800c35a5]
add rcx, qword [0x1800c3680]
movsx rdx, word [rsp + 0x2c]
or rcx, rdx
add rax, rcx
not rax
mov qword [0x1800c36e0], rax
movsxd rax, dword [0x1800c36c0]
movabs rcx, 0x2a27c9a645474
xor rax, rcx
mov byte [rsp + 0x21], al
mov eax, dword [rsp + 0xdc]
add eax, 0x6e
mov dword [rsp + 0x2a0], eax
mov dword [rsp + 0x70], 0xb6b4055d
movzx eax, byte [0x1806dc008]
mov byte [0x1800c35a7], al
mov eax, dword [rsp + 0xdc]
add eax, 0x8d
mov dword [rsp + 0x2a4], eax
movzx eax, byte [str.not_a_stream]
cmp eax, dword [rsp + 0x44]
jae 0x180040fd2
jmp 0x180040ffc
mov rax, qword [0x1800c36a0]
and rax, qword [rsp + 0x60]
mov byte [0x1800c35a3], al
movsx rax, word [rsp + 0x40]
movabs rcx, 0x9a9cc48cffb94
imul rax, rcx
mov byte [rsp + 0x21], al
mov eax, dword [rsp + 0xdc]
add eax, 0xd6
mov dword [rsp + 0x218], eax
mov eax, dword [rsp + 0x218]
xor eax, 0x6efa
add eax, 0xffff9257
mov dword [rsp + 0x22c], eax
cmp dword [rsp + 0xf0], 0
je 0x180041382
movsx eax, byte [0x1800c35a7]
mov ecx, dword [rsp + 0x48]
add eax, ecx
movsx ecx, byte [0x1800c35a7]
add ecx, eax
mov eax, ecx
mov byte [0x1800c35a7], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xe4], eax
movzx eax, word [rsp + 0x24]
movsx rax, ax
mov rcx, qword [0x1800c36b8]
cmp rax, rcx
je 0x180041260
mov eax, dword [0x1800c35bc]
cmp dword [0x1800c36c0], eax
je 0x180041094
mov dword [rsp + 0x1ac], 1
jmp 0x18004109f
mov dword [rsp + 0x1ac], 0
cmp dword [0x1800c36c0], 0x29
je 0x1800410b5
mov dword [rsp + 0x1a8], 1
jmp 0x1800410c0
mov dword [rsp + 0x1a8], 0
mov eax, dword [rsp + 0x1a8]
cmp dword [rsp + 0x1ac], eax
jge 0x18004116f
cmp dword [0x1800c35d4], 0
jne 0x1800410ea
mov dword [rsp + 0x1b0], 1
jmp 0x1800410f5
mov dword [rsp + 0x1b0], 0
mov rax, qword [0x1800c36c8]
mov ecx, 0xba8188f2
imul rax, rcx
not rax
mov ecx, dword [rsp + 0x4c]
mov rdx, qword [0x1800c36b0]
add rdx, rcx
mov rcx, rdx
add rax, rcx
not rax
movzx ecx, byte [0x1800c35a6]
movsx ecx, cl
sub ecx, dword [rsp + 0x1b0]
movsxd rcx, ecx
movzx edx, word [0x1800c35ec]
movsx rdx, dx
mov rdi, qword [0x1800c3698]
xor rdi, rdx
mov rdx, rdi
add rcx, rdx
xor rax, rcx
not rax
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x29]
mov ecx, dword [rsp + 0x3c]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
jmp 0x180041260
cmp qword [rsp + 0x68], 0
je 0x180041260
movzx eax, byte [0x1800c35a3]
movsx rax, al
mov rcx, qword [0x1800c36b8]
add rcx, rax
mov rax, rcx
test rax, rax
jne 0x1800411a6
mov qword [rsp + 0x240], 1
jmp 0x1800411b2
mov qword [rsp + 0x240], 0
mov rax, qword [0x1800c36c8]
test rax, rax
jne 0x1800411cb
mov dword [rsp + 0x1b4], 1
jmp 0x1800411d6
mov dword [rsp + 0x1b4], 0
mov eax, dword [rsp + 0x1b4]
mov ecx, dword [rsp + 0x50]
and ecx, eax
mov eax, ecx
movzx ecx, word [0x1800c35ec]
movsx ecx, cx
mov edx, dword [0x1800c36c4]
xor edx, ecx
mov ecx, edx
imul eax, ecx
test eax, eax
jne 0x18004120e
mov qword [rsp + 0x248], 1
jmp 0x18004121a
mov qword [rsp + 0x248], 0
mov eax, dword [0x1800c35bc]
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
imul rax, qword [rsp + 0x240]
xor rax, qword [rsp + 0x248]
mov qword [0x1800c36e0], rax
movsx eax, word [rsp + 0x2c]
movzx ecx, word [rsp + 0x34]
movzx ecx, cx
sub eax, ecx
movsx ecx, word [rsp + 0x2c]
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0x21c]
mov ecx, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0xe8], eax
mov eax, 2
imul rax, rax, 0x1670
lea rcx, [0x1807d7040]
movzx eax, word [rcx + rax]
movzx ecx, word [0x1800c3624]
movzx ecx, cx
add ecx, eax
mov eax, ecx
mov word [0x1800c3624], ax
mov eax, dword [rsp + 0x220]
mov ecx, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0x1b8], eax
mov rax, qword [rsp + 0x78]
add rax, 0xdede
mov qword [0x1800c36e0], rax
movzx eax, word [rsp + 0x38]
mov byte [rsp + 0x22], al
mov eax, dword [rsp + 0x224]
mov ecx, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0x228], eax
mov eax, dword [rsp + 0x1b8]
mov ecx, dword [rsp + 0xe8]
or eax, ecx
mov ecx, dword [rsp + 0xe8]
mov edx, dword [rsp + 0xe8]
imul ecx, edx
sub eax, ecx
mov ecx, dword [rsp + 0x1b8]
mov edx, dword [rsp + 0x228]
mov edi, dword [rsp + 0x22c]
sub edx, edi
lea ecx, [rcx + rdx + 0x71]
cmp eax, ecx
je 0x180041382
movabs rax, 0x746e9a5b87d23
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x48]
mov ecx, ecx
cmp rax, rcx
jbe 0x180041350
jmp 0x180041380
mov eax, dword [rsp + 0x54]
not eax
test eax, eax
je 0x180041380
movsx eax, word [rsp + 0x40]
imul eax, eax, 5
mov byte [rsp + 0x21], al
movzx eax, byte [rsp + 0x28]
add eax, 0x8499
movzx ecx, byte [rsp + 0x20]
movsx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x20], al
jmp 0x180041387
jmp 0x18003fed9
add rsp, 0x328
pop rdi
pop rsi
ret