Function at 0x1800437a0
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, 0x2a8
movabs rax, 0xbc112a76fcad7
mov qword [rsp + 0x280], rax
mov rax, qword [0x1800c36c8]
mov qword [rsp + 0x58], rax
mov rax, qword [0x1800c3688]
mov qword [rsp + 0x70], rax
movzx eax, byte [0x1800c36c4]
mov byte [rsp + 0x29], al
mov eax, dword [0x1800c35bc]
mov qword [rsp + 0xd0], rax
movzx eax, word [0x1800c3624]
mov byte [rsp + 0x20], al
movzx eax, word [0x1800c3698]
mov word [rsp + 0x34], ax
mov rax, qword [0x1800c3660]
mov qword [rsp + 0x90], rax
movzx eax, byte [0x1800c35a6]
movsx ax, al
mov word [rsp + 0x40], ax
movzx eax, word [0x1800c3624]
movzx eax, ax
mov qword [rsp + 0x50], rax
mov eax, 0x1cc3
mov word [rsp + 0x2c], ax
mov byte [rsp + 0x2a], 0x6f
mov byte [rsp + 0x28], 0xfc
movzx eax, byte [0x1800c35a4]
mov byte [rsp + 0x21], al
mov byte [rsp + 0x22], 4
mov dword [rsp + 0x44], 0xe8633595
mov eax, 0x895e
mov word [rsp + 0x30], ax
mov eax, 0x4988
mov word [rsp + 0x24], ax
movsx rax, word [0x1800c36d0]
mov qword [rsp + 0x88], rax
movsx rax, word [0x1800c360c]
mov qword [rsp + 0xd8], rax
mov eax, 0xa89a
mov word [rsp + 0x38], ax
mov eax, 0x1f90
mov word [rsp + 0x3c], ax
mov byte [rsp + 0x98], 0x9a
mov eax, 0x20
mov word [rsp + 0x1e0], ax
mov rax, qword [0x1800c36c8]
mov word [rsp + 0x1c8], ax
mov qword [rsp + 0x288], 0x2c
movzx eax, byte [0x1800c36c4]
mov byte [rsp + 0x99], al
movsxd rax, dword [0x1800c36c0]
mov qword [rsp + 0x290], rax
mov qword [rsp + 0x298], 0x2a7fe015
movsx eax, byte [0x1800c35a5]
mov dword [rsp + 0x238], eax
movzx eax, byte [0x1800c35a4]
imul eax, eax, 0x2a4b
mov word [rsp + 0x38], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0x9c]
add eax, 0x3b4
mov dword [rsp + 0xb4], eax
movzx eax, word [rsp + 0x24]
cmp rax, qword [0x1800c3670]
jle 0x180043989
mov eax, dword [0x1800c3594]
cdqe
mov rcx, qword [rsp + 0x58]
imul rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x58], rax
jmp 0x180043a63
movzx eax, word [0x1800c3624]
movzx eax, ax
mov rcx, qword [rsp + 0x58]
cmp rax, rcx
jae 0x1800439aa
mov dword [rsp + 0x1ac], 1
jmp 0x1800439b5
mov dword [rsp + 0x1ac], 0
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x29]
movzx ecx, cl
cmp rax, rcx
jbe 0x1800439d4
mov dword [rsp + 0x1a8], 1
jmp 0x1800439df
mov dword [rsp + 0x1a8], 0
mov eax, dword [rsp + 0x1a8]
cmp dword [rsp + 0x1ac], eax
jl 0x1800439fc
mov dword [rsp + 0x1b0], 1
jmp 0x180043a07
mov dword [rsp + 0x1b0], 0
mov eax, dword [rsp + 0x1b0]
not eax
test eax, eax
je 0x180043a32
movsx rax, word [0x1800c360c]
movabs rcx, 0x85075b1a545a7
add rax, rcx
mov qword [0x1800c36e0], rax
jmp 0x180043a63
movzx eax, word [rsp + 0x30]
test eax, eax
jne 0x180043a63
movsxd rax, dword [rsp + 0x44]
add rax, qword [0x1800c36a8]
movsxd rcx, dword [rsp + 0x44]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x44], eax
mov eax, dword [0x1806dc008]
mov qword [0x1800c36c8], rax
mov eax, dword [rsp + 0x9c]
add eax, 0xf5
mov dword [rsp + 0x1e4], eax
mov eax, dword [rsp + 0x9c]
add eax, 0x3f5
mov dword [rsp + 0x144], eax
mov rax, qword [0x1800c36e0]
add rax, 0x19a6
mov qword [0x1800c3660], rax
mov rax, qword [0x1800c36b0]
test rax, rax
jne 0x180043ab7
mov qword [rsp + 0x1f8], 1
jmp 0x180043ac3
mov qword [rsp + 0x1f8], 0
mov rax, qword [0x1800c36e0]
sub rax, qword [rsp + 0x1f8]
movsx rcx, byte [rsp + 0x22]
add rax, rcx
movzx ecx, byte [str.not_a_stream]
not ecx
movzx edx, word [rsp + 0x34]
not edx
imul edx, dword [0x1800c35d4]
add ecx, edx
mov ecx, ecx
add rax, rcx
test rax, rax
jne 0x180043b05
mov byte [rsp + 0x48], 1
jmp 0x180043b0a
mov byte [rsp + 0x48], 0
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x2a], al
movzx eax, word [rsp + 0x24]
test eax, eax
jne 0x180043b29
mov dword [rsp + 0x1b4], 1
jmp 0x180043b34
mov dword [rsp + 0x1b4], 0
movzx eax, byte [rsp + 0x28]
cmp eax, dword [rsp + 0x1b4]
jg 0x180043b4f
mov dword [rsp + 0x1b8], 1
jmp 0x180043b5a
mov dword [rsp + 0x1b8], 0
mov eax, dword [0x1800c35bc]
not eax
cmp dword [rsp + 0x1b8], eax
jae 0x180043b78
mov dword [rsp + 0xe4], 1
jmp 0x180043b83
mov dword [rsp + 0xe4], 0
movzx eax, byte [0x1800c35a4]
mov rcx, qword [0x1800c36c8]
mov rdx, qword [rsp + 0x70]
or rdx, rcx
mov rcx, rdx
cmp rax, rcx
jb 0x180043bae
mov dword [rsp + 0xe0], 1
jmp 0x180043bb9
mov dword [rsp + 0xe0], 0
mov eax, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xe4]
add ecx, eax
mov eax, ecx
test eax, eax
jne 0x180043bd1
jmp 0x180043c2a
mov eax, dword [0x1800c36d4]
mov eax, eax
and rax, qword [0x1800c3688]
movzx ecx, word [rsp + 0x38]
movzx ecx, cx
mov rdx, qword [0x1800c3688]
sub rdx, rcx
mov rcx, rdx
sub rax, rcx
mov qword [0x1800c3668], rax
mov rax, qword [0x1800c36b8]
imul rax, qword [0x1800c3698]
movzx ecx, byte [rsp + 0x21]
sub rax, rcx
not rax
mov rcx, qword [rsp + 0x88]
sub rax, rcx
mov byte [0x1800c35a4], al
mov dword [rsp + 0x84], 0
mov qword [0x1800c36e0], 0
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x88]
or rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
mov rax, qword [0x1800c36e0]
mov qword [rsp + 0x260], rax
cmp qword [rsp + 0x260], 0
je 0x180043c85
jmp 0x180043c95
mov rax, qword [rsp + 0x58]
sub rax, 0x8ec9
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x80], 0
mov rax, qword [rsp + 0x2d8]
mov dword [rax], 0
mov rax, qword [rsp + 0xd0]
sub rax, 0x86ac
mov dword [0x1800c35d4], eax
mov dword [rsp + 0x64], 0
jmp 0x180043cd6
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x2d0]
cmp dword [rsp + 0x64], eax
jae 0x1800457b0
mov rax, qword [rsp + 0xd0]
test rax, rax
jne 0x180043d00
movzx eax, word [rsp + 0x38]
movzx eax, ax
test eax, eax
je 0x180043d70
movzx eax, byte [rsp + 0x28]
movzx ecx, byte [0x1800c35a3]
movsx ecx, cl
cmp eax, ecx
jle 0x180043d20
mov dword [rsp + 0xec], 1
jmp 0x180043d2b
mov dword [rsp + 0xec], 0
movzx eax, byte [rsp + 0x28]
cmp eax, 0x41
jle 0x180043d42
mov dword [rsp + 0xe8], 1
jmp 0x180043d4d
mov dword [rsp + 0xe8], 0
mov eax, dword [rsp + 0xe8]
cmp dword [rsp + 0xec], eax
jle 0x180043d6e
movzx eax, word [0x1800c3624]
dec ax
mov word [0x1800c3624], ax
jmp 0x180043d95
mov eax, dword [0x1800c3594]
not eax
cdqe
movzx ecx, byte [str.not_a_stream]
mov rdx, qword [0x1800c36a8]
sub rdx, rcx
mov rcx, rdx
and rax, rcx
mov byte [rsp + 0x22], al
movzx eax, word [rsp + 0x3c]
movzx eax, ax
movabs rcx, 0x4ce0a5ecb70f0
mov rdx, qword [0x1800c3680]
add rdx, rcx
mov rcx, rdx
cmp rax, rcx
jle 0x180043e6c
mov rax, qword [0x1800c36b0]
movzx ecx, byte [rsp + 0x21]
cmp rax, rcx
jb 0x180043ddb
mov dword [rsp + 0xf4], 1
jmp 0x180043de6
mov dword [rsp + 0xf4], 0
mov rax, qword [0x1800c36b0]
cmp rax, 0x1b
jb 0x180043e00
mov dword [rsp + 0xf0], 1
jmp 0x180043e0b
mov dword [rsp + 0xf0], 0
mov eax, dword [rsp + 0xf0]
cmp dword [rsp + 0xf4], eax
jg 0x180043e34
mov eax, dword [0x1800c35d4]
mov ecx, dword [rsp + 0x44]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov byte [rsp + 0x20], 0xbe
jmp 0x180043e6a
movabs rax, 0x893f78fe95513
xor ecx, ecx
cmp rcx, rax
je 0x180043e6a
mov rax, qword [0x1800c36a0]
mov rcx, qword [0x1800c3668]
add rax, rcx
mov rcx, qword [0x1800c36a0]
xor rcx, rax
mov rax, rcx
mov qword [0x1800c36a0], rax
jmp 0x180043edf
movzx eax, word [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
not rcx
cmp rax, rcx
jae 0x180043e8b
mov dword [rsp + 0xfc], 1
jmp 0x180043e96
mov dword [rsp + 0xfc], 0
cmp qword [0x1800c3678], 0
jne 0x180043eb6
movzx eax, word [rsp + 0x30]
test eax, eax
jne 0x180043eb6
mov dword [rsp + 0xf8], 0
jmp 0x180043ec1
mov dword [rsp + 0xf8], 1
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0xfc], eax
jl 0x180043edf
movzx eax, byte [rsp + 0x28]
sar eax, 2
mov byte [str.not_a_stream], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa0], eax
mov dword [0x1800c35d4], 1
movsx rax, byte [0x1800c35a7]
mov rcx, qword [0x1800c36c8]
sub rax, rcx
mov byte [0x1800c35a7], al
mov eax, dword [0x1800c35d4]
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0
je 0x180043f34
cmp dword [rsp + 0x100], 1
je 0x180043fa5
jmp 0x180043fb6
mov rax, qword [rsp + 0xd8]
test rax, rax
jne 0x180043f4e
mov dword [rsp + 0x104], 1
jmp 0x180043f59
mov dword [rsp + 0x104], 0
movzx eax, byte [rsp + 0x21]
movsx ecx, word [0x1800c360c]
movzx edx, byte [0x1800c35d3]
imul ecx, edx
sub eax, ecx
movzx ecx, word [rsp + 0x34]
imul ecx, dword [0x1800c36c4]
mov edx, dword [rsp + 0x104]
lea ecx, [rcx + rdx + 0x66f02a2e]
sub eax, ecx
mov word [rsp + 0x2c], ax
movzx eax, word [rsp + 0x24]
and eax, 0x2793cf2f
mov word [0x1800c360c], ax
jmp 0x180043fb6
movzx eax, byte [0x1800c35d3]
sub eax, 0xddf4
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0xa0]
add eax, 0x325
mov dword [rsp + 0x164], eax
movsx eax, byte [0x1800c35a7]
test eax, eax
je 0x180043ff5
movzx eax, word [rsp + 0x24]
mov rcx, qword [0x1800c36c8]
add rax, rcx
movzx ecx, word [rsp + 0x24]
sub rcx, rax
mov rax, rcx
mov word [rsp + 0x24], ax
jmp 0x18004401e
movzx eax, byte [rsp + 0x21]
not eax
mov ecx, dword [0x1800c3594]
cmp eax, ecx
jg 0x18004401e
movabs rax, 0xfffb34c7afc5a2e4
sub rax, qword [rsp + 0x50]
not rax
mov byte [0x1800c35eb], al
mov eax, dword [rsp + 0xa0]
add eax, 0x1ed
mov dword [rsp + 0x23c], eax
movzx eax, byte [rsp + 0x2a]
test eax, eax
je 0x18004406f
movzx eax, byte [rsp + 0x28]
movsx ecx, word [0x1800c36d0]
imul eax, ecx
cdqe
mov ecx, dword [0x1800c36d4]
mov ecx, ecx
mov rdx, qword [rsp + 0x88]
xor rdx, rcx
mov rcx, rdx
add rax, rcx
not rax
mov dword [0x1800c35d4], eax
jmp 0x1800440a3
cmp qword [0x1800c36a8], 0
je 0x1800440a3
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov ecx, dword [0x1800c3594]
sub eax, ecx
mov word [rsp + 0x2c], ax
movzx eax, word [rsp + 0x30]
mov rcx, qword [rsp + 0xd8]
sub rax, rcx
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0xa0]
add eax, 0x3a3
mov dword [rsp + 0x240], eax
mov eax, dword [0x1800c35d4]
cmp dword [rsp + 0x44], eax
jb 0x1800440cf
mov dword [rsp + 0x10c], 1
jmp 0x1800440da
mov dword [rsp + 0x10c], 0
cmp dword [rsp + 0x44], 0x38
jl 0x1800440ee
mov dword [rsp + 0x108], 1
jmp 0x1800440f9
mov dword [rsp + 0x108], 0
mov eax, dword [rsp + 0x108]
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0xa4]
add eax, 0xc6
mov dword [rsp + 0x18c], eax
movzx eax, word [rsp + 0x24]
test eax, eax
je 0x18004425c
mov qword [rsp + 0xd0], 2
movzx eax, word [rsp + 0x38]
movzx eax, ax
test eax, eax
je 0x180044154
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x200], rax
jmp 0x180044166
movzx eax, word [0x1800c3624]
movzx eax, ax
mov qword [rsp + 0x200], rax
movzx eax, byte [rsp + 0x200]
mov byte [rsp + 0x29], al
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x1d8], rax
cmp qword [rsp + 0x1d8], 0
je 0x1800441a8
cmp qword [rsp + 0x1d8], 1
je 0x1800441cb
cmp qword [rsp + 0x1d8], 2
je 0x1800441e6
jmp 0x18004425a
movabs rax, 0x10b75358097b5
mov rcx, qword [0x1800c36a8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c3688], rax
jmp 0x18004425a
movzx eax, byte [rsp + 0x2a]
mov ecx, 2
imul rcx, rcx, 2
lea rdx, [0x18075f350]
mov word [rdx + rcx], ax
jmp 0x18004425a
mov eax, dword [0x1800c35d4]
sub eax, 0x3cdb8369
mov eax, eax
mov qword [0x1800c3690], rax
mov rax, qword [0x1800c36a0]
test rax, rax
jne 0x180044213
mov dword [rsp + 0x110], 1
jmp 0x18004421e
mov dword [rsp + 0x110], 0
movzx eax, word [rsp + 0x38]
movzx eax, ax
not eax
movzx ecx, byte [0x1800c35a3]
movsx ecx, cl
sub eax, ecx
movsx ecx, word [0x1800c360c]
mov edx, dword [rsp + 0x110]
add edx, ecx
mov ecx, edx
not ecx
xor eax, ecx
cdqe
sub rax, qword [0x1800c3698]
mov qword [0x1800c36a0], rax
jmp 0x1800442b4
movzx eax, word [rsp + 0x38]
movzx eax, ax
test eax, eax
jne 0x180044274
mov rax, qword [0x1800c36d8]
test rax, rax
je 0x180044283
movzx eax, byte [0x1800c35d4]
mov byte [0x1800c35d3], al
jmp 0x1800442b4
movzx eax, byte [str.not_a_stream]
cmp qword [0x1800c3670], rax
jle 0x1800442b4
movzx eax, byte [rsp + 0x20]
movzx eax, al
sar eax, 2
cdqe
mov qword [0x1800c36b0], rax
movsx eax, word [0x1800c360c]
mov dword [0x1800c36c4], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x29
mov dword [rsp + 0x190], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x3e4
mov dword [rsp + 0xc8], eax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
cmp rax, qword [rsp + 0x50]
jg 0x18004434f
movzx eax, word [rsp + 0x38]
movzx eax, ax
movzx ecx, byte [rsp + 0x29]
movzx ecx, cl
cmp eax, ecx
jl 0x180044318
movzx eax, word [rsp + 0x2c]
movzx eax, ax
movabs rcx, 0xceee5177f1daa
imul rax, rcx
mov word [rsp + 0x40], ax
jmp 0x18004434a
movzx eax, byte [rsp + 0x28]
test eax, eax
je 0x18004434a
movzx eax, byte [rsp + 0x20]
movzx eax, al
mov rcx, qword [0x1800c3698]
xor rcx, rax
mov rax, rcx
mov rcx, qword [0x1800c3698]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c3698], rax
jmp 0x180044418
movzx eax, word [rsp + 0x30]
not eax
cdqe
add rax, qword [0x1800c3670]
test rax, rax
jne 0x180044370
mov eax, 1
mov word [rsp + 0x68], ax
jmp 0x180044377
xor eax, eax
mov word [rsp + 0x68], ax
movzx eax, word [rsp + 0x68]
mov word [rsp + 0x2c], ax
mov rax, qword [0x1800c36d8]
test rax, rax
jne 0x18004439a
mov dword [rsp + 0x114], 1
jmp 0x1800443a5
mov dword [rsp + 0x114], 0
mov eax, dword [0x1800c3594]
test eax, eax
jne 0x1800443bc
mov dword [rsp + 0x11c], 1
jmp 0x1800443c7
mov dword [rsp + 0x11c], 0
movzx eax, word [rsp + 0x3c]
movzx eax, ax
test eax, eax
jne 0x1800443e0
mov dword [rsp + 0x118], 1
jmp 0x1800443eb
mov dword [rsp + 0x118], 0
movzx eax, word [rsp + 0x24]
mov ecx, dword [rsp + 0x114]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x118]
mov edx, dword [rsp + 0x11c]
xor edx, ecx
mov ecx, edx
not ecx
imul eax, ecx
mov byte [str.not_a_stream], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xa8], eax
movzx eax, byte [rsp + 0x20]
movzx eax, al
cmp qword [0x1800c3678], rax
jge 0x180044443
mov dword [rsp + 0x120], 1
jmp 0x18004444e
mov dword [rsp + 0x120], 0
movzx eax, word [rsp + 0x40]
mov ecx, dword [rsp + 0x120]
sub ecx, eax
mov eax, ecx
test eax, eax
je 0x18004455b
movzx eax, byte [0x1800c35a6]
movsx eax, al
movzx ecx, word [rsp + 0x24]
cmp eax, ecx
jl 0x180044486
mov dword [rsp + 0x128], 1
jmp 0x180044491
mov dword [rsp + 0x128], 0
movzx eax, byte [0x1800c35a6]
movsx eax, al
cmp eax, 0x1e
jl 0x1800444ad
mov dword [rsp + 0x124], 1
jmp 0x1800444b8
mov dword [rsp + 0x124], 0
mov eax, dword [rsp + 0x124]
cmp dword [rsp + 0x128], eax
jne 0x1800444e0
movzx eax, byte [rsp + 0x2a]
mov ecx, dword [0x1800c36d4]
imul ecx, eax
mov eax, ecx
mov dword [0x1800c36d4], eax
jmp 0x180044556
mov rax, qword [0x1800c3670]
not rax
cmp rax, 1
jne 0x1800444fd
mov dword [rsp + 0x12c], 1
jmp 0x180044508
mov dword [rsp + 0x12c], 0
mov eax, dword [rsp + 0x12c]
not eax
test eax, eax
je 0x180044531
movzx eax, byte [rsp + 0x20]
movzx eax, al
movabs rcx, 0x151509e1f3b35
sub rax, rcx
mov word [rsp + 0x2c], ax
jmp 0x180044556
cmp qword [rsp + 0x90], 0
je 0x180044556
mov rax, qword [0x1800c36b8]
movabs rcx, 0x37c307b4b2e02
imul rax, rcx
mov word [rsp + 0x30], ax
jmp 0x1800445fc
cmp qword [0x1800c3680], 0
jne 0x18004457b
movzx eax, word [rsp + 0x30]
test eax, eax
jne 0x18004457b
mov dword [rsp + 0x130], 0
jmp 0x180044586
mov dword [rsp + 0x130], 1
mov eax, dword [rsp + 0x130]
not eax
test eax, eax
je 0x1800445d5
mov rax, qword [rsp + 0xd0]
not rax
mov ecx, dword [0x1800c36d4]
not ecx
xor ecx, 0xdc74694e
mov ecx, ecx
add rax, rcx
test rax, rax
jne 0x1800445c2
mov eax, 1
mov word [rsp + 0x60], ax
jmp 0x1800445c9
xor eax, eax
mov word [rsp + 0x60], ax
movzx eax, word [rsp + 0x60]
mov word [rsp + 0x34], ax
jmp 0x1800445fc
mov rax, qword [rsp + 0x50]
imul rax, qword [rsp + 0x50]
test rax, rax
je 0x1800445fc
movzx eax, word [rsp + 0x34]
movabs rcx, 0x9fc981ab1d87a
imul rax, rcx
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0xa8]
add eax, 0x8526
mov dword [rsp + 0x244], eax
movzx eax, word [rsp + 0x34]
movabs rcx, 0x736a5f02202a6
sub rax, rcx
mov byte [rsp + 0x2a], al
mov eax, dword [rsp + 0xa8]
add eax, 0xb4f3
mov dword [rsp + 0xac], eax
lea rax, [rsp + 0x270]
lea rcx, str.HeapDestroy
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [0x1800c35a3], al
mov eax, dword [rsp + 0xa8]
add eax, 0xefc5
mov dword [rsp + 0x248], eax
mov eax, dword [rsp + 0xac]
xor eax, 0xa768
mov ecx, dword [rsp + 0xac]
mov edx, dword [rsp + 0xac]
xor ecx, edx
xor eax, ecx
mov ecx, 0x139b
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x1bc], eax
movzx eax, word [rsp + 0x3c]
movzx eax, ax
test eax, eax
je 0x1800446c7
movzx eax, word [rsp + 0x38]
movzx eax, ax
mov qword [rsp + 0xd8], rax
jmp 0x1800446e1
movzx eax, byte [0x1800c35eb]
movzx eax, al
mov rcx, qword [0x1800c36b8]
add rax, rcx
mov byte [0x1800c35eb], al
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb0], eax
movsx eax, byte [rsp + 0x22]
test eax, eax
je 0x180044757
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
jne 0x180044712
mov dword [rsp + 0x134], 1
jmp 0x18004471d
mov dword [rsp + 0x134], 0
mov eax, dword [0x1800c35bc]
xor eax, 0xc6839fe5
movsx ecx, word [0x1800c36d0]
movsx edx, byte [rsp + 0x22]
xor ecx, edx
xor eax, ecx
movsx ecx, byte [0x1800c35a7]
and ecx, dword [0x1800c35bc]
sub ecx, dword [rsp + 0x134]
add eax, ecx
mov eax, eax
mov qword [rsp + 0x50], rax
jmp 0x180044799
movzx eax, byte [rsp + 0x29]
movzx eax, al
test eax, eax
je 0x180044799
mov rax, qword [0x1800c36e0]
movabs rcx, 0x9c38b4a9f3687
add rax, rcx
movzx ecx, word [rsp + 0x40]
or rcx, rax
mov rax, rcx
mov word [rsp + 0x40], ax
imul rax, qword [0x1800c36a8], 0xb86f
mov qword [0x1800c36b8], rax
mov eax, dword [rsp + 0xb0]
add eax, 0x4f
mov dword [rsp + 0x24c], eax
mov eax, 3
mov word [0x1800c3624], ax
movzx eax, byte [rsp + 0x22]
dec al
mov byte [rsp + 0x22], al
movzx eax, word [0x1800c3624]
movzx eax, ax
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0
je 0x1800447f8
cmp dword [rsp + 0x78], 1
je 0x18004483b
cmp dword [rsp + 0x78], 2
je 0x180044875
cmp dword [rsp + 0x78], 3
je 0x180044890
jmp 0x1800448eb
mov eax, 2
imul rax, rax, 0x38
lea rcx, [0x18075f1f0]
movzx eax, word [rcx + rax]
mov rcx, qword [0x1800c36d8]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c36d8], rax
movsxd rax, dword [rsp + 0x44]
movabs rcx, 0xe49bbf4a3dd0
sub rax, rcx
mov dword [rsp + 0x44], eax
jmp 0x1800448eb
movsx rax, byte [0x1800c35a7]
mov rcx, qword [0x1800c36e0]
imul rcx, rax
mov rax, rcx
mov qword [0x1800c36e0], rax
mov rax, qword [0x1800c3678]
mov rcx, qword [0x1800c3688]
add rcx, rax
mov rax, rcx
mov qword [0x1800c3688], rax
jmp 0x1800448eb
movzx eax, word [rsp + 0x34]
movabs rcx, 0x669ecce485d9f
and rax, rcx
mov qword [0x1800c36c8], rax
jmp 0x1800448eb
cmp qword [rsp + 0x50], 0
jne 0x1800448a5
mov dword [rsp + 0x138], 1
jmp 0x1800448b0
mov dword [rsp + 0x138], 0
movzx eax, byte [rsp + 0x28]
mov ecx, dword [rsp + 0x138]
imul ecx, eax
mov eax, ecx
movsx ecx, byte [0x1800c35a7]
movzx edx, byte [rsp + 0x21]
add ecx, edx
imul eax, ecx
mov byte [0x1800c35eb], al
mov rax, qword [0x1800c3668]
add rax, 0x5ebb9a3b
mov byte [0x1800c35a4], al
mov eax, dword [rsp + 0xb0]
add eax, 0x95
mov dword [rsp + 0x1cc], eax
movzx eax, byte [rsp + 0x20]
movzx eax, al
mov rcx, qword [0x1800c36b8]
cmp rax, rcx
jl 0x1800449db
movzx eax, word [0x1800c35ec]
movsx rax, ax
movabs rcx, 0x4bcdab7c4f39b
cmp rax, rcx
je 0x18004493d
mov dword [rsp + 0x140], 1
jmp 0x180044948
mov dword [rsp + 0x140], 0
movzx eax, word [rsp + 0x3c]
movzx eax, ax
test eax, eax
jne 0x180044961
mov dword [rsp + 0x13c], 1
jmp 0x18004496c
mov dword [rsp + 0x13c], 0
movzx eax, word [rsp + 0x24]
mov ecx, dword [rsp + 0x13c]
and ecx, eax
mov eax, ecx
cmp dword [rsp + 0x140], eax
jl 0x180044991
mov eax, 1
mov word [rsp + 0x30], ax
jmp 0x1800449d9
mov rax, qword [0x1800c3680]
not rax
cmp rax, qword [rsp + 0x70]
jb 0x1800449d9
movzx eax, byte [0x1800c35a3]
movsx eax, al
mov ecx, dword [0x1800c36c0]
and ecx, eax
mov eax, ecx
mov dword [0x1800c36c0], eax
movzx eax, word [rsp + 0x34]
movzx ecx, word [rsp + 0x2c]
movzx ecx, cx
sub eax, ecx
movzx ecx, word [rsp + 0x34]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x34], ax
jmp 0x1800449ec
mov rax, qword [rsp + 0x58]
shl rax, 6
mov qword [rsp + 0xd0], rax
mov eax, dword [rsp + 0xb0]
add eax, 0x271
mov dword [rsp + 0x194], eax
mov eax, dword [rsp + 0x64]
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x2c8]
mov eax, dword [rcx + rax + 8]
mov rcx, qword [rsp + 0x2c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x268], rax
mov r8, qword [rsp + 0x2d8]
mov rdx, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x2c0]
call fcn.18003b9e0
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x1e4]
mov ecx, dword [rsp + 0x144]
imul eax, ecx
mov ecx, dword [rsp + 0xb4]
mov edx, dword [rsp + 0x144]
sub ecx, edx
sub eax, ecx
mov ecx, dword [rsp + 0xb4]
mov edx, dword [rsp + 0xb4]
imul ecx, edx
add ecx, 0x379
cmp eax, ecx
je 0x1800457ab
movzx eax, byte [str.not_a_stream]
cmp dword [0x1800c36c0], eax
jle 0x180044aa3
jmp 0x180044b50
mov rax, qword [rsp + 0x88]
cmp qword [0x1800c3688], rax
jl 0x180044ac1
mov dword [rsp + 0x14c], 1
jmp 0x180044acc
mov dword [rsp + 0x14c], 0
mov eax, dword [0x1800c36d4]
not eax
mov eax, eax
mov rcx, qword [0x1800c36a0]
cmp rax, rcx
jne 0x180044aef
mov dword [rsp + 0x148], 1
jmp 0x180044afa
mov dword [rsp + 0x148], 0
mov eax, dword [rsp + 0x148]
cmp dword [rsp + 0x14c], eax
je 0x180044b50
mov eax, 2
imul rax, rax, 0x13b7
lea rcx, [0x1807d7040]
movzx eax, word [rcx + rax]
movzx ecx, word [rsp + 0x38]
movzx ecx, cx
add ecx, eax
mov eax, ecx
mov word [rsp + 0x38], ax
imul eax, dword [rsp + 0x44], 0x830f3580
mov eax, eax
mov rcx, qword [0x1800c3688]
sub rcx, rax
mov rax, rcx
mov qword [0x1800c3688], rax
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x28]
movzx edx, word [rsp + 0x2c]
movzx edx, dx
not edx
add ecx, edx
xor eax, ecx
mov dword [0x1800c35bc], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x39
mov dword [rsp + 0x1e8], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x1c02
mov dword [rsp + 0x250], eax
mov rax, qword [0x1800c36b8]
movzx ecx, byte [rsp + 0x2a]
cmp rax, rcx
jg 0x180044ca4
mov rax, qword [rsp + 0x90]
cmp qword [0x1800c3678], rax
jae 0x180044bd2
mov dword [rsp + 0x154], 1
jmp 0x180044bdd
mov dword [rsp + 0x154], 0
cmp qword [0x1800c3678], 4
jge 0x180044bf4
mov dword [rsp + 0x150], 1
jmp 0x180044bff
mov dword [rsp + 0x150], 0
mov eax, dword [rsp + 0x150]
cmp dword [rsp + 0x154], eax
jle 0x180044c35
movzx eax, word [rsp + 0x24]
mov rcx, qword [0x1800c3660]
xor rax, rcx
mov word [rsp + 0x24], ax
mov eax, dword [0x1800c35bc]
xor eax, 0xb1e1
mov word [rsp + 0x40], ax
jmp 0x180044c9f
movzx eax, byte [rsp + 0x28]
test eax, eax
jne 0x180044c4a
movzx eax, word [rsp + 0x2c]
movzx eax, ax
test eax, eax
je 0x180044c6a
movzx eax, byte [rsp + 0x20]
movzx eax, al
mov rcx, qword [rsp + 0x90]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x180044c9f
mov rax, qword [rsp + 0xd8]
not rax
cmp rax, qword [rsp + 0x50]
jne 0x180044c8a
movzx eax, word [rsp + 0x30]
movzx ecx, word [rsp + 0x34]
cmp eax, ecx
je 0x180044c9f
mov eax, dword [0x1806dc008]
mov qword [rsp + 0x70], rax
mov dword [0x1800c36c0], 0xe9
jmp 0x180044d61
cmp dword [rsp + 0x44], 0
jne 0x180044cb8
mov dword [rsp + 0x15c], 1
jmp 0x180044cc3
mov dword [rsp + 0x15c], 0
movzx eax, word [rsp + 0x2c]
movzx eax, ax
movzx ecx, byte [rsp + 0x20]
movzx ecx, cl
cmp eax, ecx
jg 0x180044ce4
mov dword [rsp + 0x158], 1
jmp 0x180044cef
mov dword [rsp + 0x158], 0
mov eax, dword [rsp + 0x158]
cmp dword [rsp + 0x15c], eax
jl 0x180044d32
mov eax, dword [0x1800c36d4]
test eax, eax
je 0x180044d18
mov eax, dword [0x1800c36d4]
mov dword [rsp + 0x160], eax
jmp 0x180044d24
movzx eax, word [rsp + 0x24]
mov dword [rsp + 0x160], eax
mov eax, dword [rsp + 0x160]
mov qword [rsp + 0x58], rax
jmp 0x180044d61
cmp dword [0x1800c35bc], 0x3f1c917d
jbe 0x180044d4b
mov eax, dword [0x1806dc008]
mov qword [rsp + 0x50], rax
jmp 0x180044d61
mov rax, qword [0x1800c36c8]
test rax, rax
je 0x180044d61
mov eax, 0xf764
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0xb8]
add eax, 0x29
mov dword [rsp + 0x1ec], eax
movsxd rax, dword [rsp + 0x44]
add rax, qword [0x1800c3678]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x1e8]
or eax, 0x69
mov ecx, dword [rsp + 0x1ec]
xor ecx, 0x15
xor eax, ecx
add eax, 0xad
mov dword [rsp + 0x1c4], eax
movabs rax, 0xc4edced6f6084
mov rcx, qword [0x1800c3698]
sub rcx, rax
mov rax, rcx
mov dword [0x1800c36c0], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xc0], eax
movzx eax, word [rsp + 0x30]
sub rax, qword [0x1800c3670]
movzx ecx, word [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov word [rsp + 0x30], ax
movsx eax, byte [rsp + 0x22]
movzx ecx, word [0x1800c3624]
movzx ecx, cx
or ecx, 0xcea3
movzx edx, byte [rsp + 0x20]
movzx edx, dl
not edx
add ecx, edx
not ecx
xor eax, ecx
mov dword [0x1800c36c0], eax
mov eax, dword [rsp + 0xc0]
add eax, 0x6c
mov dword [rsp + 0x1d0], eax
mov eax, 3
mov word [rsp + 0x3c], ax
movzx eax, byte [rsp + 0x21]
movzx ecx, word [rsp + 0x24]
add eax, ecx
mov byte [rsp + 0x21], al
movzx eax, word [rsp + 0x3c]
movzx eax, ax
mov dword [rsp + 0xbc], eax
cmp dword [rsp + 0xbc], 0
je 0x180044e72
cmp dword [rsp + 0xbc], 1
je 0x180044ec8
cmp dword [rsp + 0xbc], 3
je 0x180044ee8
jmp 0x180044f34
movzx eax, byte [0x1800c35a4]
movsx ecx, byte [rsp + 0x22]
sub eax, ecx
test eax, eax
jne 0x180044e92
mov qword [rsp + 0x208], 1
jmp 0x180044e9e
mov qword [rsp + 0x208], 0
mov rax, qword [0x1800c3668]
xor rax, qword [rsp + 0x208]
mov byte [0x1800c35a7], al
mov eax, dword [0x1800c36c4]
imul eax, dword [0x1800c36c0]
mov dword [0x1800c36c4], eax
jmp 0x180044f34
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov rcx, qword [0x1800c36a8]
and rcx, rax
mov rax, rcx
mov qword [0x1800c36a8], rax
jmp 0x180044f34
cmp dword [0x1800c36c0], 0
je 0x180044f03
movzx eax, word [rsp + 0x3c]
movzx eax, ax
mov qword [rsp + 0x210], rax
jmp 0x180044f12
mov rax, qword [0x1800c36a8]
mov qword [rsp + 0x210], rax
movzx eax, word [rsp + 0x210]
mov word [rsp + 0x38], ax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov ecx, dword [0x1800c3594]
sub eax, ecx
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0xc0]
add eax, 0x94
mov dword [rsp + 0x254], eax
mov eax, dword [rsp + 0xc0]
add eax, 0x8c3e
mov dword [rsp + 0x1f0], eax
mov rax, qword [0x1800c36d8]
xor rax, 0x4e57cdc3
mov qword [rsp + 0x88], rax
mov rax, qword [0x1800c3660]
inc rax
mov qword [0x1800c3660], rax
mov eax, dword [rsp + 0x1f0]
mov ecx, dword [rsp + 0x1d0]
sub eax, ecx
add eax, 0xffff7678
mov ecx, dword [rsp + 0x164]
mov edx, dword [rsp + 0x164]
xor ecx, edx
imul ecx, ecx, 0
sub eax, ecx
mov dword [rsp + 0x1c0], eax
movzx eax, byte [rsp + 0x21]
cmp rax, qword [rsp + 0x70]
jb 0x180044fd1
mov rax, qword [rsp + 0x58]
imul rax, rax, 0x27bb
mov byte [0x1800c35a4], al
jmp 0x180045037
movzx eax, word [0x1800c35ec]
cwde
movzx ecx, byte [rsp + 0x29]
movzx ecx, cl
cmp eax, ecx
jge 0x180044ff3
mov qword [rsp + 0x218], 1
jmp 0x180044fff
mov qword [rsp + 0x218], 0
movsx rax, word [0x1800c360c]
add rax, qword [0x1800c3698]
cmp rax, qword [rsp + 0x218]
jle 0x180045037
movzx eax, word [rsp + 0x24]
mov rcx, qword [0x1800c36b8]
sub rax, rcx
movzx ecx, word [rsp + 0x24]
add rcx, rax
mov rax, rcx
mov word [rsp + 0x24], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xc4], eax
movzx eax, word [rsp + 0x40]
test eax, eax
jne 0x18004505a
mov dword [rsp + 0x168], 1
jmp 0x180045065
mov dword [rsp + 0x168], 0
mov eax, dword [rsp + 0x168]
add eax, 0x923e
test eax, eax
jne 0x180045082
mov dword [rsp + 0x16c], 1
jmp 0x18004508d
mov dword [rsp + 0x16c], 0
mov eax, dword [rsp + 0x16c]
mov dword [0x1800c36c0], eax
mov eax, dword [rsp + 0xc4]
add eax, 0x871e
mov dword [rsp + 0x258], eax
cmp qword [rsp + 0x90], 0
je 0x180045130
mov byte [rsp + 0x22], 1
mov rax, qword [0x1800c36a0]
mov qword [0x1800c36a0], rax
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x170], al
cmp byte [rsp + 0x170], 0
je 0x1800450ed
cmp byte [rsp + 0x170], 1
je 0x180045106
jmp 0x18004512e
movzx eax, byte [rsp + 0x21]
shl eax, 6
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0x44]
mov dword [0x1800c36c0], eax
jmp 0x18004512e
mov rax, qword [0x1800c3678]
not rax
mov rcx, qword [rsp + 0xd8]
sub rax, rcx
mov qword [rsp + 0x88], rax
movzx eax, byte [rsp + 0x34]
mov byte [0x1800c35a3], al
jmp 0x180045156
mov rax, qword [rsp + 0x90]
not rax
cmp qword [rsp + 0x50], rax
jbe 0x180045156
movzx eax, word [rsp + 0x30]
mov rcx, qword [0x1800c3668]
add rax, rcx
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0xc4]
add eax, 0xec
mov dword [rsp + 0x7c], eax
movzx eax, byte [0x1800c35a4]
test eax, eax
je 0x180045266
mov rax, qword [0x1800c3690]
test rax, rax
jne 0x18004518e
mov dword [rsp + 0x174], 1
jmp 0x180045199
mov dword [rsp + 0x174], 0
cmp dword [rsp + 0x174], 0x1976e678
jne 0x1800451c3
movzx eax, word [rsp + 0x3c]
movzx eax, ax
movzx ecx, byte [rsp + 0x20]
movzx ecx, cl
imul eax, ecx
mov word [rsp + 0x3c], ax
jmp 0x180045264
cmp qword [0x1800c36a8], 0
je 0x1800451e9
mov rax, qword [rsp + 0xd8]
mov word [rsp + 0x24], ax
mov eax, dword [0x1806dc008]
mov qword [0x1800c3668], rax
jmp 0x180045264
mov rax, qword [0x1800c3690]
test rax, rax
je 0x180045238
movzx eax, word [rsp + 0x2c]
movzx eax, ax
add eax, 0xa5
cdqe
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
mov rax, qword [0x1800c36a8]
mov rcx, qword [rsp + 0x50]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x50]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
jmp 0x180045264
cmp qword [0x1800c3678], 0
jne 0x180045264
mov byte [rsp + 0x20], 0x4f
movzx eax, byte [rsp + 0x21]
movzx ecx, word [rsp + 0x3c]
movzx ecx, cx
imul eax, ecx
movzx ecx, byte [rsp + 0x21]
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x21], al
jmp 0x18004528f
mov eax, 2
imul rax, rax, 0x41
lea rcx, [0x180823a00]
movsx rax, word [rcx + rax]
mov rcx, qword [0x1800c36b8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c36b8], rax
mov eax, dword [rsp + 0xc4]
add eax, 0x9c
mov dword [rsp + 0x25c], eax
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
je 0x1800452ba
mov eax, dword [0x1800c36d4]
test eax, eax
jne 0x1800452d9
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x1800453aa
movzx eax, word [rsp + 0x34]
test eax, eax
je 0x1800453aa
movzx eax, byte [rsp + 0x29]
movzx eax, al
test eax, eax
je 0x1800452f1
mov byte [str.not_a_stream], 0x1b
jmp 0x1800453a5
movzx eax, word [rsp + 0x38]
movzx eax, ax
cmp eax, 0x50
je 0x18004530b
mov dword [rsp + 0x17c], 1
jmp 0x180045316
mov dword [rsp + 0x17c], 0
mov rax, qword [0x1800c36b8]
movzx ecx, word [rsp + 0x24]
cmp rax, rcx
jne 0x180045334
mov dword [rsp + 0x178], 1
jmp 0x18004533f
mov dword [rsp + 0x178], 0
mov eax, dword [rsp + 0x178]
cmp dword [rsp + 0x17c], eax
jge 0x1800453a5
mov qword [rsp + 0x58], 0x84
cmp dword [0x1800c35d4], 0
jne 0x18004536f
mov qword [rsp + 0x220], 1
jmp 0x18004537b
mov qword [rsp + 0x220], 0
mov rax, qword [0x1800c3690]
imul rax, qword [rsp + 0x220]
movzx ecx, byte [rsp + 0x21]
xor rax, rcx
movzx ecx, byte [0x1800c35eb]
movzx ecx, cl
imul rax, rcx
mov byte [rsp + 0x29], al
jmp 0x18004546e
mov eax, dword [0x1800c36d4]
not eax
movzx ecx, byte [0x1800c35d3]
cmp eax, ecx
jb 0x1800453ca
mov dword [rsp + 0x188], 1
jmp 0x1800453d5
mov dword [rsp + 0x188], 0
cmp dword [rsp + 0x44], 0
jne 0x1800453e9
mov dword [rsp + 0x180], 1
jmp 0x1800453f4
mov dword [rsp + 0x180], 0
cmp dword [rsp + 0x180], 0x7cda9e09
jne 0x18004540e
mov dword [rsp + 0x184], 1
jmp 0x180045419
mov dword [rsp + 0x184], 0
mov eax, dword [rsp + 0x184]
cmp dword [rsp + 0x188], eax
jl 0x18004546e
movzx eax, word [rsp + 0x3c]
movzx eax, ax
test eax, eax
je 0x180045444
movzx eax, word [rsp + 0x34]
mov qword [rsp + 0x228], rax
jmp 0x180045453
mov rax, qword [0x1800c3678]
mov qword [rsp + 0x228], rax
movzx eax, byte [rsp + 0x228]
mov byte [rsp + 0x22], al
mov rax, qword [0x1800c3688]
add rax, 0x30
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0x7c]
mov ecx, dword [rsp + 0x7c]
add eax, ecx
mov ecx, dword [rsp + 0x7c]
mov edx, dword [rsp + 0x7c]
add ecx, edx
add eax, ecx
xor eax, 0x1f2
mov ecx, dword [rsp + 0x18c]
add ecx, 0xe5
mov edx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x18c]
sub edx, edi
imul ecx, edx
mov edx, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x190]
add edx, edi
mov edi, dword [rsp + 0xc8]
mov esi, dword [rsp + 0x190]
add edi, esi
sub edx, edi
imul ecx, edx
add eax, ecx
mov dword [rsp + 0x1f4], eax
mov eax, dword [rsp + 0x1bc]
cmp eax, dword [rsp + 0x84]
je 0x1800457ab
mov rax, qword [0x1800c3668]
mov rcx, qword [0x1800c36a0]
sub rax, rcx
not rax
mov byte [0x1800c35a4], al
mov eax, dword [rsp + 0x80]
inc eax
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x194]
mov ecx, dword [rsp + 0x1c0]
xor eax, ecx
mov ecx, dword [rsp + 0x1c4]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1f4]
mov edx, dword [rsp + 0x194]
imul ecx, edx
mov edx, dword [rsp + 0x1cc]
add ecx, edx
cmp eax, ecx
je 0x180045653
mov rax, qword [rsp + 0x2e8]
mov ecx, dword [rsp + 0x80]
cmp dword [rax], ecx
jb 0x180045653
movzx eax, word [rsp + 0x40]
mov rcx, qword [0x1800c36d8]
cmp rax, rcx
jb 0x180045590
movzx eax, byte [rsp + 0x20]
movzx eax, al
and eax, 0xcc
mov byte [rsp + 0x2a], al
jmp 0x18004564e
movzx eax, byte [rsp + 0x20]
movzx eax, al
test eax, eax
jne 0x1800455aa
mov qword [rsp + 0x230], 1
jmp 0x1800455b6
mov qword [rsp + 0x230], 0
mov rax, qword [0x1800c36b8]
mov rcx, qword [rsp + 0x230]
or rcx, rax
mov rax, rcx
not rax
test rax, rax
je 0x180045632
mov eax, dword [0x1800c35bc]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
movzx eax, word [rsp + 0x34]
mov rcx, qword [0x1800c36a0]
imul rcx, rax
mov rax, rcx
movzx ecx, byte [0x1800c35a6]
movsx rcx, cl
mov rdx, qword [rsp + 0x90]
add rdx, rcx
mov rcx, rdx
xor rax, rcx
mov rcx, qword [0x1800c36d8]
imul rcx, rax
mov rax, rcx
not rax
mov qword [0x1800c36c8], rax
jmp 0x18004564e
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x18004564e
movzx eax, byte [rsp + 0x90]
mov byte [0x1800c35a6], al
jmp 0x180043ccc
movzx eax, byte [rsp + 0x29]
movzx eax, al
add eax, 0x6aa9c860
mov byte [str.not_a_stream], al
mov rax, qword [0x1800c36d8]
mov byte [rsp + 0x22], al
mov rax, qword [rsp + 0x2e8]
mov ecx, dword [rsp + 0x80]
mov dword [rax], ecx
movsx rax, word [0x1800c36d0]
cmp rax, qword [0x1800c3678]
jl 0x1800456a0
mov dword [rsp + 0x19c], 1
jmp 0x1800456ab
mov dword [rsp + 0x19c], 0
movsx eax, word [0x1800c36d0]
cmp eax, 0x34
jl 0x1800456c4
mov dword [rsp + 0x198], 1
jmp 0x1800456cf
mov dword [rsp + 0x198], 0
mov eax, dword [rsp + 0x198]
cmp dword [rsp + 0x19c], eax
jle 0x18004570d
mov rax, qword [rsp + 0x88]
add rax, 0xcb
mov rcx, qword [0x1800c3668]
add rcx, rax
mov rax, rcx
mov qword [0x1800c3668], rax
mov byte [0x1800c35eb], 0xbf
jmp 0x18004579b
movzx eax, word [rsp + 0x24]
test eax, eax
jne 0x180045731
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
jne 0x180045731
mov dword [rsp + 0x1a4], 0
jmp 0x18004573c
mov dword [rsp + 0x1a4], 1
movzx eax, byte [0x1800c35a4]
mov rcx, qword [rsp + 0x58]
cmp rax, rcx
jbe 0x18004575a
mov dword [rsp + 0x1a0], 1
jmp 0x180045765
mov dword [rsp + 0x1a0], 0
mov eax, dword [rsp + 0x1a0]
cmp dword [rsp + 0x1a4], eax
jg 0x18004579b
movsx rax, byte [0x1800c35a5]
movabs rcx, 0x65620cb042c56
xor rax, rcx
mov byte [0x1800c35a4], al
movzx eax, byte [0x1806dc008]
mov byte [rsp + 0x29], al
mov rax, qword [rsp + 0x2e0]
mov ecx, dword [rsp + 0x64]
mov dword [rax], ecx
jmp 0x1800457b0
jmp 0x180043ccc
mov rax, qword [rsp + 0x2e0]
mov eax, dword [rax]
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x2c8]
mov eax, dword [rcx + rax]
mov rcx, qword [rsp + 0x2c0]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x2f0]
mov qword [rcx], rax
mov rax, qword [rsp + 0x2f0]
mov rax, qword [rax]
mov qword [0x1806dbee8], rax
mov rax, qword [rsp + 0x2d8]
mov eax, dword [rax]
mov qword [0x1806dbf10], rax
mov eax, dword [rsp + 0x84]
mov qword [0x1806dbf40], rax
mov eax, dword [rsp + 0x84]
add rsp, 0x2a8
pop rdi
pop rsi
ret