Function at 0x541f60
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rdi, rbx
mov eax, dword [0x00581370]
add eax, 0xb4c9aec6
mov dword [0x00581758], eax
mov eax, dword [0x005848c8]
add eax, 0xb8e79c8d
mov dword [0x00583d34], eax
mov eax, dword [0x00583b58]
add eax, 0xa3bb8414
mov dword [0x00584c20], eax
mov eax, dword [0x0058216c]
add eax, 0x49aa8d74
mov dword [0x00581888], eax
mov eax, dword [0x005824c0]
add eax, 0xff0f21a9
mov dword [0x00583464], eax
mov eax, dword [0x00581fb4]
add eax, 0x3ce54cfd
mov dword [0x005849cc], eax
mov eax, dword [0x005845c8]
and eax, 0x4f20a06a
mov dword [0x00581634], eax
mov eax, dword [0x00580f5c]
xor eax, 0xa20d65fd
mov dword [0x00583350], eax
mov eax, dword [0x00583a1c]
add eax, 0xfa9b3afa
mov dword [0x005840ac], eax
mov eax, dword [0x00583380]
add eax, 0x278e3810
mov dword [0x005815c0], eax
mov eax, dword [0x00581f0c]
add eax, 0x6f38decf
mov dword [0x00584340], eax
mov eax, dword [0x00582c88]
xor eax, 0x90e9bd11
mov dword [0x00584128], eax
imul eax, dword [0x00583c60], 0xf34c0d79
mov dword [0x00581f88], eax
mov eax, dword [0x00581c68]
add eax, 0x2a1385fa
mov dword [0x005845ec], eax
mov eax, dword [0x0058453c]
add eax, 0x6d75427e
mov dword [0x0058294c], eax
mov eax, dword [0x00583a28]
add eax, 0xb953553e
mov dword [0x005818ac], eax
imul eax, dword [0x00582f14], 0xd3f580ad
mov dword [0x00584810], eax
mov eax, dword [0x005817b0]
add eax, 0x662614fd
mov dword [0x00581030], eax
mov eax, dword [0x00581084]
add eax, 0xd6904cd1
mov dword [0x00582058], eax
imul eax, dword [0x00583250], 0x57ddb2e3
mov dword [0x00582250], eax
mov eax, dword [0x00581e10]
xor eax, 0xdecc285f
mov dword [0x00582b10], eax
mov eax, dword [0x00584b64]
add eax, 0xfda1bfcf
mov dword [0x00583420], eax
mov eax, dword [0x00581c34]
add eax, 0x686ae839
mov dword [0x00584de4], eax
mov eax, dword [0x00584be0]
add eax, 0x2a69c071
mov dword [0x0058376c], eax
mov eax, dword [0x00581e44]
add eax, 0x8f91d971
mov dword [0x00581180], eax
mov eax, dword [0x005841a0]
add eax, 0x6c485b52
mov dword [0x005813c4], eax
mov eax, dword [0x00584498]
add eax, 0x39d1aa82
mov dword [0x005845f8], eax
mov eax, dword [0x00584ab4]
sub eax, 0x6c07e0a4
mov dword [0x005838c8], eax
mov eax, dword [0x005821c8]
xor eax, 0x83cec541
mov dword [0x005813cc], eax
movsxd rax, dword [rdi + 0x3c]
lea r13, [rbx + rax]
mov eax, dword [0x00581660]
sub eax, 0x6be86de
mov dword [0x00583184], eax
mov eax, dword [0x00583a88]
and eax, 0xc8bd5f16
mov dword [0x005813f4], eax
mov eax, dword [0x00584bec]
sub eax, 0x4ce60bfa
mov dword [0x005832a4], eax
mov eax, dword [0x00582104]
add eax, 0x64609a74
mov dword [0x005816d8], eax
mov ecx, 0x7c9ed1a8
mov eax, dword [0x00581810]
xor edx, edx
div ecx
mov dword [0x00584b74], eax
mov eax, dword [0x00583fb4]
add eax, 0xe06ec579
mov dword [0x00581830], eax
imul eax, dword [0x00584628], 0x757aa09b
mov dword [0x005834ac], eax
mov eax, dword [0x00581d98]
add eax, 0x4b37ede3
mov dword [0x0058395c], eax
imul eax, dword [0x00583c10], 0x6ce8cc25
mov dword [0x00581f74], eax
mov eax, dword [0x0058466c]
add eax, 0xeb70699f
mov dword [0x00581cbc], eax
mov eax, dword [0x005842f0]
and eax, 0xdbe56090
mov dword [0x00583270], eax
mov eax, dword [0x005812c8]
add eax, 0xc6b94817
mov dword [0x005810cc], eax
mov eax, dword [0x005810dc]
add eax, 0x2ebca7e9
mov dword [0x005826d4], eax
mov eax, dword [0x00583594]
add eax, 0x294bda2
mov dword [0x00584e2c], eax
mov eax, dword [0x00583790]
add eax, 0x85c75b43
mov dword [0x005844f4], eax
mov eax, dword [0x00581ab8]
add eax, 0xd7467d6d
mov dword [0x00582c00], eax
mov eax, dword [0x00584038]
xor eax, 0x124161ef
mov dword [0x00583380], eax
mov eax, dword [0x00583a98]
add eax, 0x27427df4
mov dword [0x005843f8], eax
mov eax, dword [0x0058233c]
add eax, 0xdf6cdac1
mov dword [0x00584c18], eax
imul eax, dword [0x00584e30], 0xbd91000b
mov dword [0x005834b0], eax
mov eax, dword [0x00584894]
xor eax, 0xed49c5b9
mov dword [0x0058452c], eax
mov eax, dword [0x005835e4]
add eax, 0x63550cf7
mov dword [0x00584e38], eax
mov eax, dword [0x005845f0]
add eax, 0xce1e3561
mov dword [0x005847d8], eax
mov eax, dword [0x005827c0]
and eax, 0xd4c85e4
mov dword [0x005849cc], eax
mov ecx, dword [r13 + 0x50]
call fcn.00408530
mov rsi, rax
mov ecx, 0xd6ab026c
mov eax, dword [0x005835b0]
xor edx, edx
div ecx
mov dword [0x00584498], eax
mov eax, dword [0x005825ec]
add eax, 0xac684fb4
mov dword [0x00583308], eax
mov eax, dword [0x00582878]
and eax, 0xb4cf27b6
mov dword [0x00582ec0], eax
mov ecx, 0xc8781e8c
mov eax, dword [0x00582658]
xor edx, edx
div ecx
mov dword [0x00582984], eax
mov eax, dword [0x00583530]
add eax, 0xaae52e11
mov dword [0x00584c7c], eax
mov eax, dword [0x005822dc]
add eax, 0x6d0cb300
mov dword [0x00583f38], eax
mov eax, dword [0x00581088]
and eax, 0xf830e43a
mov dword [0x005831f4], eax
mov eax, dword [0x00583058]
and eax, 0x522c5ca0
mov dword [0x00583d1c], eax
mov eax, dword [0x00581280]
and eax, 0x4f5115ce
mov dword [0x005828c0], eax
imul eax, dword [0x005823b0], 0xc9a54747
mov dword [0x00582c30], eax
mov eax, dword [0x005817a0]
and eax, 0x9b2f288e
mov dword [0x0058202c], eax
mov eax, dword [0x00584b8c]
and eax, 0x3b7d2284
mov dword [0x00581428], eax
mov eax, dword [0x00583f74]
add eax, 0xb0304493
mov dword [0x00584824], eax
mov eax, dword [0x00583428]
sub eax, 0x19a147ce
mov dword [0x00581c48], eax
mov eax, dword [0x00583b68]
add eax, 0x83124b09
mov dword [0x005818f0], eax
mov eax, dword [0x00581210]
add eax, 0x3876df3e
mov dword [0x00583d74], eax
mov eax, dword [0x00584b74]
and eax, 0x70abfb28
mov dword [0x0058128c], eax
mov eax, dword [0x005833e0]
add eax, 0x4c0a57da
mov dword [0x00583f6c], eax
mov eax, dword [0x00581ea0]
add eax, 0x735c4586
mov dword [0x00584cc8], eax
mov eax, dword [0x005829c8]
add eax, 0xe1c1d00
mov dword [0x00582a34], eax
mov eax, dword [0x00584520]
add eax, 0x3f2f9929
mov dword [0x00580fac], eax
mov rcx, rsi
mov edx, dword [r13 + 0x50]
xor r8, r8
call fcn.0040a0e0
mov eax, dword [0x00584e6c]
xor eax, 0x48ff304b
mov dword [0x00584e68], eax
mov eax, dword [0x00584e54]
add eax, 0x6c1db1f6
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e6c]
add eax, 0x2e320868
mov dword [0x00584e64], eax
add dword [0x00584e5c], 0x899b2437
and dword [0x00584e68], 0x882d80ce
add dword [0x00584e6c], 0x29e91e2d
mov eax, dword [0x00584e6c]
add eax, 0x22da6b5a
mov dword [0x00584e58], eax
mov ecx, 0x9e9c403c
mov eax, dword [0x00584e60]
xor edx, edx
div ecx
mov dword [0x00584e60], eax
mov eax, dword [0x00584e68]
add eax, 0x14bd05b4
mov dword [0x00584e58], eax
mov eax, dword [0x00584e60]
add eax, 0xb0d793a9
mov dword [0x00584e64], eax
mov eax, dword [0x00584e60]
add eax, 0xa427d16c
mov dword [0x00584e68], eax
mov eax, dword [0x00584e60]
add eax, 0x3aa14ff7
mov dword [0x00584e58], eax
mov eax, dword [0x00584e5c]
add eax, 0xd11ace82
mov dword [0x00584e54], eax
add dword [0x00584e54], 0xbec9fcdb
add dword [0x00584e60], 0x1e6684ab
mov eax, dword [0x00584e6c]
add eax, 0x2c6e6c17
mov dword [0x00584e60], eax
imul eax, dword [0x00584e54], 0x91ac0351
mov dword [0x00584e58], eax
mov eax, dword [0x00584e5c]
add eax, 0x675ac816
mov dword [0x00584e54], eax
mov eax, dword [0x00584e6c]
add eax, 0xf2a0b050
mov dword [0x00584e58], eax
mov eax, dword [0x00584e58]
add eax, 0x4c9c28b6
mov dword [0x00584e60], eax
mov eax, dword [0x00584e60]
add eax, 0xecea22ac
mov dword [0x00584e6c], eax
add dword [0x00584e6c], 0xeb670109
mov ecx, 0xb74fd2e6
mov eax, dword [0x00584e68]
xor edx, edx
div ecx
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e58]
add eax, 0x2c02f4f5
mov dword [0x00584e64], eax
mov eax, dword [0x00584e58]
add eax, 0x4f2176a0
mov dword [0x00584e60], eax
mov eax, dword [0x00584e6c]
and eax, 0x9298b15e
mov dword [0x00584e64], eax
imul eax, dword [0x00584e54], 0x58e073d1
mov dword [0x00584e60], eax
mov eax, dword [0x00584e68]
add eax, 0x434f985e
mov dword [0x00584e54], eax
mov eax, dword [0x00584e54]
add eax, 0x26216add
mov dword [0x00584e60], eax
mov ecx, 0x8f926e18
mov eax, dword [0x00584e60]
xor edx, edx
div ecx
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e64]
and eax, 0x7091da34
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e60]
sub eax, 0x51914650
mov dword [0x00584e64], eax
mov ecx, 0x842552d0
mov eax, dword [0x00584e58]
xor edx, edx
div ecx
mov dword [0x00584e58], eax
mov eax, dword [0x00584e60]
add eax, 0x7fdc6895
mov dword [0x00584e68], eax
mov ecx, 0x245dce8c
mov eax, dword [0x00584e54]
xor edx, edx
div ecx
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e54]
add eax, 0x9d445c9c
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e64]
add eax, 0x935a62f7
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e64]
sub eax, 0x2c99aa1a
mov dword [0x00584e58], eax
mov eax, dword [0x00584e58]
add eax, 0xc5d8f13d
mov dword [0x00584e68], eax
mov rcx, rbx
mov rdx, rsi
mov r8d, dword [r13 + 0x54]
call fcn.004088d0
mov eax, dword [0x00584e54]
and eax, 0xb20d24ba
mov dword [0x00584e60], eax
imul eax, dword [0x00584e60], 0x7df5f697
mov dword [0x00584e60], eax
mov eax, dword [0x00584e58]
add eax, 0x400a4d09
mov dword [0x00584e54], eax
mov eax, dword [0x00584e60]
add eax, 0xed08093c
mov dword [0x00584e58], eax
mov ecx, 0x17353dba
mov eax, dword [0x00584e54]
xor edx, edx
div ecx
mov dword [0x00584e64], eax
mov eax, dword [0x00584e64]
add eax, 0x8d560332
mov dword [0x00584e54], eax
mov eax, dword [0x00584e58]
add eax, 0x5aac7878
mov dword [0x00584e64], eax
xor dword [0x00584e58], 0x2092541
add dword [0x00584e5c], 0xa3c4c2a0
mov eax, dword [0x00584e58]
add eax, 0xe8a9a0c7
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e68]
add eax, 0xb05f06a3
mov dword [0x00584e58], eax
mov eax, dword [0x00584e68]
add eax, 0x46d8852e
mov dword [0x00584e6c], eax
mov ecx, 0xb1b72bd2
mov eax, dword [0x00584e58]
xor edx, edx
div ecx
mov dword [0x00584e68], eax
mov eax, dword [0x00584e60]
sub eax, 0x73cb8244
mov dword [0x00584e64], eax
imul eax, dword [0x00584e60], 0xad6e4197
mov dword [0x00584e68], eax
mov eax, dword [0x00584e58]
add eax, 0x64407935
mov dword [0x00584e60], eax
mov eax, dword [0x00584e5c]
add eax, 0x724860a1
mov dword [0x00584e64], eax
mov eax, dword [0x00584e64]
add eax, 0xd1e4e871
mov dword [0x00584e54], eax
mov eax, dword [0x00584e6c]
add eax, 0xa90fd922
mov dword [0x00584e68], eax
mov eax, dword [0x00584e60]
add eax, 0xd1cf6a37
mov dword [0x00584e68], eax
mov eax, dword [0x00584e58]
add eax, 0x77be7397
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e58]
add eax, 0x69a10df1
mov dword [0x00584e64], eax
mov eax, dword [0x00584e68]
add eax, 0x3b2aef38
mov dword [0x00584e58], eax
mov eax, dword [0x00584e5c]
add eax, 0x5e4970e3
mov dword [0x00584e68], eax
mov ecx, 0xd2fc92f2
mov eax, dword [0x00584e6c]
xor edx, edx
div ecx
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e58]
add eax, 0xead8f5c9
mov dword [0x00584e64], eax
mov eax, dword [0x00584e60]
add eax, 0xdcbb9023
mov dword [0x00584e64], eax
mov eax, dword [0x00584e60]
add eax, 0x6c265bdb
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e68]
sub eax, 0x2ccd0ee4
mov dword [0x00584e6c], eax
add dword [0x00584e5c], 0x6aa33a38
mov eax, dword [0x00584e6c]
add eax, 0xa2d85622
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e6c]
add eax, 0x6a849f3
mov dword [0x00584e64], eax
add dword [0x00584e5c], 0x64d72e5a
mov eax, dword [0x00584e58]
add eax, 0xe35ecbd4
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e5c]
add eax, 0x4c84f64e
mov dword [0x00584e6c], eax
add dword [0x00584e6c], 0xc6bfdb
mov eax, dword [0x00584e60]
add eax, 0x652510b
mov dword [0x00584e58], eax
add dword [0x00584e6c], 0x606e67d2
mov eax, dword [0x00584e5c]
and eax, 0xd36076a
mov dword [0x00584e60], eax
xor rax, rax
movzx r14d, word [r13 + 6]
sub r14d, 1
mov r13d, eax
cmp r13d, r14d
jg 0x542d4c
add r14d, 1
mov eax, dword [0x00584e5c]
add eax, 0xf29cf2f5
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e5c]
sub eax, 0x15bb74a0
mov dword [0x00584e58], eax
mov eax, dword [0x00584e68]
add eax, 0x863b2aae
mov dword [0x00584e54], eax
mov eax, dword [0x00584e54]
xor eax, 0xdc033713
mov dword [0x00584e68], eax
mov eax, dword [0x00584e54]
add eax, 0x57c50bf5
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e60]
add eax, 0x251b813b
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e60]
and eax, 0xcc782e04
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e54]
add eax, 0xf1045318
mov dword [0x00584e58], eax
mov eax, dword [0x00584e64]
add eax, 0x67251890
mov dword [0x00584e68], eax
mov eax, dword [0x00584e6c]
add eax, 0xd7a4ce9e
mov dword [0x00584e54], eax
mov eax, dword [0x00584e6c]
sub eax, 0x4dc59416
mov dword [0x00584e64], eax
mov eax, dword [0x00584e60]
add eax, 0x35d3b305
mov dword [0x00584e54], eax
mov eax, dword [0x00584e6c]
add eax, 0xcc4d3190
mov dword [0x00584e60], eax
mov eax, dword [0x00584e64]
add eax, 0xb9fc5fe9
mov dword [0x00584e54], eax
mov eax, dword [0x00584e54]
sub eax, 0x4533bfa0
mov dword [0x00584e68], eax
imul eax, dword [0x00584e6c], 0xd60c2ec1
mov dword [0x00584e60], eax
mov eax, dword [0x00584e6c]
add eax, 0x3b49c5fb
mov dword [0x00584e58], eax
mov eax, dword [0x00584e64]
and eax, 0x4d851968
mov dword [0x00584e68], eax
mov eax, dword [0x00584e64]
add eax, 0x55ebf16a
mov dword [0x00584e6c], eax
add dword [0x00584e64], 0x5e52c96c
mov eax, dword [0x00584e58]
add eax, 0xad0c22fe
mov dword [0x00584e64], eax
add dword [0x00584e68], 0x27605477
mov eax, dword [0x00584e5c]
add eax, 0xa755955a
mov dword [0x00584e68], eax
mov eax, dword [0x00584e5c]
add eax, 0xf60eeeec
mov dword [0x00584e6c], eax
movsxd rax, dword [rdi + 0x3c]
add rax, 0x104
add rax, 4
mov ecx, r13d
add ecx, ecx
add ecx, ecx
add ecx, ecx
lea rcx, [rcx + rcx*4]
movsxd rcx, ecx
add rax, rcx
lea rcx, [rbx + rax]
mov eax, dword [0x00584e5c]
xor eax, 0xfe09d0b9
mov dword [0x00584e54], eax
mov eax, dword [0x00584e60]
add eax, 0xc2e3efc3
mov dword [0x00584e54], eax
imul eax, dword [0x00584e68], 0xba679987
mov dword [0x00584e64], eax
mov eax, dword [0x00584e5c]
add eax, 0xdc1877c9
mov dword [0x00584e58], eax
add dword [0x00584e64], 0x46f71e6d
imul eax, dword [0x00584e6c], 0x4f5df66f
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e6c]
add eax, 0x6302e0d
mov dword [0x00584e60], eax
mov eax, dword [0x00584e5c]
add eax, 0x19d924e3
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e64]
add eax, 0x3b9cb98
mov dword [0x00584e58], eax
mov eax, dword [0x00584e6c]
add eax, 0x5dcac238
mov dword [0x00584e60], eax
mov eax, dword [0x00584e64]
xor eax, 0xd095de47
mov dword [0x00584e68], eax
mov eax, dword [0x00584e58]
add eax, 0xa7c0cef8
mov dword [0x00584e68], eax
mov eax, dword [0x00584e68]
add eax, 0xdd1aa410
mov dword [0x00584e6c], eax
mov eax, dword [0x00584e54]
add eax, 0xa90375ed
mov dword [0x00584e5c], eax
mov r8d, 0xc0dfd8c4
mov eax, dword [0x00584e6c]
xor edx, edx
div r8d
mov dword [0x00584e58], eax
mov eax, dword [0x00584e64]
add eax, 0xd8bc3b9b
mov dword [0x00584e58], eax
imul eax, dword [0x00584e5c], 0x1c337659
mov dword [0x00584e5c], eax
mov eax, dword [0x00584e54]
sub eax, 0x28cdba5c
mov dword [0x00584e5c], eax
mov eax, dword [rcx + 0x14]
lea rax, [rbx + rax]
mov edx, dword [rcx + 0xc]
lea rdx, [rsi + rdx]
mov r8d, dword [rcx + 0x10]
mov rcx, rax
call fcn.004088d0
add r13d, 1
cmp r13d, r14d
jne 0x542a25
nop
mov rax, rsi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r13
pop r14
ret