Function at 0x18000e780
Capabilities:
Encrypt data using aes
Encrypt data using speck
Reference aes constants

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x238
movzx eax, word [0x1800e30e8]
mov word [rsp + 0x130], ax
mov eax, dword [0x1800e30d4]
cdqe
mov qword [rsp + 0x98], rax
movzx eax, word [0x1800e3074]
mov word [rsp + 0x3c], ax
movzx eax, byte [0x1800e309e]
mov qword [rsp + 0x128], rax
mov eax, dword [0x1800e30d4]
mov byte [rsp + 0x28], al
mov eax, dword [0x1800e3130]
mov dword [rsp + 0x74], eax
mov rax, qword [0x1800e3090]
mov qword [rsp + 0x80], rax
mov eax, dword [0x1800e310c]
mov eax, eax
mov qword [rsp + 0xc0], rax
mov rax, qword [0x1800e30b8]
mov dword [rsp + 0x60], eax
mov byte [rsp + 0x29], 0x28
mov byte [rsp + 0x34], 0x22
mov eax, 0x13ff
mov word [rsp + 0x54], ax
mov eax, 0x6e
mov word [rsp + 0x44], ax
movzx eax, word [0x1800e3120]
cwde
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x160], 0xf987
movabs rax, 0x969579908e763
mov qword [rsp + 0x68], rax
movzx eax, word [0x1800e3120]
cwde
mov dword [rsp + 0x48], eax
mov byte [rsp + 0x20], 0x63
mov eax, 0x2630
mov word [rsp + 0x30], ax
movzx eax, byte [0x1800e3036]
movsx ax, al
mov word [rsp + 0x38], ax
movzx eax, word [0x1800e30d8]
mov byte [rsp + 0x35], al
mov dword [rsp + 0x110], 0x5c4d
mov byte [rsp + 0x40], 0x6d
movzx eax, byte [0x1800e3073]
movsx rax, al
mov qword [rsp + 0x1a8], rax
mov eax, 0x2b
mov word [rsp + 0x134], ax
mov eax, dword [0x1800e3128]
mov dword [rsp + 0x188], eax
mov byte [rsp + 0xa0], 0x26
mov eax, 0xbf
mov word [rsp + 0x158], ax
movzx eax, byte [0x1800e3073]
movsx rax, al
mov qword [rsp + 0x1b0], rax
mov rax, qword [0x1800e30e8]
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x1c0], 0xded2
mov byte [rsp + 0xa1], 0x8a
mov eax, 0xc31d1f6c
mov qword [rsp + 0x1c8], rax
mov dword [rsp + 0x18c], 0xa0f1a26f
mov eax, 0xffff85ab
mov word [rsp + 0x170], ax
mov rax, qword [0x1800e30a8]
mov qword [rsp + 0x1d0], rax
mov eax, dword [0x1800e30fc]
mov byte [rsp + 0x88], al
mov byte [rsp + 0x89], 0x5f
movsx rax, word [0x1800e30e0]
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1e0], 0xd5
movzx eax, byte [0x1800e309e]
mov qword [rsp + 0x1e8], rax
mov dword [rsp + 0x190], 0xe7bdf42
mov eax, 0x91ffb0a4
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], 0xf258
mov byte [rsp + 0x8a], 0x9b
mov byte [rsp + 0x8b], 0x66
mov eax, 0xffffdc16
mov word [rsp + 0x16c], ax
movzx eax, byte [0x1800e3073]
movsx ax, al
mov word [rsp + 0x168], ax
mov eax, dword [0x1800e3100]
mov dword [rsp + 0x1a4], eax
movzx eax, byte [0x1800e3118]
mov byte [rsp + 0x8c], al
movzx eax, byte [rsp + 0x29]
movsx eax, al
test eax, eax
je 0x18000eac4
movzx eax, byte [0x1800e309f]
movzx eax, al
test eax, eax
je 0x18000ea93
cmp qword [rsp + 0xc0], 0
jne 0x18000ea2b
mov dword [rsp + 0xd0], 1
jmp 0x18000ea36
mov dword [rsp + 0xd0], 0
movzx eax, byte [0x1800e309b]
test eax, eax
jne 0x18000ea4e
mov dword [rsp + 0xd4], 1
jmp 0x18000ea59
mov dword [rsp + 0xd4], 0
movzx eax, byte [0x1800e309e]
not eax
sub eax, dword [rsp + 0xd0]
movzx ecx, byte [0x1800e308b]
mov edx, dword [rsp + 0xd4]
imul edx, ecx
mov ecx, edx
xor eax, ecx
mov byte [rsp + 0x29], al
mov eax, dword [0x1800e30dc]
xor eax, 0x2f
mov byte [0x1800e3037], al
jmp 0x18000eac2
movsx eax, word [rsp + 0x38]
test eax, eax
je 0x18000eac2
movsx rax, byte [0x1800e305e]
mov rcx, qword [0x1800e30f0]
add rax, rcx
movsx rcx, byte [0x1800e305e]
add rcx, rax
mov rax, rcx
mov byte [0x1800e305e], al
jmp 0x18000eb16
cmp dword [rsp + 0x60], 0
jne 0x18000ead9
mov qword [rsp + 0x180], 1
jmp 0x18000eae5
mov qword [rsp + 0x180], 0
mov rax, qword [rsp + 0x98]
imul rax, qword [rsp + 0x180]
movabs rcx, 0x25e9acc3ca4af
cmp rax, rcx
jb 0x18000eb16
movzx eax, byte [str._bcProductName]
shl eax, 7
mov word [0x1800e3098], ax
movsx eax, word [0x1800e30b4]
movzx ecx, byte [rsp + 0x28]
add eax, ecx
mov word [0x1800e30b4], ax
mov eax, dword [0x1800e310c]
mov dword [0x1800e3074], eax
movsx eax, word [rsp + 0x44]
imul eax, eax, 0x24c8cf53
movsx ecx, byte [0x1800e3037]
add ecx, eax
mov eax, ecx
mov byte [0x1800e3037], al
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x18000eb76
movzx eax, byte [rsp + 0x28]
movzx ecx, byte [rsp + 0x28]
sub eax, ecx
not eax
mov byte [0x1800e3036], al
jmp 0x18000ebaf
movzx eax, byte [rsp + 0x28]
not eax
test eax, eax
je 0x18000ebaf
movsx eax, word [0x1800e30b4]
sub eax, 0xdf
mov dword [0x1800e3130], eax
movsx rax, word [rsp + 0x44]
mov rcx, qword [0x1800e30f0]
imul rcx, rax
mov rax, rcx
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x2c], 0
jmp 0x18000ebc3
mov eax, dword [rsp + 0x2c]
inc eax
mov dword [rsp + 0x2c], eax
cmp dword [rsp + 0x2c], 8
jae 0x18000ee7a
movzx eax, word [rsp + 0x3c]
test eax, eax
je 0x18000ec05
movzx eax, byte [rsp + 0xc0]
mov byte [rsp + 0x35], al
mov eax, 0xedc2cce1
mov rcx, qword [0x1800e3100]
add rax, rcx
mov rcx, qword [0x1800e30a8]
add rax, rcx
mov qword [0x1800e3100], rax
jmp 0x18000ec30
movzx eax, byte [0x1800e3073]
movsx rax, al
mov qword [rsp + 0x128], rax
movsx rax, word [rsp + 0x38]
movabs rcx, 0xcad4a17e9bab0
sub rax, rcx
mov word [rsp + 0x30], ax
mov eax, dword [0x1800e30c4]
mov ecx, dword [0x1800e310c]
cmp eax, ecx
jbe 0x18000ec42
jmp 0x18000ec4d
movzx eax, byte [str._bcProductName]
mov dword [rsp + 0x74], eax
mov eax, dword [0x1800e4740]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x399
mov dword [rsp + 0x138], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x123
mov dword [rsp + 0x194], eax
mov byte [0x1800e3037], 4
movzx eax, byte [0x1800e30b6]
movsx ecx, byte [rsp + 0x20]
add eax, ecx
movzx ecx, byte [0x1800e30b6]
sub ecx, eax
mov eax, ecx
mov byte [0x1800e30b6], al
movzx eax, byte [str._bcProductName]
add eax, 0x83
mov word [0x1800e3098], ax
movzx eax, byte [0x1800e3037]
mov byte [rsp + 0x5c], al
cmp byte [rsp + 0x5c], 0
je 0x18000ecf0
cmp byte [rsp + 0x5c], 1
je 0x18000ed0c
cmp byte [rsp + 0x5c], 2
je 0x18000ed2c
cmp byte [rsp + 0x5c], 3
je 0x18000ed59
cmp byte [rsp + 0x5c], 4
je 0x18000ed74
jmp 0x18000ed7e
movzx eax, byte [rsp + 0x34]
dec al
mov byte [rsp + 0x34], al
movsx eax, word [rsp + 0x54]
sub eax, 0x55c56ca3
mov word [rsp + 0x38], ax
jmp 0x18000ed7e
mov eax, dword [0x1800e310c]
imul eax, eax, 0x71b28642
movzx ecx, word [0x1800e3110]
sub ecx, eax
mov eax, ecx
mov word [0x1800e3110], ax
jmp 0x18000ed7e
movzx eax, word [0x1800e3098]
movzx eax, ax
mov rcx, qword [0x1800e30c8]
sub rax, rcx
movzx ecx, word [0x1800e3098]
movzx ecx, cx
xor rcx, rax
mov rax, rcx
mov word [0x1800e3098], ax
jmp 0x18000ed7e
movzx eax, byte [0x1800e309f]
movzx eax, al
add eax, 0xf111
cdqe
mov qword [rsp + 0x128], rax
jmp 0x18000ed7e
mov eax, dword [0x1800e4740]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xa4]
add eax, 0x382
mov dword [rsp + 0x13c], eax
mov eax, dword [rsp + 0x138]
imul eax, eax, 0x2aa
mov ecx, dword [rsp + 0x13c]
imul ecx, eax
mov eax, ecx
cmp eax, 0x33c
je 0x18000ee75
mov eax, dword [rsp + 0x2c]
shl eax, 2
mov eax, eax
mov ecx, dword [rsp + 0x2c]
shl ecx, 2
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov r8, qword [rsp + 0x258]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x2c]
lea eax, [rax*4 + 1]
mov eax, eax
mov ecx, dword [rsp + 0x2c]
lea ecx, [rcx*4 + 1]
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov r8, qword [rsp + 0x258]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x2c]
lea eax, [rax*4 + 2]
mov eax, eax
mov ecx, dword [rsp + 0x2c]
lea ecx, [rcx*4 + 2]
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov r8, qword [rsp + 0x258]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x2c]
lea eax, [rax*4 + 3]
mov eax, eax
mov ecx, dword [rsp + 0x2c]
lea ecx, [rcx*4 + 3]
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov r8, qword [rsp + 0x258]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
jmp 0x18000ebb9
movzx eax, byte [str._MV]
movsx rax, al
cmp qword [rsp + 0x68], rax
jb 0x18000ee99
mov dword [rsp + 0xdc], 1
jmp 0x18000eea4
mov dword [rsp + 0xdc], 0
cmp qword [rsp + 0x68], 0x56
jb 0x18000eeb9
mov dword [rsp + 0xd8], 1
jmp 0x18000eec4
mov dword [rsp + 0xd8], 0
mov eax, dword [rsp + 0xd8]
cmp dword [rsp + 0xdc], eax
je 0x18000ef49
movsx eax, byte [rsp + 0x20]
movzx ecx, word [0x1800e309c]
movsx ecx, cx
cmp eax, ecx
jle 0x18000eef4
mov dword [rsp + 0xe4], 1
jmp 0x18000eeff
mov dword [rsp + 0xe4], 0
movsx eax, byte [rsp + 0x20]
cmp eax, 0x4f
jle 0x18000ef16
mov dword [rsp + 0xe0], 1
jmp 0x18000ef21
mov dword [rsp + 0xe0], 0
mov eax, dword [rsp + 0xe0]
cmp dword [rsp + 0xe4], eax
jne 0x18000ef47
mov eax, dword [0x1800e3108]
not eax
movzx ecx, word [rsp + 0x3c]
imul eax, ecx
mov dword [0x1800e3130], eax
jmp 0x18000ef5f
movabs rax, 0x1877efa79563f
xor ecx, ecx
cmp rcx, rax
je 0x18000ef5f
mov byte [rsp + 0x35], 8
mov dword [rsp + 0x2c], 8
jmp 0x18000ef73
mov eax, dword [rsp + 0x2c]
inc eax
mov dword [rsp + 0x2c], eax
cmp dword [rsp + 0x2c], 0x3c
jae 0x18000fd3a
movzx eax, byte [str._MV]
movsx eax, al
movzx ecx, byte [str._MV]
movsx ecx, cl
cmp eax, ecx
jg 0x18000f0b8
mov dword [0x1800e30dc], 2
mov rax, qword [rsp + 0xc0]
sub rax, 0xdb
mov qword [rsp + 0x80], rax
mov eax, dword [0x1800e30dc]
mov dword [rsp + 0xa8], eax
cmp dword [rsp + 0xa8], 0
je 0x18000eff2
cmp dword [rsp + 0xa8], 1
je 0x18000f078
cmp dword [rsp + 0xa8], 2
je 0x18000f09c
jmp 0x18000f0b6
movsx eax, word [0x1800e30e0]
test eax, eax
jne 0x18000f00a
mov dword [rsp + 0xe8], 1
jmp 0x18000f015
mov dword [rsp + 0xe8], 0
mov eax, dword [0x1800e310c]
not eax
movzx ecx, word [rsp + 0x30]
movzx ecx, cx
add eax, ecx
mov ecx, dword [rsp + 0xe8]
sub ecx, eax
mov eax, ecx
mov eax, eax
mov qword [rsp + 0x68], rax
mov rax, qword [0x1800e3090]
test rax, rax
jne 0x18000f052
mov dword [rsp + 0xec], 1
jmp 0x18000f05d
mov dword [rsp + 0xec], 0
movsx eax, word [rsp + 0x54]
sub eax, dword [rsp + 0xec]
movsx ecx, word [rsp + 0x38]
sub eax, ecx
mov dword [0x1800e3074], eax
jmp 0x18000f0b6
movzx eax, byte [rsp + 0x29]
movsx eax, al
movzx ecx, byte [0x1800e30b6]
imul eax, ecx
mov byte [rsp + 0x29], al
movzx eax, word [0x1800e4740]
mov word [rsp + 0x38], ax
jmp 0x18000f0b6
movzx eax, word [0x1800e30e4]
movzx eax, ax
imul eax, eax, 0xb3d
cdqe
mov qword [rsp + 0xc0], rax
jmp 0x18000f0d3
mov eax, 1
imul rax, rax, 0x1d10
lea rcx, [0x180199b20]
movzx edx, byte [rsp + 0x54]
mov byte [rcx + rax], dl
mov rax, qword [0x1800e30a8]
shl rax, 7
mov dword [rsp + 0x110], eax
mov eax, dword [0x1800e4740]
mov dword [rsp + 0xac], eax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x18000f124
movzx eax, word [rsp + 0x30]
movzx eax, ax
movabs rcx, 0xb1bdc4cd26b1d
xor rax, rcx
movzx ecx, byte [str._bcProductName]
sub rcx, rax
mov rax, rcx
mov byte [str._bcProductName], al
jmp 0x18000f13a
mov byte [0x1800e305f], 0x87
mov eax, dword [rsp + 0x48]
mov eax, eax
sub rax, qword [rsp + 0x68]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xac]
add eax, 0x185
mov dword [rsp + 0x94], eax
movsx rax, word [rsp + 0x44]
mov rcx, qword [0x1800e30b8]
add rcx, rax
mov rax, rcx
mov rcx, qword [0x1800e30b8]
add rcx, rax
mov rax, rcx
mov qword [0x1800e30b8], rax
mov eax, dword [rsp + 0xac]
add eax, 0xba
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0xac]
add eax, 0x2c9
mov dword [rsp + 0x198], eax
lea rax, [rsp + 0x200]
lea rcx, str.._AUIDisposable_Pl
mov rdi, rax
mov rsi, rcx
mov ecx, 0x26
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x200]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x1800e30d0], eax
mov eax, dword [0x1800e4740]
mov dword [rsp + 0xb0], eax
mov rax, qword [0x1800e3090]
movabs rcx, 0xdec34abe6f254
imul rax, rcx
mov byte [0x1800e30b3], al
movsx eax, word [rsp + 0x44]
add eax, 0x47
cdqe
mov qword [0x1800e30e8], rax
mov eax, dword [rsp + 0xb0]
add eax, 0x378
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xb0]
add eax, 0xc0
mov dword [rsp + 0x19c], eax
mov eax, dword [rsp + 0xb0]
add eax, 0x1f6
mov dword [rsp + 0xf0], eax
mov eax, dword [rsp + 0xf0]
mov ecx, dword [rsp + 0xb4]
imul eax, ecx
mov ecx, dword [rsp + 0xb4]
mov edx, dword [rsp + 0xb4]
add ecx, edx
mov edx, dword [rsp + 0xf0]
add edx, 0x43
sub ecx, edx
cmp eax, ecx
je 0x18000fd35
mov eax, dword [rsp + 0x74]
shl eax, 7
mov word [rsp + 0x44], ax
mov eax, dword [rsp + 0x58]
mov dword [0x1800e310c], eax
movsx eax, byte [0x1800e3027]
test eax, eax
jne 0x18000f29f
mov dword [rsp + 0xf4], 1
jmp 0x18000f2aa
mov dword [rsp + 0xf4], 0
movzx eax, word [rsp + 0x30]
movzx eax, ax
mov ecx, dword [rsp + 0xf4]
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x30], ax
movzx eax, word [rsp + 0x3c]
movzx ecx, byte [str._MV]
movsx ecx, cl
sub eax, ecx
mov word [rsp + 0x3c], ax
mov eax, dword [0x1800e4740]
mov dword [rsp + 0xb8], eax
movsx rax, byte [0x1800e3037]
mov rcx, qword [0x1800e30b8]
cmp rax, rcx
jg 0x18000f387
movsx eax, byte [rsp + 0x20]
movzx ecx, word [0x1800e3110]
cmp eax, ecx
jle 0x18000f31a
mov dword [rsp + 0xfc], 1
jmp 0x18000f325
mov dword [rsp + 0xfc], 0
movsx eax, byte [rsp + 0x20]
cmp eax, 6
jle 0x18000f33c
mov dword [rsp + 0xf8], 1
jmp 0x18000f347
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0xfc], eax
jge 0x18000f385
movzx eax, byte [0x1800e30b6]
movzx ecx, word [0x1800e30f8]
sub eax, ecx
mov byte [0x1800e30b6], al
movsx rax, byte [0x1800e309a]
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
jmp 0x18000f404
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x18000f3a1
mov dword [rsp + 0x100], 1
jmp 0x18000f3ac
mov dword [rsp + 0x100], 0
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x100], eax
je 0x18000f404
mov eax, dword [rsp + 0x58]
not eax
test eax, eax
je 0x18000f3cf
mov eax, dword [0x1800e3108]
not eax
test eax, eax
jne 0x18000f404
mov eax, dword [rsp + 0x48]
mov eax, eax
mov rcx, qword [0x1800e30f0]
xor rax, rcx
mov ecx, dword [rsp + 0x48]
mov ecx, ecx
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [0x1800e30fc]
add eax, ecx
not eax
xor eax, 0x67
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x6c
mov dword [rsp + 0x1a0], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x2ff
mov dword [rsp + 0x144], eax
cmp dword [0x1800e3074], 0
je 0x18000f4dc
mov rax, qword [rsp + 0x128]
cmp rax, qword [rsp + 0xc0]
je 0x18000f454
mov dword [rsp + 0x108], 1
jmp 0x18000f45f
mov dword [rsp + 0x108], 0
mov rax, qword [rsp + 0x128]
cmp rax, 0x62
je 0x18000f47a
mov dword [rsp + 0x104], 1
jmp 0x18000f485
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x104]
cmp dword [rsp + 0x108], eax
jg 0x18000f4ac
movsx eax, byte [0x1800e309a]
movsx ecx, byte [rsp + 0x20]
imul eax, ecx
mov byte [0x1800e309a], al
jmp 0x18000f4da
cmp qword [rsp + 0xc0], 0
jne 0x18000f4c3
mov rax, qword [0x1800e30f0]
test rax, rax
je 0x18000f4da
mov dword [rsp + 0x60], 0x9a
movzx eax, byte [0x1800e30b3]
inc al
mov byte [0x1800e30b3], al
jmp 0x18000f4f7
cmp dword [0x1800e3108], 0
je 0x18000f4f7
movzx eax, byte [rsp + 0x29]
movsx rax, al
sub rax, qword [rsp + 0x68]
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0xb8]
add eax, 0x1f9
mov dword [rsp + 0x140], eax
mov eax, 3
mov word [rsp + 0x30], ax
movsx eax, byte [0x1800e309a]
movzx ecx, byte [0x1800e308b]
sub eax, ecx
mov byte [0x1800e309a], al
movzx eax, word [rsp + 0x30]
movzx eax, ax
mov dword [rsp + 0x70], eax
cmp dword [rsp + 0x70], 0
je 0x18000f55b
cmp dword [rsp + 0x70], 1
je 0x18000f58f
cmp dword [rsp + 0x70], 2
je 0x18000f5c5
cmp dword [rsp + 0x70], 3
je 0x18000f5e8
jmp 0x18000f60c
movzx eax, byte [rsp + 0x34]
movzx eax, al
mov ecx, dword [0x1800e30fc]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x1800e30fc]
add ecx, eax
mov eax, ecx
mov dword [0x1800e30fc], eax
movsx eax, byte [rsp + 0x20]
imul eax, eax, 0x26b8
mov word [rsp + 0x3c], ax
jmp 0x18000f60c
movsx eax, word [rsp + 0x38]
test eax, eax
je 0x18000f5a7
mov eax, dword [0x1800e3130]
mov dword [rsp + 0x10c], eax
jmp 0x18000f5b4
mov eax, dword [0x1800e30d0]
mov dword [rsp + 0x10c], eax
mov eax, dword [rsp + 0x10c]
mov qword [rsp + 0x80], rax
jmp 0x18000f60c
movzx eax, byte [0x1800e3036]
movsx eax, al
sub eax, 0x43c73e93
cdqe
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
jmp 0x18000f60c
movsx rax, byte [0x1800e3037]
movabs rcx, 0x823adf731884b
sub rax, rcx
mov qword [0x1800e30e8], rax
mov dword [rsp + 0x74], 0xe22c
mov eax, dword [rsp + 0x140]
mov ecx, dword [rsp + 0x144]
xor eax, ecx
imul eax, eax, 0
mov ecx, dword [rsp + 0x2c]
lea eax, [rax + rcx*4 - 4]
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x4c]
mov eax, eax
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x250]
movzx eax, byte [rdx + rax]
mov byte [rsp + rcx + 0x24], al
mov eax, dword [rsp + 0x4c]
inc eax
mov eax, eax
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x250]
movzx eax, byte [rdx + rax]
mov byte [rsp + rcx + 0x24], al
mov eax, dword [rsp + 0x4c]
add eax, 2
mov eax, eax
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x250]
movzx eax, byte [rdx + rax]
mov byte [rsp + rcx + 0x24], al
mov eax, dword [rsp + 0x4c]
add eax, 3
mov eax, eax
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x250]
movzx eax, byte [rdx + rax]
mov byte [rsp + rcx + 0x24], al
xor edx, edx
mov eax, dword [rsp + 0x2c]
mov ecx, 8
div ecx
mov eax, edx
test eax, eax
jne 0x18000fb37
mov dword [0x1800e310c], 0xec58
mov eax, dword [rsp + 0x110]
xor eax, 0x1cc4
mov dword [rsp + 0x60], eax
movzx eax, word [0x1800e30f8]
add eax, 0x50cb
mov byte [0x1800e3073], al
mov eax, dword [0x1800e4740]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x60]
add eax, 0xab9
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x90]
add eax, 0x3b6
mov dword [rsp + 0x14c], eax
movsx eax, word [rsp + 0x38]
sub eax, 0xc090
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0x48]
mov ecx, 2
imul rcx, rcx, 0x77
lea rdx, [0x18036e730]
mov word [rdx + rcx], ax
mov eax, dword [rsp + 0x90]
add eax, 0x3db
mov dword [rsp + 0x148], eax
movzx eax, word [0x1800e3120]
movsx rax, ax
cmp rax, qword [rsp + 0x80]
jl 0x18000f7df
mov rax, qword [0x1800e3090]
cmp qword [rsp + 0x80], rax
jbe 0x18000f78c
mov dword [rsp + 0x118], 1
jmp 0x18000f797
mov dword [rsp + 0x118], 0
cmp qword [rsp + 0x80], 0x3b
jle 0x18000f7af
mov dword [rsp + 0x114], 1
jmp 0x18000f7ba
mov dword [rsp + 0x114], 0
mov eax, dword [rsp + 0x114]
cmp dword [rsp + 0x118], eax
jle 0x18000f7dd
mov rax, qword [rsp + 0x98]
dec rax
mov qword [rsp + 0x98], rax
jmp 0x18000f801
movzx eax, byte [0x1800e308b]
test eax, eax
je 0x18000f801
movsx rax, byte [rsp + 0x20]
movabs rcx, 0x4e0526ce094f
and rax, rcx
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x90]
add eax, 0x333
mov dword [rsp + 0x11c], eax
mov eax, dword [rsp + 0x11c]
mov ecx, dword [rsp + 0x11c]
add eax, ecx
mov ecx, dword [rsp + 0x148]
imul ecx, ecx, 0x117
xor eax, ecx
mov ecx, dword [rsp + 0x14c]
add ecx, 0x275
xor ecx, 0xa
cmp eax, ecx
je 0x18000fa58
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x80], rax
jge 0x18000f86a
mov dword [rsp + 0x124], 1
jmp 0x18000f875
mov dword [rsp + 0x124], 0
cmp qword [rsp + 0x80], 0x1a
jge 0x18000f88d
mov dword [rsp + 0x120], 1
jmp 0x18000f898
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x120]
cmp dword [rsp + 0x124], eax
jl 0x18000f8ad
jmp 0x18000f9e3
movzx eax, byte [rsp + 0x28]
test eax, eax
je 0x18000f8de
movsxd rax, dword [0x1800e30c0]
movabs rcx, 0x7dbbb27d7bf10
xor rax, rcx
mov byte [rsp + 0x35], al
movzx eax, byte [rsp + 0x20]
inc al
mov byte [rsp + 0x20], al
jmp 0x18000f9e3
movsx eax, word [0x1800e30b0]
mov ecx, dword [rsp + 0x74]
cmp eax, ecx
jge 0x18000f8fa
mov dword [rsp + 0xc8], 1
jmp 0x18000f905
mov dword [rsp + 0xc8], 0
mov eax, dword [rsp + 0xc8]
not eax
test eax, eax
je 0x18000f957
movsx eax, byte [0x1800e3037]
mov ecx, 0x674b
sub ecx, eax
mov eax, ecx
test eax, eax
je 0x18000f957
mov eax, dword [0x1800e310c]
mov eax, eax
mov rcx, qword [rsp + 0x160]
and rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x160]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x160], rax
jmp 0x18000f9e3
movzx eax, byte [rsp + 0x40]
movsx eax, al
not eax
mov ecx, dword [rsp + 0x58]
cmp eax, ecx
jg 0x18000f976
mov dword [rsp + 0xcc], 1
jmp 0x18000f981
mov dword [rsp + 0xcc], 0
mov eax, dword [rsp + 0xcc]
not eax
test eax, eax
jne 0x18000f9e3
movzx eax, byte [rsp + 0x28]
mov rcx, qword [0x1800e3090]
imul rax, rcx
test rax, rax
jne 0x18000f9b1
mov qword [rsp + 0x178], 1
jmp 0x18000f9bd
mov qword [rsp + 0x178], 0
mov rax, qword [rsp + 0x68]
mov rcx, qword [0x1800e30a8]
and rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x178]
sub rcx, rax
mov rax, rcx
mov byte [0x1800e308b], al
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rsp + rax + 0x24]
mov byte [rsp + 0x50], al
mov eax, 1
imul rax, rax, 1
mov ecx, 1
imul rcx, rcx, 0
movzx eax, byte [rsp + rax + 0x24]
mov byte [rsp + rcx + 0x24], al
mov eax, 1
imul rax, rax, 2
mov ecx, 1
imul rcx, rcx, 1
movzx eax, byte [rsp + rax + 0x24]
mov byte [rsp + rcx + 0x24], al
mov eax, 1
imul rax, rax, 3
mov ecx, 1
imul rcx, rcx, 2
movzx eax, byte [rsp + rax + 0x24]
mov byte [rsp + rcx + 0x24], al
mov eax, 1
imul rax, rax, 3
movzx ecx, byte [rsp + 0x50]
mov byte [rsp + rax + 0x24], cl
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 0
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 1
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 2
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 3
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 3
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rsp + rax + 0x24]
mov dword [rsp + 0x150], eax
xor edx, edx
mov eax, dword [rsp + 0x2c]
mov ecx, 8
div ecx
mov eax, eax
lea rcx, [0x1800b85e0]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x150]
xor ecx, eax
mov eax, ecx
mov ecx, 1
imul rcx, rcx, 0
mov byte [rsp + rcx + 0x24], al
xor edx, edx
mov eax, dword [rsp + 0x2c]
mov ecx, 8
div ecx
mov eax, edx
cmp eax, 4
jne 0x18000fbe7
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 0
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 1
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 2
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, 1
imul rax, rax, 3
movzx eax, byte [rsp + rax + 0x24]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 3
movzx eax, byte [rcx + rax]
mov byte [rsp + rdx + 0x24], al
mov eax, dword [rsp + 0x2c]
shl eax, 2
mov dword [rsp + 0x78], eax
movzx eax, word [rsp + 0x3c]
sub eax, 0x28
mov dword [rsp + 0x58], eax
movsx rax, byte [0x1800e3027]
mov rcx, qword [rsp + 0x98]
add rax, rcx
movsx rcx, byte [0x1800e3027]
add rcx, rax
mov rax, rcx
mov byte [0x1800e3027], al
mov eax, dword [rsp + 0x2c]
lea eax, [rax*4 - 0x20]
mov ecx, dword [rsp + 0x94]
mov edx, dword [rsp + 0x154]
sub ecx, edx
mov edx, dword [rsp + 0x94]
mov edi, dword [rsp + 0x94]
xor edx, edi
imul ecx, edx
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x4c]
mov eax, eax
mov rcx, qword [rsp + 0x250]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 0
movzx ecx, byte [rsp + rcx + 0x24]
xor eax, ecx
mov ecx, dword [rsp + 0x78]
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x4c]
inc eax
mov eax, eax
mov rcx, qword [rsp + 0x250]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
movzx ecx, byte [rsp + rcx + 0x24]
xor eax, ecx
mov ecx, dword [rsp + 0x78]
inc ecx
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x4c]
add eax, 2
mov eax, eax
mov rcx, qword [rsp + 0x250]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 2
movzx ecx, byte [rsp + rcx + 0x24]
xor eax, ecx
mov ecx, dword [rsp + 0x78]
add ecx, 2
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x4c]
add eax, 3
mov eax, eax
mov rcx, qword [rsp + 0x250]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 3
movzx ecx, byte [rsp + rcx + 0x24]
xor eax, ecx
mov ecx, dword [rsp + 0x78]
add ecx, 3
mov ecx, ecx
mov rdx, qword [rsp + 0x250]
mov byte [rdx + rcx], al
jmp 0x18000ef69
xor eax, eax
add rsp, 0x238
pop rdi
pop rsi
ret