Function at 0x1801bc990
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 [0x1802b7c00]
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 sub.VCRUNTIME140.dll_memset
mov eax, r15d
sub eax, 0x80
je 0x1801bcc73
sub eax, 0x40
je 0x1801bca11
cmp eax, 0x40
je 0x1801bca11
mov eax, 0xffffffdc
jmp 0x1801be01a
lea r9, [0x180231ff6]
mov qword [rbp - 0x38], 0xb0
mov qword [rbp - 0x20], r9
lea rax, [0x180231f31]
mov qword [rsp + 0x50], rax
lea r9, [0x180231ff7]
mov qword [rbp - 0x10], r9
lea rax, [0x180231f32]
mov qword [rsp + 0x48], rax
lea r9, [0x180231ff8]
mov qword [rbp], r9
lea rax, [0x180231f33]
mov qword [rsp + 0x40], rax
lea r9, [0x180231ff9]
mov qword [rbp + 0x10], r9
lea rax, [0x180231f34]
mov qword [rsp + 0x60], rax
lea r9, [0x180231ffa]
mov qword [rbp + 0x20], r9
lea rax, [0x180231f35]
mov qword [rsp + 0x68], rax
lea r9, [0x180231ffb]
mov qword [rbp + 0x30], r9
lea rax, [0x180231f36]
mov qword [rsp + 0x70], rax
lea r9, [0x180231ffc]
mov qword [rbp + 0x40], r9
lea rax, [0x180231f37]
mov qword [rsp + 0x78], rax
lea r9, [0x180231ffd]
mov qword [rbp + 0x50], r9
lea rax, [0x180231f38]
mov qword [rbp - 0x80], rax
lea r9, [0x180231ffe]
mov qword [rbp + 0x60], r9
lea rax, [0x180231f39]
mov qword [rbp - 0x78], rax
lea r9, [0x180231fff]
mov qword [rbp + 0x70], r9
lea rax, [0x180231f3a]
mov qword [rbp - 0x70], rax
lea r9, [0x180232000]
mov qword [rbp + 0x80], r9
lea rax, [0x180231f3b]
mov qword [rbp - 0x68], rax
lea r9, [0x180232001]
mov qword [rbp + 0x90], r9
lea rax, [0x180231f3c]
mov qword [rbp - 0x60], rax
lea r9, [0x180232002]
mov qword [rbp + 0xa0], r9
lea rax, [0x180231f3d]
lea r9, [0x180232003]
mov qword [rbp - 0x58], rax
mov qword [rbp + 0xb0], r9
lea r10, [0x180232005]
lea r9, [0x180232004]
mov qword [rbp + 0xd0], r10
lea rdx, [0x180231ff4]
mov qword [rbp + 0xc0], r9
lea rax, [0x180231f3e]
mov qword [rbp - 0x40], rdx
mov ecx, 4
mov qword [rbp - 0x50], rax
lea r9, [0x180232007]
mov qword [rbp - 0x28], 0xb4
lea r10, [0x180232006]
mov qword [rbp + 0xf0], r9
lea rdx, [0x180231ff5]
mov qword [rbp + 0xe0], r10
lea r14d, [rcx + 0x4c]
mov qword [rbp - 0x30], rdx
lea rax, [0x180231f3f]
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 0x1801bcecf
lea rax, [0x180231fe2]
mov qword [rbp - 0x38], pe_nt_image_headers64
mov qword [rbp - 0x20], rax
mov ecx, 3
lea rax, [0x180231fe3]
mov qword [rbp - 0x28], 0x84
mov qword [rbp - 0x10], rax
xor r14d, r14d
lea rax, [0x180231fe4]
mov qword [rbp - 0x18], 0x88
mov qword [rbp], rax
lea rax, [0x180231fe5]
mov qword [rbp + 0x10], rax
lea rax, [0x180231fe6]
mov qword [rbp + 0x20], rax
lea rax, [0x180231fe7]
mov qword [rbp + 0x30], rax
lea rax, [0x180231fe8]
mov qword [rbp + 0x40], rax
lea rax, [0x180231fe9]
mov qword [rbp + 0x50], rax
lea rax, [0x180231fea]
mov qword [rbp + 0x60], rax
lea rax, [0x180231feb]
mov qword [rbp + 0x70], rax
lea rax, str._v_b_t_n
mov qword [rbp + 0x80], rax
lea rax, [0x180231fed]
mov qword [rbp + 0x90], rax
lea rax, [0x180231fee]
mov qword [rbp + 0xa0], rax
lea rax, [0x180231fef]
mov qword [rbp + 0xb0], rax
lea rax, [0x180231ff0]
mov qword [rbp + 0xc0], rax
lea rax, [0x180231ff1]
mov qword [rbp + 0xd0], rax
lea rax, [0x180231ff2]
mov qword [rbp + 0xe0], rax
lea rax, [0x180231fe0]
mov qword [rbp - 0x40], rax
lea rax, [0x180231ff3]
mov qword [rbp + 0xf0], rax
lea rax, [0x180231fe1]
mov qword [rbp - 0x30], rax
lea rax, [0x180231f21]
mov qword [rsp + 0x50], rax
lea rax, [0x180231f22]
mov qword [rsp + 0x48], rax
lea rax, [0x180231f23]
mov qword [rsp + 0x40], rax
lea rax, [0x180231f24]
mov qword [rsp + 0x60], rax
lea rax, [0x180231f25]
mov qword [rsp + 0x68], rax
lea rax, [0x180231f26]
mov qword [rsp + 0x70], rax
lea rax, [0x180231f27]
mov qword [rsp + 0x78], rax
lea rax, [0x180231f28]
mov qword [rbp - 0x80], rax
lea rax, [0x180231f29]
mov qword [rbp - 0x78], rax
lea rax, [0x180231f2a]
mov qword [rbp - 0x70], rax
lea rax, [0x180231f2b]
mov qword [rbp - 0x68], rax
lea rax, [0x180231f2c]
mov qword [rbp - 0x60], rax
lea rax, [0x180231f2d]
mov qword [rbp - 0x58], rax
lea rax, [0x180231f2e]
mov qword [rbp - 0x50], rax
lea rax, [0x180231f2f]
mov qword [rbp - 8], 0x8c
mov qword [rbp + 8], __WSAFDIsSet
mov qword [rbp + 0x18], __WSAFDIsSet
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 0x1801bcf00
mov rdx, rdi
lea rcx, [rbp + 0x180]
call sub.VCRUNTIME140.dll_memcpy
movzx edx, byte [rbp + 0x197]
movzx r8d, byte [rbp + 0x194]
movzx r9d, byte [rbp + 0x190]
cmp r15d, 0xc0
jne 0x1801bcf80
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 0x1801bcfcb
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.1801bbcb0
lea r8, [rbp + 0x120]
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x128]
call fcn.1801bbcb0
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.1801bbcb0
lea r8, [rbp + 0x120]
lea rdx, [rbp + 0x168]
lea rcx, [rbp + 0x128]
call fcn.1801bbcb0
cmp dword [rsp + 0x58], 0x80
jbe 0x1801bd310
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.1801bbcb0
lea r8, [rbp + 0x130]
lea rdx, [rbp + 0x178]
lea rcx, [rbp + 0x138]
call fcn.1801bbcb0
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 0x1801bd372
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 0x1801bd38d
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 0x1801bd3d8
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 0x1801bd3f9
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 0x1801bd44e
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 0x1801bd473
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 0x1801bd4cb
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 0x1801bd4f3
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, [0x180231f40]
movsx rax, byte [r14 + rax]
cmp al, 0xff
je 0x1801bd506
mov dword [rsi + rax*4], ecx
lea rax, [0x180231f40]
movsx rax, byte [r14 + rax + 1]
cmp al, 0xff
je 0x1801bd51a
mov dword [rsi + rax*4], edx
lea rdx, [0x180231f40]
movsx rax, byte [r14 + rdx + 2]
cmp al, 0xff
je 0x1801bd52f
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 3]
cmp al, 0xff
je 0x1801bd53d
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 4]
cmp al, 0xff
je 0x1801bd54b
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 5]
cmp al, 0xff
je 0x1801bd559
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 6]
cmp al, 0xff
je 0x1801bd566
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 7]
cmp al, 0xff
je 0x1801bd574
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 8]
cmp al, 0xff
je 0x1801bd581
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 9]
cmp al, 0xff
je 0x1801bd58f
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0xa]
cmp al, 0xff
je 0x1801bd5a0
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xb]
cmp al, 0xff
je 0x1801bd5b1
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xc]
cmp al, 0xff
je 0x1801bd5bf
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0xd]
cmp al, 0xff
je 0x1801bd5d0
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xe]
cmp al, 0xff
je 0x1801bd5e1
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0xf]
cmp al, 0xff
je 0x1801bd5f2
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x10]
cmp al, 0xff
je 0x1801bd603
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x11]
cmp al, 0xff
je 0x1801bd614
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x12]
cmp al, 0xff
je 0x1801bd625
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x13]
cmp al, 0xff
je 0x1801bd636
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
cmp dword [rsp + 0x58], 0x80
jbe 0x1801bd8e0
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 0x1801bd6a3
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 0x1801bd6f0
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 0x1801bd743
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 0x1801bd799
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, [0x180231f40]
movsx rax, byte [r14 + rax + 0x14]
cmp al, 0xff
je 0x1801bd7ad
mov dword [rsi + rax*4], ecx
lea rax, [0x180231f40]
movsx rax, byte [r14 + rax + 0x15]
cmp al, 0xff
je 0x1801bd7c1
mov dword [rsi + rax*4], edx
lea rdx, [0x180231f40]
movsx rax, byte [r14 + rdx + 0x16]
cmp al, 0xff
je 0x1801bd7d6
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x17]
cmp al, 0xff
je 0x1801bd7e4
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x18]
cmp al, 0xff
je 0x1801bd7f2
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x19]
cmp al, 0xff
je 0x1801bd800
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x1a]
cmp al, 0xff
je 0x1801bd80d
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x1b]
cmp al, 0xff
je 0x1801bd81b
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x1c]
cmp al, 0xff
je 0x1801bd828
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x1d]
cmp al, 0xff
je 0x1801bd836
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x1e]
cmp al, 0xff
je 0x1801bd847
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x1f]
cmp al, 0xff
je 0x1801bd858
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x20]
cmp al, 0xff
je 0x1801bd866
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x21]
cmp al, 0xff
je 0x1801bd877
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x22]
cmp al, 0xff
je 0x1801bd888
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x23]
cmp al, 0xff
je 0x1801bd899
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x24]
cmp al, 0xff
je 0x1801bd8aa
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x25]
cmp al, 0xff
je 0x1801bd8bb
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x26]
cmp al, 0xff
je 0x1801bd8cc
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x27]
cmp al, 0xff
je 0x1801bd8e0
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 0x1801bd93e
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 0x1801bd98a
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 0x1801bd9dc
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 0x1801bda31
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, [0x180231f40]
movsx rax, byte [r14 + rax + 0x28]
cmp al, 0xff
je 0x1801bda45
mov dword [rsi + rax*4], ecx
lea rax, [0x180231f40]
movsx rax, byte [r14 + rax + 0x29]
cmp al, 0xff
je 0x1801bda59
mov dword [rsi + rax*4], edx
lea rdx, [0x180231f40]
movsx rax, byte [r14 + rdx + 0x2a]
cmp al, 0xff
je 0x1801bda6e
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x2b]
cmp al, 0xff
je 0x1801bda7c
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x2c]
cmp al, 0xff
je 0x1801bda8a
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x2d]
cmp al, 0xff
je 0x1801bda98
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x2e]
cmp al, 0xff
je 0x1801bdaa5
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x2f]
cmp al, 0xff
je 0x1801bdab3
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x30]
cmp al, 0xff
je 0x1801bdac0
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x31]
cmp al, 0xff
je 0x1801bdace
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x32]
cmp al, 0xff
je 0x1801bdadf
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x33]
cmp al, 0xff
je 0x1801bdaf0
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x34]
cmp al, 0xff
je 0x1801bdafe
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x35]
cmp al, 0xff
je 0x1801bdb0f
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x36]
cmp al, 0xff
je 0x1801bdb20
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x37]
cmp al, 0xff
je 0x1801bdb31
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x38]
cmp al, 0xff
je 0x1801bdb42
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x39]
cmp al, 0xff
je 0x1801bdb53
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x3a]
cmp al, 0xff
je 0x1801bdb64
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x3b]
cmp al, 0xff
je 0x1801bdb75
mov ecx, dword [rsp + 0x48]
mov dword [rsi + rax*4], ecx
cmp dword [rsp + 0x58], 0x80
jbe 0x1801bde20
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 0x1801bdbe1
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 0x1801bdc2d
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 0x1801bdc7f
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 0x1801bdcd4
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, [0x180231f40]
movsx rax, byte [r14 + rax + 0x3c]
cmp al, 0xff
je 0x1801bdce8
mov dword [rsi + rax*4], ecx
lea rax, [0x180231f40]
movsx rax, byte [r14 + rax + 0x3d]
cmp al, 0xff
je 0x1801bdcfc
mov dword [rsi + rax*4], edx
lea rdx, [0x180231f40]
movsx rax, byte [r14 + rdx + 0x3e]
cmp al, 0xff
je 0x1801bdd11
mov dword [rsi + rax*4], r8d
movsx rax, byte [r14 + rdx + 0x3f]
cmp al, 0xff
je 0x1801bdd1f
mov dword [rsi + rax*4], r9d
movsx rax, byte [r14 + rdx + 0x40]
cmp al, 0xff
je 0x1801bdd2d
mov dword [rsi + rax*4], r10d
movsx rax, byte [r14 + rdx + 0x41]
cmp al, 0xff
je 0x1801bdd3b
mov dword [rsi + rax*4], r11d
movsx rax, byte [r14 + rdx + 0x42]
cmp al, 0xff
je 0x1801bdd48
mov dword [rsi + rax*4], ebx
movsx rax, byte [r14 + rdx + 0x43]
cmp al, 0xff
je 0x1801bdd56
mov dword [rsi + rax*4], r12d
movsx rax, byte [r14 + rdx + 0x44]
cmp al, 0xff
je 0x1801bdd63
mov dword [rsi + rax*4], edi
movsx rax, byte [r14 + rdx + 0x45]
cmp al, 0xff
je 0x1801bdd71
mov dword [rsi + rax*4], r15d
movsx rax, byte [r14 + rdx + 0x46]
cmp al, 0xff
je 0x1801bdd82
mov ecx, dword [rsp + 0x34]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x47]
cmp al, 0xff
je 0x1801bdd93
mov ecx, dword [rsp + 0x50]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x48]
cmp al, 0xff
je 0x1801bdda1
mov dword [rsi + rax*4], r13d
movsx rax, byte [r14 + rdx + 0x49]
cmp al, 0xff
je 0x1801bddb2
mov ecx, dword [rsp + 0x24]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4a]
cmp al, 0xff
je 0x1801bddc3
mov ecx, dword [rsp + 0x28]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4b]
cmp al, 0xff
je 0x1801bddd4
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4c]
cmp al, 0xff
je 0x1801bdde5
mov ecx, dword [rsp + 0x30]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4d]
cmp al, 0xff
je 0x1801bddf6
mov ecx, dword [rsp + 0x20]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4e]
cmp al, 0xff
je 0x1801bde07
mov ecx, dword [rsp + 0x40]
mov dword [rsi + rax*4], ecx
movsx rax, byte [r14 + rdx + 0x4f]
cmp al, 0xff
je 0x1801bde20
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 0x1801bde46
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 0x1801bde5c
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 0x1801bde72
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 0x1801bde88
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 0x1801bde9e
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 0x1801bdeb4
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 0x1801bdeca
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 0x1801bdee0
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 0x1801bdef6
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 0x1801bdf0c
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 0x1801bdf22
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 0x1801bdf38
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 0x1801bdf54
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 0x1801bdf70
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 0x1801bdf8c
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 0x1801bdfa8
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 0x1801bdfc4
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 0x1801bdfe0
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 0x1801bdffc
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 0x1801be018
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.1801fc6e0
mov rbx, qword [rsp + 0x318]
add rsp, 0x2d0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret