Function at 0x10016df0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10056a4b
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x1006b040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x28], esi
lea ecx, [esi + 8]
mov dword [ebp - 0x24], esi
call fcn.10017d60
lea ecx, [esi + 0x1508]
call fcn.10017b80
lea edi, [esi + 0x1940]
mov ecx, edi
call fcn.1004bc20
mov dword [esi + 0x19cc], 0
mov dword [esi + 0x19c8], 0
mov dword [esi + 0x19d0], 0
mov dword [ebp - 4], 0
mov dword [esi + 0x19f0], 0
mov dword [esi + 0x19ec], 0
mov dword [esi + 0x19f4], 0
mov dword [esi + 0x19fc], 0
mov dword [esi + 0x19f8], 0
mov dword [esi + 0x1a00], 0
mov dword [esi + 0x1a08], 0
mov dword [esi + 0x1a04], 0
mov dword [esi + 0x1a0c], 0
mov dword [esi + 0x1a14], 0
mov dword [esi + 0x1a10], 0
mov dword [esi + 0x1a18], 0
mov dword [esi + 0x1a58], 0
mov dword [esi + 0x1a54], 0
mov dword [esi + 0x1a78], 0
mov dword [esi + 0x1a74], 0
mov dword [esi + 0x1a7c], 0
mov dword [esi + 0x1a84], 0
mov dword [esi + 0x1a80], 0
mov dword [esi + 0x1a88], 0
mov dword [esi + 0x1a90], 0
mov dword [esi + 0x1a8c], 0
mov dword [esi + 0x1a94], 0
mov dword [esi + 0x1a9c], 0
mov dword [esi + 0x1a98], 0
mov dword [esi + 0x1aa0], 0
mov dword [esi + 0x1aa8], 0
mov dword [esi + 0x1aa4], 0
mov dword [esi + 0x1aac], 0
mov dword [esi + 0x1afc], 0xff7fffff
mov dword [esi + 0x1ac8], 0
mov dword [esi + 0x1ac4], 0
mov dword [esi + 0x1ac0], 0
mov dword [esi + 0x1abc], 0
mov dword [esi + 0x1ab8], 0
mov dword [esi + 0x1ab4], 0
mov dword [esi + 0x1ab0], 0
mov dword [esi + 0x1adc], 0
mov dword [esi + 0x1ae0], 0
mov dword [esi + 0x1ad4], 0
mov dword [esi + 0x1ad8], 0
mov dword [esi + 0x1acc], 0
mov dword [esi + 0x1ad0], 0
mov dword [esi + 0x1ae4], 0
mov dword [esi + 0x1ae8], 0
mov byte [esi + 0x1aec], 0
mov dword [esi + 0x1af0], 0x7f7fffff
mov dword [esi + 0x1af4], 0x7f7fffff
mov dword [esi + 0x1af8], 0xff7fffff
mov dword [esi + 0x1afc], 0xff7fffff
mov dword [esi + 0x1b00], 0
mov dword [esi + 0x1b04], 0
mov dword [esi + 0x1b08], 0x7f7fffff
mov dword [esi + 0x1b0c], 0
mov dword [esi + 0x1b10], 0
mov dword [esi + 0x1b44], 0x7f7fffff
mov dword [esi + 0x1b48], 0x7f7fffff
mov dword [esi + 0x1b4c], 0xff7fffff
mov dword [esi + 0x1b50], 0xff7fffff
mov dword [esi + 0x1b84], 0x7f7fffff
mov dword [esi + 0x1b88], 0x7f7fffff
mov dword [esi + 0x1b8c], 0xff7fffff
mov dword [esi + 0x1b90], 0xff7fffff
mov dword [esi + 0x1bcc], 0xff7fffff
mov dword [esi + 0x1bac], 0
mov dword [esi + 0x1bb0], 0
mov dword [esi + 0x1bbc], 0x7f7fffff
mov dword [esi + 0x1bb8], 0x7f7fffff
mov dword [esi + 0x1bb4], 0x7f7fffff
mov dword [esi + 0x1bc0], 0x7f7fffff
mov dword [esi + 0x1bc4], 0x7f7fffff
mov dword [esi + 0x1bc8], 0xff7fffff
mov dword [esi + 0x1bcc], 0xff7fffff
mov dword [esi + 0x1bf0], 0xff7fffff
mov dword [esi + 0x1bd0], 0
mov dword [esi + 0x1bd4], 0
mov dword [esi + 0x1be0], 0x7f7fffff
mov dword [esi + 0x1bdc], 0x7f7fffff
mov dword [esi + 0x1bd8], 0x7f7fffff
mov dword [esi + 0x1be4], 0x7f7fffff
mov dword [esi + 0x1be8], 0x7f7fffff
mov dword [esi + 0x1bec], 0xff7fffff
mov dword [esi + 0x1bf0], 0xff7fffff
mov dword [esi + 0x1c14], 0xff7fffff
mov dword [esi + 0x1bf4], 0
mov dword [esi + 0x1bf8], 0
mov dword [esi + 0x1c04], 0x7f7fffff
mov dword [esi + 0x1c00], 0x7f7fffff
mov dword [esi + 0x1bfc], 0x7f7fffff
mov dword [esi + 0x1c08], 0x7f7fffff
mov dword [esi + 0x1c0c], 0x7f7fffff
mov dword [esi + 0x1c10], 0xff7fffff
mov dword [esi + 0x1c14], 0xff7fffff
mov byte [esi + 0x1c18], 0
mov dword [esi + 0x1c1c], 0
mov dword [esi + 0x1c24], 0
mov dword [esi + 0x1c28], 0
mov dword [esi + 0x1c20], 0
mov dword [esi + 0x1c34], 0
mov dword [esi + 0x1c38], 0
mov dword [esi + 0x1c2c], 0
mov dword [esi + 0x1c30], 0
push 0x10015380
push 0x10039170
push 2
lea eax, [esi + 0x1c3c]
mov byte [ebp - 4], 0xa
push 0xc
push eax
mov dword [ebp - 0x28], eax
call fcn.10051bad
lea ecx, [esi + 0x1c58]
mov byte [ebp - 4], 0xb
push 0
call fcn.10016af0
mov dword [esi + 0x1d18], 0
xorps xmm0, xmm0
mov dword [esi + 0x1d14], 0
mov dword [esi + 0x1d0c], 0
mov dword [esi + 0x1d10], 0
movups xmmword [esi + 0x1d20], xmm0
movups xmmword [esi + 0x1d30], xmm0
mov word [esi + 0x1d40], 0
mov dword [esi + 0x1d1c], 0xffffffff
mov byte [esi + 0x1d42], 0
mov dword [esi + 0x1d44], 0x7f7fffff
mov dword [esi + 0x1d48], 0x7f7fffff
mov dword [esi + 0x1d4c], 0xff7fffff
mov dword [esi + 0x1d50], 0xff7fffff
mov dword [esi + 0x1d70], 0
mov dword [esi + 0x1d6c], 0
mov dword [esi + 0x1d74], 0
lea eax, [esi + 0x1d80]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
push 0xe64
push 0
push eax
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x24], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [esi + 0x2be4]
mov byte [ebp - 4], 0xe
call fcn.10050010
mov dword [esi + 0x2c50], 0
mov dword [esi + 0x2c4c], 0
mov dword [esi + 0x2c48], 0
mov dword [esi + 0x2c44], 0
mov dword [esi + 0x2c64], 0
mov dword [esi + 0x2c60], 0
mov dword [esi + 0x2c70], 0
mov dword [esi + 0x2c6c], 0
mov dword [esi + 0x2c74], 0
mov byte [ebp - 4], 0x10
lea ecx, [esi + 0x2c90]
mov dword [esi + 0x2c7c], 0
mov dword [esi + 0x2c78], 0
mov dword [esi + 0x2c84], 0
mov dword [esi + 0x2c80], 0
call fcn.10016a50
mov dword [esi + 0x2ca0], 0
mov dword [esi + 0x2c9c], 0
mov dword [esi + 0x2ca4], 0
mov dword [esi + 0x2cac], 0
mov dword [esi + 0x2ca8], 0
mov dword [esi + 0x2cb0], 0
lea ecx, [esi + 0x2cbc]
mov byte [ebp - 4], 0x13
call fcn.10016a50
inc dword [0x100e1944]
push 0x5c
mov word [esi], 0x100
mov dword [esi + 0x1934], 0
mov dword [esi + 0x193c], 0
mov dword [esi + 0x1938], 0
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
je 0x10017554
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x54], 0
mov byte [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x58], 0xffffffff
jmp 0x10017556
xor eax, eax
mov dword [esi + 0x94], eax
xorps xmm0, xmm0
movsd qword [esi + 0x19d8], xmm0
xor ecx, ecx
mov dword [esi + 0x19e0], 0
mov dword [esi + 0x19e8], 0xffffffff
mov dword [esi + 0x19e4], 0xffffffff
mov dword [esi + 0x1a1c], 0
mov dword [esi + 0x1a20], 0
mov dword [esi + 0x1a24], 0
mov dword [esi + 0x1a28], 0
mov dword [esi + 0x1a2c], 0
mov byte [esi + 0x1a30], 0
mov dword [esi + 0x1a34], 0
mov dword [esi + 0x1a38], 0
mov dword [esi + 0x1a3c], 0
mov dword [esi + 0x1a40], 0
mov dword [esi + 0x1a44], 0
mov dword [esi + 0x1a48], 0
mov word [esi + 0x1a4c], 0
mov dword [esi + 0x1a50], 0
mov dword [esi + 0x1a54], 0xbf800000
mov dword [esi + 0x1a58], 0xbf800000
mov dword [esi + 0x1a60], 0
mov dword [esi + 0x1a5c], 0
mov dword [esi + 0x1a64], 0
mov dword [esi + 0x1a68], 0
mov dword [esi + 0x1a6c], 0
mov dword [esi + 0x1a70], 0
mov byte [esi + 0x1b14], 0
mov dword [esi + 0x1b18], 0
mov dword [esi + 0x1b1c], 0
mov dword [esi + 0x1b30], 0
mov dword [esi + 0x1b2c], 0
mov dword [esi + 0x1b28], 0
mov dword [esi + 0x1b24], 0
mov dword [esi + 0x1b20], 0
mov dword [esi + 0x1b3c], 0
mov dword [esi + 0x1b38], 0
mov dword [esi + 0x1b34], 0
mov dword [esi + 0x1b40], 0
mov dword [esi + 0x1b44], 0x7f7fffff
mov dword [esi + 0x1b48], 0x7f7fffff
mov dword [esi + 0x1b4c], 0xff7fffff
mov dword [esi + 0x1b50], 0xff7fffff
mov dword [esi + 0x1b54], 0
mov dword [esi + 0x1b60], 0
mov dword [esi + 0x1b5c], 0
mov dword [esi + 0x1b58], 0
mov dword [esi + 0x1b68], 0
mov dword [esi + 0x1b64], 0
mov byte [esi + 0x1b6c], 0
mov dword [esi + 0x1b70], 0
mov dword [esi + 0x1b74], 0x7fffffff
mov dword [esi + 0x1b78], 0x10000
mov word [esi + 0x1b7c], 0
mov byte [esi + 0x1b7e], 0
mov dword [esi + 0x1b80], 0
mov word [esi + 0x1b94], 0
mov dword [esi + 0x1b98], 0
mov dword [esi + 0x1b9c], 0
mov dword [esi + 0x1ba8], 0xffffffff
mov dword [esi + 0x1ba4], 0xffffffff
mov dword [esi + 0x1ba0], 0xffffffff
mov dword [esi + 0x1c54], 0
mov dword [esi + 0x1c80], edi
mov dword [ebp - 0x1c], 0xf3cba0a1
mov dword [ebp - 0x18], 0xe8e4f5e3
mov word [ebp - 0x14], 0xf3
mov byte [ebp - 0x12], 1
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 9
jb 0x100177e0
mov dword [esi + 0x1cfc], 0
lea eax, [ebp - 0x1c]
mov dword [esi + 0x1c84], eax
xorps xmm0, xmm0
mov word [esi + 0x1d00], 0
lea eax, [esi + 0x2cd0]
mov dword [esi + 0x1d04], 0
mov dword [esi + 0x1d08], 0xffffffff
mov dword [esi + 0x1d54], 0
mov dword [esi + 0x1d58], 0
mov dword [esi + 0x1d5c], 0
mov dword [esi + 0x1d60], 0
mov dword [esi + 0x1d64], 0
mov dword [esi + 0x1d68], 0xffffffff
movq qword [esi + 0x1d78], xmm0
mov dword [esi + 0x2c3c], 0
mov dword [esi + 0x2c40], 0x2900000
mov byte [esi + 0x2c54], 0
mov dword [esi + 0x2c58], 0
mov dword [esi + 0x2c5c], 0x3c23d70a
mov dword [esi + 0x2c60], 0
mov dword [esi + 0x2c64], 0
mov dword [esi + 0x2c68], 0
mov dword [esi + 0x2c80], 0x7f7fffff
mov dword [esi + 0x2c84], 0x7f7fffff
mov dword [esi + 0x2c78], 0x7f7fffff
mov dword [esi + 0x2c7c], 0x7f7fffff
mov byte [esi + 0x2c88], 0
mov dword [esi + 0x2c8c], 0
mov byte [esi + 0x2cb4], 0
push 0x1e0
mov dword [esi + 0x2cb8], 0
push 0
mov dword [esi + 0x2cc8], 0
push eax
mov dword [esi + 0x2ccc], 2
call sub.VCRUNTIME140.dll_memset
mov dword [esi + 0x2eb0], 0
lea ecx, [esi + 0x2ec4]
mov dword [esi + 0x2eb4], 0
push 0xc01
mov dword [esi + 0x2ec0], 0xffffffff
push 0
mov dword [esi + 0x2ebc], 0xffffffff
push ecx
mov dword [esi + 0x2eb8], 0xffffffff
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10051626
mov esp, ebp
pop ebp
ret 4