Function at 0x180308580
Capabilities:
Encrypt data using camellia

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x18050b500]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov r15d, r8d
lea rsi, [rcx + 4]
xorps xmm0, xmm0
mov dword [rsp + 0x58], r15d
mov rdi, rdx
mov rbx, rcx
mov rcx, rsi
xor edx, edx
mov r8d, 0x110
movups xmmword [rbp + 0x180], xmm0
movups xmmword [rbp + 0x190], xmm0
call fcn.1803bc5c0
mov eax, r15d
sub eax, 0x80
je 0x180308863
sub eax, 0x40
je 0x180308601
cmp eax, 0x40
je 0x180308601
mov eax, 0xffffffdc
jmp 0x180309c0a
lea r9, [0x180494d36]
mov qword [rbp - 0x38], 0xb0
mov qword [rbp - 0x20], r9
lea rax, [0x180494c71]
mov qword [rsp + 0x50], rax
lea r9, [0x180494d37]
mov qword [rbp - 0x10], r9
lea rax, [0x180494c72]
mov qword [rsp + 0x48], rax
lea r9, [0x180494d38]
mov qword [rbp], r9
lea rax, [0x180494c73]
mov qword [rsp + 0x40], rax
lea r9, [0x180494d39]
mov qword [rbp + 0x10], r9
lea rax, [0x180494c74]
mov qword [rsp + 0x60], rax
lea r9, [0x180494d3a]
mov qword [rbp + 0x20], r9
lea rax, [0x180494c75]
mov qword [rsp + 0x68], rax
lea r9, [0x180494d3b]
mov qword [rbp + 0x30], r9
lea rax, [0x180494c76]
mov qword [rsp + 0x70], rax
lea r9, [0x180494d3c]
mov qword [rbp + 0x40], r9
lea rax, [0x180494c77]
mov qword [rsp + 0x78], rax
lea r9, [0x180494d3d]
mov qword [rbp + 0x50], r9
lea rax, [0x180494c78]
mov qword [rbp - 0x80], rax
lea r9, [0x180494d3e]
mov qword [rbp + 0x60], r9
lea rax, [0x180494c79]
mov qword [rbp - 0x78], rax
lea r9, [0x180494d3f]
mov qword [rbp + 0x70], r9
lea rax, [0x180494c7a]
mov qword [rbp - 0x70], rax
lea r9, [0x180494d40]
mov qword [rbp + 0x80], r9
lea rax, [0x180494c7b]
mov qword [rbp - 0x68], rax
lea r9, [0x180494d41]
mov qword [rbp + 0x90], r9
lea rax, [0x180494c7c]
mov qword [rbp - 0x60], rax
lea r9, [0x180494d42]
mov qword [rbp + 0xa0], r9
lea rax, [0x180494c7d]
lea r9, [0x180494d43]
mov qword [rbp - 0x58], rax
mov qword [rbp + 0xb0], r9
lea r10, [0x180494d45]
lea r9, [0x180494d44]
mov qword [rbp + 0xd0], r10
lea rdx, [0x180494d34]
mov qword [rbp + 0xc0], r9
lea rax, [0x180494c7e]
mov qword [rbp - 0x40], rdx
mov ecx, 4
mov qword [rbp - 0x50], rax
lea r9, [0x180494d47]
mov qword [rbp - 0x28], 0xb4
lea r10, [0x180494d46]
mov qword [rbp + 0xf0], r9
lea rdx, [0x180494d35]
mov qword [rbp + 0xe0], r10
lea r14d, [rcx + 0x4c]
mov qword [rbp - 0x30], rdx
lea rax, [0x180494c7f]
mov qword [rbp - 0x18], 0xb8
mov qword [rbp - 8], 0xbc
mov qword [rbp + 8], 0xc0
mov qword [rbp + 0x18], 0xc4
mov qword [rbp + 0x28], 0xc8
mov qword [rbp + 0x38], 0xcc
mov qword [rbp + 0x48], 0xd0
mov qword [rbp + 0x58], 0xd4
mov qword [rbp + 0x68], 0xd8
mov qword [rbp + 0x78], 0xdc
mov qword [rbp + 0x88], 0xe0
mov qword [rbp + 0x98], 0xe4
mov qword [rbp + 0xa8], 0xe8
mov qword [rbp + 0xb8], 0xec
mov qword [rbp + 0xc8], 0xf0
mov qword [rbp + 0xd8], 0xf4
mov qword [rbp + 0xe8], 0xf8
mov qword [rbp + 0xf8], 0xfc
jmp 0x180308abf
lea rax, [0x180494d22]
mov qword [rbp - 0x38], 0x80
mov qword [rbp - 0x20], rax
mov ecx, 3
lea rax, [0x180494d23]
mov qword [rbp - 0x28], 0x84
mov qword [rbp - 0x10], rax
xor r14d, r14d
lea rax, [0x180494d24]
mov qword [rbp - 0x18], 0x88
mov qword [rbp], rax
lea rax, [0x180494d25]
mov qword [rbp + 0x10], rax
lea rax, [0x180494d26]
mov qword [rbp + 0x20], rax
lea rax, [0x180494d27]
mov qword [rbp + 0x30], rax
lea rax, [0x180494d28]
mov qword [rbp + 0x40], rax
lea rax, [0x180494d29]
mov qword [rbp + 0x50], rax
lea rax, [0x180494d2a]
mov qword [rbp + 0x60], rax
lea rax, [0x180494d2b]
mov qword [rbp + 0x70], rax
lea rax, [0x180494d2c]
mov qword [rbp + 0x80], rax
lea rax, [0x180494d2d]
mov qword [rbp + 0x90], rax
lea rax, [0x180494d2e]
mov qword [rbp + 0xa0], rax
lea rax, [0x180494d2f]
mov qword [rbp + 0xb0], rax
lea rax, [0x180494d30]
mov qword [rbp + 0xc0], rax
lea rax, [0x180494d31]
mov qword [rbp + 0xd0], rax
lea rax, [0x180494d32]
mov qword [rbp + 0xe0], rax
lea rax, [0x180494d20]
mov qword [rbp - 0x40], rax
lea rax, [0x180494d33]
mov qword [rbp + 0xf0], rax
lea rax, [0x180494d21]
mov qword [rbp - 0x30], rax
lea rax, [0x180494c61]
mov qword [rsp + 0x50], rax
lea rax, [0x180494c62]
mov qword [rsp + 0x48], rax
lea rax, [0x180494c63]
mov qword [rsp + 0x40], rax
lea rax, [0x180494c64]
mov qword [rsp + 0x60], rax
lea rax, [0x180494c65]
mov qword [rsp + 0x68], rax
lea rax, [0x180494c66]
mov qword [rsp + 0x70], rax
lea rax, [0x180494c67]
mov qword [rsp + 0x78], rax
lea rax, [0x180494c68]
mov qword [rbp - 0x80], rax
lea rax, [0x180494c69]
mov qword [rbp - 0x78], rax
lea rax, [0x180494c6a]
mov qword [rbp - 0x70], rax
lea rax, [0x180494c6b]
mov qword [rbp - 0x68], rax
lea rax, [0x180494c6c]
mov qword [rbp - 0x60], rax
lea rax, [0x180494c6d]
mov qword [rbp - 0x58], rax
lea rax, [0x180494c6e]
mov qword [rbp - 0x50], rax
lea rax, [0x180494c6f]
mov qword [rbp - 8], 0x8c
mov qword [rbp + 8], 0x90
mov qword [rbp + 0x18], 0x94
mov qword [rbp + 0x28], 0x98
mov qword [rbp + 0x38], 0x9c
mov qword [rbp + 0x48], 0xa0
mov qword [rbp + 0x58], 0xa4
mov qword [rbp + 0x68], 0xa8
mov qword [rbp + 0x78], 0xac
mov qword [rbp + 0x88], 0xb0
mov qword [rbp + 0x98], 0xb4
mov qword [rbp + 0xa8], 0xb8
mov qword [rbp + 0xb8], 0xbc
mov qword [rbp + 0xc8], 0xc0
mov qword [rbp + 0xd8], 0xc4
mov qword [rbp + 0xe8], 0xc8
mov qword [rbp + 0xf8], 0xcc
mov qword [rsp + 0x308], r12
mov r8, r15
shr r8, 3
mov qword [rsp + 0x310], r13
mov qword [rbp - 0x48], rax
mov dword [rbx], ecx
test r8, r8
je 0x180308af0
mov rdx, rdi
lea rcx, [rbp + 0x180]
call fcn.1803bbf20
movzx edx, byte [rbp + 0x197]
movzx r8d, byte [rbp + 0x194]
movzx r9d, byte [rbp + 0x190]
cmp r15d, 0xc0
jne 0x180308b70
movzx r15d, byte [rbp + 0x191]
movzx eax, r8b
movzx r12d, byte [rbp + 0x192]
not al
movzx r13d, byte [rbp + 0x193]
movzx ecx, r9b
mov byte [rsp + 0x3b], al
not cl
movzx eax, byte [rbp + 0x195]
not r15b
not al
not r12b
mov byte [rsp + 0x38], al
not r13b
movzx eax, byte [rbp + 0x196]
not al
mov byte [rsp + 0x39], al
movzx eax, dl
not al
mov byte [rsp + 0x3a], al
jmp 0x180308bbb
movzx eax, byte [rbp + 0x19f]
movzx r13d, byte [rbp + 0x19b]
movzx r12d, byte [rbp + 0x19a]
movzx r15d, byte [rbp + 0x199]
movzx ecx, byte [rbp + 0x198]
mov byte [rsp + 0x3a], al
movzx eax, byte [rbp + 0x19e]
mov byte [rsp + 0x39], al
movzx eax, byte [rbp + 0x19d]
mov byte [rsp + 0x38], al
movzx eax, byte [rbp + 0x19c]
mov byte [rsp + 0x3b], al
movzx eax, byte [rbp + 0x181]
xorps xmm0, xmm0
movzx edi, byte [rbp + 0x180]
movzx ebx, byte [rbp + 0x184]
movzx r11d, byte [rbp + 0x188]
movzx r10d, byte [rbp + 0x18c]
shl edi, 8
or edi, eax
shl ebx, 8
movzx eax, byte [rbp + 0x182]
shl r11d, 8
shl r10d, 8
shl r9d, 8
shl edi, 8
or edi, eax
shl r8d, 8
movzx eax, byte [rbp + 0x183]
movups xmmword [rbp + 0x100], xmm0
shl edi, 8
or edi, eax
mov dword [rbp + 0x150], 0xa09e667f
movzx eax, byte [rbp + 0x185]
or ebx, eax
mov dword [rbp + 0x154], 0x3bcc908b
movzx eax, byte [rbp + 0x186]
shl ebx, 8
or ebx, eax
mov dword [rbp + 0x158], 0xb67ae858
movzx eax, byte [rbp + 0x187]
shl ebx, 8
or ebx, eax
mov dword [rbp + 0x15c], 0x4caa73b2
movzx eax, byte [rbp + 0x189]
or r11d, eax
mov dword [rbp + 0x160], 0xc6ef372f
movzx eax, byte [rbp + 0x18a]
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x164], 0xe94f82be
movzx eax, byte [rbp + 0x18b]
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x168], 0x54ff53a5
movzx eax, byte [rbp + 0x18d]
or r10d, eax
mov dword [rbp + 0x16c], 0xf1d36f1c
movzx eax, byte [rbp + 0x18e]
shl r10d, 8
or r10d, eax
mov dword [rbp + 0x170], 0x10e527fa
movzx eax, byte [rbp + 0x18f]
shl r10d, 8
or r10d, eax
mov dword [rbp + 0x174], 0xde682d1d
movzx eax, byte [rbp + 0x191]
or r9d, eax
mov dword [rbp + 0x178], 0xb05688c2
movzx eax, byte [rbp + 0x192]
shl r9d, 8
or r9d, eax
mov dword [rbp + 0x17c], 0xb3e6c1fd
movzx eax, byte [rbp + 0x193]
shl r9d, 8
or r9d, eax
mov dword [rbp + 0x100], edi
movzx eax, byte [rbp + 0x195]
or r8d, eax
mov dword [rbp + 0x104], ebx
movzx eax, byte [rbp + 0x196]
shl r8d, 8
or r8d, eax
mov dword [rbp + 0x108], r11d
movups xmmword [rbp + 0x110], xmm0
shl r8d, 8
or r8d, edx
mov dword [rbp + 0x10c], r10d
mov dword [rbp + 0x114], r8d
movups xmmword [rbp + 0x120], xmm0
mov dword [rbp + 0x110], r9d
movups xmmword [rbp + 0x130], xmm0
movzx edx, cl
movzx ecx, byte [rsp + 0x3b]
xor r8d, ebx
shl edx, 8
xor r9d, edi
shl ecx, 8
movzx eax, r15b
or edx, eax
mov dword [rbp + 0x124], r8d
shl edx, 8
lea r8, [rbp + 0x128]
movzx eax, r12b
or edx, eax
mov dword [rbp + 0x120], r9d
shl edx, 8
movzx eax, r13b
or edx, eax
movzx eax, byte [rsp + 0x38]
or ecx, eax
mov dword [rbp + 0x118], edx
movzx eax, byte [rsp + 0x39]
xor edx, r11d
shl ecx, 8
or ecx, eax
mov dword [rbp + 0x128], edx
movzx eax, byte [rsp + 0x3a]
lea rdx, [rbp + 0x150]
shl ecx, 8
or ecx, eax
mov dword [rbp + 0x11c], ecx
xor ecx, r10d
mov dword [rbp + 0x12c], ecx
lea rcx, [rbp + 0x120]
call fcn.1803078a0
lea r8, [rbp + 0x120]
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x128]
call fcn.1803078a0
movdqu xmm0, xmmword [rbp + 0x100]
lea r8, [rbp + 0x128]
xorps xmm0, xmmword [rbp + 0x120]
lea rdx, [rbp + 0x160]
lea rcx, [rbp + 0x120]
movdqu xmmword [rbp + 0x120], xmm0
call fcn.1803078a0
lea r8, [rbp + 0x120]
lea rdx, [rbp + 0x168]
lea rcx, [rbp + 0x128]
call fcn.1803078a0
cmp dword [rsp + 0x58], 0x80
jbe 0x180308f00
mov eax, dword [rbp + 0x120]
lea r8, [rbp + 0x138]
xor eax, dword [rbp + 0x110]
lea rdx, [rbp + 0x170]
mov dword [rbp + 0x130], eax
lea rcx, [rbp + 0x130]
mov eax, dword [rbp + 0x124]
xor eax, dword [rbp + 0x114]
mov dword [rbp + 0x134], eax
mov eax, dword [rbp + 0x128]
xor eax, dword [rbp + 0x118]
mov dword [rbp + 0x138], eax
mov eax, dword [rbp + 0x12c]
xor eax, dword [rbp + 0x11c]
mov dword [rbp + 0x13c], eax
call fcn.1803078a0
lea r8, [rbp + 0x130]
lea rdx, [rbp + 0x178]
lea rcx, [rbp + 0x138]
call fcn.1803078a0
nop dword [rax]
mov rdi, qword [rsp + 0x50]
mov r9d, dword [rbp + 0x10c]
mov r8d, dword [rbp + 0x108]
mov edx, dword [rbp + 0x104]
cmp byte [rdi - 1], 0
mov ecx, dword [rbp + 0x100]
je 0x180308f62
mov r10d, edx
mov eax, ecx
shl eax, 0xf
mov r11d, r8d
shr r10d, 0x11
mov ebx, r9d
xor r10d, eax
shr r11d, 0x11
shr ebx, 0x11
mov eax, edx
shl eax, 0xf
mov r12d, r9d
xor r11d, eax
shl r12d, 0xf
mov eax, r8d
shl eax, 0xf
xor ebx, eax
mov eax, ecx
shr eax, 0x11
xor r12d, eax
jmp 0x180308f7d
mov r12d, dword [rbp + 0x11c]
mov ebx, dword [rbp + 0x118]
mov r11d, dword [rbp + 0x114]
mov r10d, dword [rbp + 0x110]
cmp byte [rdi], 0
je 0x180308fc8
mov edi, edx
mov eax, ecx
shl eax, 0x1e
mov r15d, r8d
shr edi, 2
mov r13d, r9d
xor edi, eax
shr r13d, 2
shr r15d, 2
mov eax, edx
shl eax, 0x1e
xor r15d, eax
mov eax, r8d
shl eax, 0x1e
xor r13d, eax
mov eax, ecx
mov dword [rsp + 0x34], r13d
mov r13d, r9d
shl r13d, 0x1e
shr eax, 2
xor r13d, eax
mov dword [rsp + 0x50], r13d
jmp 0x180308fe9
mov eax, dword [rbp + 0x12c]
mov r15d, dword [rbp + 0x124]
mov edi, dword [rbp + 0x120]
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x128]
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x48]
cmp byte [rax], 0
je 0x18030903e
mov r13d, edx
mov eax, ecx
shl eax, 0xd
shr r13d, 0x13
xor r13d, eax
mov eax, r8d
shr eax, 0x13
mov dword [rsp + 0x24], eax
mov eax, edx
shl eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, r9d
shr eax, 0x13
mov dword [rsp + 0x28], eax
mov eax, r8d
shl eax, 0xd
xor dword [rsp + 0x28], eax
mov eax, r9d
shl eax, 0xd
mov dword [rsp + 0x2c], eax
mov eax, ecx
shr eax, 0x13
xor dword [rsp + 0x2c], eax
jmp 0x180309063
mov eax, dword [rbp + 0x13c]
mov r13d, dword [rbp + 0x130]
mov dword [rsp + 0x2c], eax
mov eax, dword [rbp + 0x138]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x134]
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0
je 0x1803090bb
mov eax, edx
shr eax, 4
mov dword [rsp + 0x30], eax
mov eax, ecx
shl eax, 0x1c
xor dword [rsp + 0x30], eax
mov eax, r8d
shr eax, 4
mov dword [rsp + 0x20], eax
mov eax, edx
shl eax, 0x1c
xor dword [rsp + 0x20], eax
mov eax, r9d
shr eax, 4
mov dword [rsp + 0x40], eax
mov eax, r8d
shl eax, 0x1c
xor dword [rsp + 0x40], eax
mov eax, r9d
shl eax, 0x1c
mov dword [rsp + 0x48], eax
mov eax, ecx
shr eax, 4
xor dword [rsp + 0x48], eax
jmp 0x1803090e3
mov eax, dword [rbp + 0x14c]
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x148]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp + 0x144]
mov dword [rsp + 0x20], eax
mov eax, dword [rbp + 0x140]
mov dword [rsp + 0x30], eax
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax]
cmp al, 0xff
je 0x1803090f6
mov dword [rsi + rax*4], ecx
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 1]
cmp al, 0xff
je 0x18030910a
mov dword [rsi + rax*4], edx
lea rdx, [0x180494c80]
movsx rax, byte [r14 + rdx + 2]
cmp al, 0xff
je 0x18030911f
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 3]
cmp al, 0xff
je 0x18030912d
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 4]
cmp al, 0xff
je 0x18030913b
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 5]
cmp al, 0xff
je 0x180309149
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 6]
cmp al, 0xff
je 0x180309156
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 7]
cmp al, 0xff
je 0x180309164
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 8]
cmp al, 0xff
je 0x180309171
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 9]
cmp al, 0xff
je 0x18030917f
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0xa]
cmp al, 0xff
je 0x180309190
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xb]
cmp al, 0xff
je 0x1803091a1
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xc]
cmp al, 0xff
je 0x1803091af
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0xd]
cmp al, 0xff
je 0x1803091c0
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xe]
cmp al, 0xff
je 0x1803091d1
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xf]
cmp al, 0xff
je 0x1803091e2
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x10]
cmp al, 0xff
je 0x1803091f3
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x11]
cmp al, 0xff
je 0x180309204
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x12]
cmp al, 0xff
je 0x180309215
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x13]
cmp al, 0xff
je 0x180309226
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
cmp dword [rsp + 0x58], 0x80
jbe 0x1803094d0
mov rax, qword [rsp + 0x60]
mov r9d, dword [rbp + 0x11c]
mov r8d, dword [rbp + 0x118]
mov edx, dword [rbp + 0x114]
cmp byte [rax], 0
mov ecx, dword [rbp + 0x110]
je 0x180309293
mov r10d, edx
mov eax, ecx
shl eax, 0xf
mov r11d, r8d
shr r10d, 0x11
mov ebx, r9d
xor r10d, eax
shr r11d, 0x11
shr ebx, 0x11
mov eax, edx
shl eax, 0xf
mov r12d, r9d
xor r11d, eax
shl r12d, 0xf
mov eax, r8d
shl eax, 0xf
xor ebx, eax
mov eax, ecx
shr eax, 0x11
xor r12d, eax
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
je 0x1803092e0
mov edi, ecx
mov eax, edx
shr eax, 2
mov r15d, edx
shl edi, 0x1e
xor edi, eax
shl r15d, 0x1e
mov eax, r8d
shr eax, 2
xor r15d, eax
mov eax, r8d
shl eax, 0x1e
mov dword [rsp + 0x34], eax
mov eax, r9d
shr eax, 2
xor dword [rsp + 0x34], eax
mov eax, r9d
shl eax, 0x1e
mov dword [rsp + 0x50], eax
mov eax, ecx
shr eax, 2
xor dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x70]
cmp byte [rax], 0
je 0x180309333
mov r13d, edx
mov eax, ecx
shl eax, 0xd
shr r13d, 0x13
xor r13d, eax
mov eax, r8d
shr eax, 0x13
mov dword [rsp + 0x24], eax
mov eax, edx
shl eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, r9d
shr eax, 0x13
mov dword [rsp + 0x28], eax
mov eax, r8d
shl eax, 0xd
xor dword [rsp + 0x28], eax
mov eax, r9d
shl eax, 0xd
mov dword [rsp + 0x2c], eax
mov eax, ecx
shr eax, 0x13
xor dword [rsp + 0x2c], eax
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
je 0x180309389
mov eax, ecx
shl eax, 0x1c
mov dword [rsp + 0x30], eax
mov eax, edx
shr eax, 4
xor dword [rsp + 0x30], eax
mov eax, edx
shl eax, 0x1c
mov dword [rsp + 0x20], eax
mov eax, r8d
shr eax, 4
xor dword [rsp + 0x20], eax
mov eax, r8d
shl eax, 0x1c
mov dword [rsp + 0x40], eax
mov eax, r9d
shr eax, 4
xor dword [rsp + 0x40], eax
mov eax, r9d
shl eax, 0x1c
mov dword [rsp + 0x48], eax
mov eax, ecx
shr eax, 4
xor dword [rsp + 0x48], eax
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x14]
cmp al, 0xff
je 0x18030939d
mov dword [rsi + rax*4], ecx
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x15]
cmp al, 0xff
je 0x1803093b1
mov dword [rsi + rax*4], edx
lea rdx, [0x180494c80]
movsx rax, byte [r14 + rdx + 0x16]
cmp al, 0xff
je 0x1803093c6
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x17]
cmp al, 0xff
je 0x1803093d4
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x18]
cmp al, 0xff
je 0x1803093e2
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x19]
cmp al, 0xff
je 0x1803093f0
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x1a]
cmp al, 0xff
je 0x1803093fd
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x1b]
cmp al, 0xff
je 0x18030940b
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x1c]
cmp al, 0xff
je 0x180309418
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x1d]
cmp al, 0xff
je 0x180309426
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x1e]
cmp al, 0xff
je 0x180309437
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x1f]
cmp al, 0xff
je 0x180309448
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x20]
cmp al, 0xff
je 0x180309456
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x21]
cmp al, 0xff
je 0x180309467
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x22]
cmp al, 0xff
je 0x180309478
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x23]
cmp al, 0xff
je 0x180309489
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x24]
cmp al, 0xff
je 0x18030949a
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x25]
cmp al, 0xff
je 0x1803094ab
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x26]
cmp al, 0xff
je 0x1803094bc
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x27]
cmp al, 0xff
je 0x1803094d0
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
nop dword [rax]
mov rax, qword [rbp - 0x80]
mov r9d, dword [rbp + 0x12c]
mov r8d, dword [rbp + 0x128]
mov edx, dword [rbp + 0x124]
cmp byte [rax], 0
mov ecx, dword [rbp + 0x120]
je 0x18030952e
mov r10d, edx
mov eax, ecx
shl eax, 0xf
mov r11d, r8d
shr r10d, 0x11
mov ebx, r9d
xor r10d, eax
shr r11d, 0x11
shr ebx, 0x11
mov eax, edx
shl eax, 0xf
mov r12d, r9d
xor r11d, eax
shl r12d, 0xf
mov eax, r8d
shl eax, 0xf
xor ebx, eax
mov eax, ecx
shr eax, 0x11
xor r12d, eax
mov rax, qword [rbp - 0x78]
cmp byte [rax], 0
je 0x18030957a
mov edi, ecx
mov eax, edx
shr eax, 2
mov r15d, edx
shl edi, 0x1e
xor edi, eax
shl r15d, 0x1e
mov eax, r8d
shr eax, 2
xor r15d, eax
mov eax, r8d
shl eax, 0x1e
mov dword [rsp + 0x34], eax
mov eax, r9d
shr eax, 2
xor dword [rsp + 0x34], eax
mov eax, r9d
shl eax, 0x1e
mov dword [rsp + 0x50], eax
mov eax, ecx
shr eax, 2
xor dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x70]
cmp byte [rax], 0
je 0x1803095cc
mov r13d, edx
mov eax, ecx
shl eax, 0xd
shr r13d, 0x13
xor r13d, eax
mov eax, r8d
shr eax, 0x13
mov dword [rsp + 0x24], eax
mov eax, edx
shl eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, r9d
shr eax, 0x13
mov dword [rsp + 0x28], eax
mov eax, r8d
shl eax, 0xd
xor dword [rsp + 0x28], eax
mov eax, r9d
shl eax, 0xd
mov dword [rsp + 0x2c], eax
mov eax, ecx
shr eax, 0x13
xor dword [rsp + 0x2c], eax
mov rax, qword [rbp - 0x68]
cmp byte [rax], 0
je 0x180309621
mov eax, ecx
shl eax, 0x1c
mov dword [rsp + 0x30], eax
mov eax, edx
shr eax, 4
xor dword [rsp + 0x30], eax
mov eax, edx
shl eax, 0x1c
mov dword [rsp + 0x20], eax
mov eax, r8d
shr eax, 4
xor dword [rsp + 0x20], eax
mov eax, r8d
shl eax, 0x1c
mov dword [rsp + 0x40], eax
mov eax, r9d
shr eax, 4
xor dword [rsp + 0x40], eax
mov eax, r9d
shl eax, 0x1c
mov dword [rsp + 0x48], eax
mov eax, ecx
shr eax, 4
xor dword [rsp + 0x48], eax
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x28]
cmp al, 0xff
je 0x180309635
mov dword [rsi + rax*4], ecx
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x29]
cmp al, 0xff
je 0x180309649
mov dword [rsi + rax*4], edx
lea rdx, [0x180494c80]
movsx rax, byte [r14 + rdx + 0x2a]
cmp al, 0xff
je 0x18030965e
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x2b]
cmp al, 0xff
je 0x18030966c
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x2c]
cmp al, 0xff
je 0x18030967a
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x2d]
cmp al, 0xff
je 0x180309688
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x2e]
cmp al, 0xff
je 0x180309695
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x2f]
cmp al, 0xff
je 0x1803096a3
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x30]
cmp al, 0xff
je 0x1803096b0
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x31]
cmp al, 0xff
je 0x1803096be
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x32]
cmp al, 0xff
je 0x1803096cf
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x33]
cmp al, 0xff
je 0x1803096e0
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x34]
cmp al, 0xff
je 0x1803096ee
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x35]
cmp al, 0xff
je 0x1803096ff
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x36]
cmp al, 0xff
je 0x180309710
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x37]
cmp al, 0xff
je 0x180309721
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x38]
cmp al, 0xff
je 0x180309732
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x39]
cmp al, 0xff
je 0x180309743
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x3a]
cmp al, 0xff
je 0x180309754
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x3b]
cmp al, 0xff
je 0x180309765
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
cmp dword [rsp + 0x58], 0x80
jbe 0x180309a10
mov rax, qword [rbp - 0x60]
mov r9d, dword [rbp + 0x13c]
mov r8d, dword [rbp + 0x138]
mov edx, dword [rbp + 0x134]
cmp byte [rax], 0
mov ecx, dword [rbp + 0x130]
je 0x1803097d1
mov r10d, edx
mov eax, ecx
shl eax, 0xf
mov r11d, r8d
shr r10d, 0x11
mov ebx, r9d
xor r10d, eax
shr r11d, 0x11
shr ebx, 0x11
mov eax, edx
shl eax, 0xf
mov r12d, r9d
xor r11d, eax
shl r12d, 0xf
mov eax, r8d
shl eax, 0xf
xor ebx, eax
mov eax, ecx
shr eax, 0x11
xor r12d, eax
mov rax, qword [rbp - 0x58]
cmp byte [rax], 0
je 0x18030981d
mov edi, ecx
mov eax, edx
shr eax, 2
mov r15d, edx
shl edi, 0x1e
xor edi, eax
shl r15d, 0x1e
mov eax, r8d
shr eax, 2
xor r15d, eax
mov eax, r8d
shl eax, 0x1e
mov dword [rsp + 0x34], eax
mov eax, r9d
shr eax, 2
xor dword [rsp + 0x34], eax
mov eax, r9d
shl eax, 0x1e
mov dword [rsp + 0x50], eax
mov eax, ecx
shr eax, 2
xor dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x50]
cmp byte [rax], 0
je 0x18030986f
mov r13d, edx
mov eax, ecx
shl eax, 0xd
shr r13d, 0x13
xor r13d, eax
mov eax, r8d
shr eax, 0x13
mov dword [rsp + 0x24], eax
mov eax, edx
shl eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, r9d
shr eax, 0x13
mov dword [rsp + 0x28], eax
mov eax, r8d
shl eax, 0xd
xor dword [rsp + 0x28], eax
mov eax, r9d
shl eax, 0xd
mov dword [rsp + 0x2c], eax
mov eax, ecx
shr eax, 0x13
xor dword [rsp + 0x2c], eax
mov rax, qword [rbp - 0x48]
cmp byte [rax], 0
je 0x1803098c4
mov eax, ecx
shl eax, 0x1c
mov dword [rsp + 0x30], eax
mov eax, edx
shr eax, 4
xor dword [rsp + 0x30], eax
mov eax, edx
shl eax, 0x1c
mov dword [rsp + 0x20], eax
mov eax, r8d
shr eax, 4
xor dword [rsp + 0x20], eax
mov eax, r8d
shl eax, 0x1c
mov dword [rsp + 0x40], eax
mov eax, r9d
shr eax, 4
xor dword [rsp + 0x40], eax
mov eax, r9d
shl eax, 0x1c
mov dword [rsp + 0x48], eax
mov eax, ecx
shr eax, 4
xor dword [rsp + 0x48], eax
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x3c]
cmp al, 0xff
je 0x1803098d8
mov dword [rsi + rax*4], ecx
lea rax, [0x180494c80]
movsx rax, byte [r14 + rax + 0x3d]
cmp al, 0xff
je 0x1803098ec
mov dword [rsi + rax*4], edx
lea rdx, [0x180494c80]
movsx rax, byte [r14 + rdx + 0x3e]
cmp al, 0xff
je 0x180309901
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x3f]
cmp al, 0xff
je 0x18030990f
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x40]
cmp al, 0xff
je 0x18030991d
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x41]
cmp al, 0xff
je 0x18030992b
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x42]
cmp al, 0xff
je 0x180309938
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x43]
cmp al, 0xff
je 0x180309946
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x44]
cmp al, 0xff
je 0x180309953
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x45]
cmp al, 0xff
je 0x180309961
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x46]
cmp al, 0xff
je 0x180309972
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x47]
cmp al, 0xff
je 0x180309983
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x48]
cmp al, 0xff
je 0x180309991
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x49]
cmp al, 0xff
je 0x1803099a2
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4a]
cmp al, 0xff
je 0x1803099b3
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4b]
cmp al, 0xff
je 0x1803099c4
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4c]
cmp al, 0xff
je 0x1803099d5
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4d]
cmp al, 0xff
je 0x1803099e6
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4e]
cmp al, 0xff
je 0x1803099f7
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4f]
cmp al, 0xff
je 0x180309a10
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
nop dword [rax + rax]
mov rax, qword [rbp - 0x40]
mov r13, qword [rsp + 0x310]
mov r12, qword [rsp + 0x308]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309a36
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp - 0x38]
mov dword [rax + rsi], ecx
mov rax, qword [rbp - 0x30]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309a4c
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp - 0x28]
mov dword [rax + rsi], ecx
mov rax, qword [rbp - 0x20]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309a62
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp - 0x18]
mov dword [rax + rsi], ecx
mov rax, qword [rbp - 0x10]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309a78
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp - 8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309a8e
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x10]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309aa4
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x18]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x20]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309aba
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x28]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x30]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309ad0
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x38]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x40]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309ae6
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x48]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x50]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309afc
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x58]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x60]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b12
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x68]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x70]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b28
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x78]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x80]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b44
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x88]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0x90]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b60
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0x98]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xa0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b7c
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xa8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xb0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309b98
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xb8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xc0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309bb4
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xc8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xd0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309bd0
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xd8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xe0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309bec
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xe8]
mov dword [rax + rsi], ecx
mov rax, qword [rbp + 0xf0]
movsx rax, byte [rax]
cmp al, 0xff
je 0x180309c08
mov ecx, dword [rsi + rax*4]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rsi], ecx
xor eax, eax
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.180313c00
mov rbx, qword [rsp + 0x318]
add rsp, 0x2d0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret