Function at 0x100cf220
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
mov eax, dword [0x1029ad64]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x238], eax
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x258], 0
mov eax, dword [0x102a8be8]
push edi
mov edi, ecx
test al, 1
jne 0x100cf280
or eax, 1
mov ecx, 0x10296000
push 0x102a8bd0
mov dword [0x102a8be8], eax
call fcn.10086240
push 0x1019c5c0
call fcn.1013922d
add esp, 4
mov eax, dword [0x102a8c04]
test al, 1
jne 0x100cf3a4
or eax, 1
cmp byte [0x10296010], 0
mov dword [0x102a8c04], eax
je 0x100cf30e
cmp byte [0x10296011], 0
jne 0x100cf368
mov byte [0x10296011], 1
xor esi, esi
xor edx, edx
mov eax, esi
xor eax, dword [0x10296040]
xor edx, dword [0x10296044]
xor eax, 0x1de26cd5
mov dword [ebp - 0x234], eax
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
mov eax, ecx
mov dword [ebp - 0x258], edx
shrd eax, edx, 7
xor al, byte [esi + 0x10296012]
xor al, cl
mov byte [esi + 0x10296012], al
inc esi
cmp esi, 0x27
jb 0x100cf2b4
jmp 0x100cf368
xor esi, esi
xor edx, edx
mov eax, esi
xor eax, dword [0x10296040]
xor edx, dword [0x10296044]
xor eax, 0x1de26cd5
mov dword [ebp - 0x234], eax
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
mov eax, ecx
mov dword [ebp - 0x258], edx
shrd eax, edx, 7
xor al, byte [esi + 0x10296012]
xor al, cl
mov byte [esi + 0x10296012], al
inc esi
cmp esi, 0x27
jb 0x100cf310
push 0x26
push 0x10296012
mov ecx, 0x102a8bec
mov dword [0x102a8bec], 0
mov dword [0x102a8bfc], 0
mov dword [0x102a8c00], 0xf
call fcn.100464c0
push 0x1019c560
call fcn.1013922d
add esp, 4
lea esi, [edi + 8]
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
je 0x100cf3d4
push 0x11990
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, edi
call fcn.100ce950
mov edi, dword [esi + 4]
lea eax, [edi + 0x11990]
mov dword [esi + 4], eax
jmp 0x100cf3de
push edi
mov ecx, esi
call fcn.100ce4f0
mov edi, eax
push dword [0x101cf020]
call fcn.10065b00
mov ecx, dword [ebp - 0x23c]
fstp dword [edi + 0x14]
mov dword [edi + 0x18], 0
mov word [edi], 0
mov dword [edi + 8], 0xffffffff
mov eax, dword [ecx + 0x10]
mov dword [edi + 4], eax
movq xmm0, qword [0x101cf114]
movq qword [edi + 0x24], xmm0
mov eax, dword [0x101cf11c]
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc], 0xffffffff
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
lea eax, [edi + 0x48]
push 0x118c0
push dword [ecx + 0x2c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x238]
add esp, 0x10
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul esi, eax, 0x88
lea ecx, [edi + 0x1192c]
mov dword [edi + 0x20], eax
add esi, 0x1029bd98
movups xmm0, xmmword [esi]
movups xmmword [edi + 0x11908], xmm0
mov eax, dword [esi + 0x10]
mov dword [edi + 0x11918], eax
movzx eax, byte [esi + 0x14]
mov byte [edi + 0x1191c], al
mov eax, dword [esi + 0x18]
mov dword [edi + 0x11920], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x11924], eax
movzx eax, byte [esi + 0x20]
mov byte [edi + 0x11928], al
lea eax, [esi + 0x24]
cmp ecx, eax
je 0x100cf4be
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x100cf4b7
mov eax, dword [eax]
push edx
push eax
call fcn.100464c0
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [edi + 0x11944], xmm0
movups xmm0, xmmword [esi + 0x4c]
movups xmmword [edi + 0x11954], xmm0
movups xmm0, xmmword [esi + 0x5c]
movups xmmword [edi + 0x11964], xmm0
movups xmm0, xmmword [esi + 0x6c]
movups xmmword [edi + 0x11974], xmm0
movq xmm0, qword [esi + 0x7c]
movq qword [edi + 0x11984], xmm0
mov eax, dword [esi + 0x84]
mov esi, dword [ebp - 0x23c]
mov dword [edi + 0x1198c], eax
movq xmm0, qword [esi + 0x30]
movq qword [edi + 0x3c], xmm0
mov eax, dword [esi + 0x38]
mov dword [edi + 0x44], eax
test byte [0x1028e5e8], 4
je 0x100cfbfe
push 0x90
lea eax, [ebp - 0x218]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x80
xorps xmm0, xmm0
mov dword [ebp - 0x188], 0
lea eax, [ebp - 0x15c]
mov dword [ebp - 0x164], 0
push 0
push eax
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x160], 0
movups xmmword [ebp - 0x174], xmm0
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x238]
add esp, 0x18
add ecx, 8
mov word [ebp - 0xdc], 0
xorps xmm0, xmm0
mov byte [ebp - 0xc8], 0
movups xmmword [ebp - 0xd8], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x1029bb40]
lea esi, [ebp - 0x218]
push esi
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
mov esi, dword [ebp - 0x23c]
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cf5e1
sub ecx, edx
lea eax, [ebp - 0x208]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.100464c0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.10043d50
mov edx, dword [ebp - 8]
cmp edx, 0x10
jb 0x100cf63c
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100cf632
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100cf632
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10138f1a
add esp, 8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x14
jbe 0x100cf6df
cmp dword [ebp - 0x38], 0x10
lea esi, [ecx - 0x14]
lea edx, [ebp - 0x4c]
cmovae edx, dword [ebp - 0x4c]
sub ecx, esi
add edx, 0x14
mov dword [ebp - 0x3c], ecx
add ecx, 0xffffffed
push ecx
lea eax, [edx + esi]
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [ebp - 0x1c]
mov ecx, 0x10292f70
push eax
call fcn.1006ee50
cmp dword [ebp - 8], 0x10
lea edx, [ebp - 0x1c]
cmovae edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cf690
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.10045c90
mov edx, dword [ebp - 8]
cmp edx, 0x10
jb 0x100cf6d9
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100cf6cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100cf6cf
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10138f1a
add esp, 8
mov esi, dword [ebp - 0x23c]
mov eax, dword [0x1029e6ec]
test al, 1
jne 0x100cf6fe
mov ecx, dword [0x1029e658]
or eax, 1
mov dword [0x1029e6ec], eax
mov dword [0x1029e6e8], ecx
jmp 0x100cf704
mov ecx, dword [0x1029e6e8]
mov eax, dword [esi + 0x2c]
push ecx
movss xmm0, dword [eax + 0x30]
mov eax, dword [ebp - 0x238]
subss xmm0, dword [eax + ecx]
andps xmm0, xmmword [0x1019e930]
movss dword [esp], xmm0
call fcn.10065b20
add esp, 4
mov dword [ebp - 0x258], eax
cmp byte [edi + 0x1191c], 0
je 0x100cf856
mov ecx, dword [0x102a8be0]
add edi, 0x1192c
mov eax, 0x7fffffff
mov dword [ebp - 0x234], ecx
sub eax, ecx
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x254], edx
cmp eax, edx
jb 0x100cfc10
cmp dword [0x102a8be4], 0x10
mov eax, 0x102a8bd0
cmovae eax, dword [0x102a8bd0]
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x250], eax
jb 0x100cf78a
mov edi, dword [edi]
add ecx, edx
mov dword [ebp - 0x34], 0
mov esi, 0xf
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x34]
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x238], eax
cmp ecx, esi
jbe 0x100cf7f2
mov esi, ecx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x100cf7cd
mov esi, 0x7fffffff
jmp 0x100cf7d7
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x34]
call fcn.10045a70
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x34], eax
push dword [ebp - 0x234]
mov dword [ebp - 0x24], ecx
push dword [ebp - 0x250]
mov dword [ebp - 0x20], esi
push eax
call sub.VCRUNTIME140.dll_memcpy
push dword [ebp - 0x254]
mov eax, dword [ebp - 0x234]
mov esi, dword [ebp - 0x238]
add eax, esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x24c]
add esp, 0x18
mov dword [ebp - 0x238], 0x11
mov edi, 0x11
mov dword [ebp - 0x234], 0
mov byte [esi + eax], 0
lea eax, [ebp - 0x34]
mov esi, dword [ebp - 0x23c]
jmp 0x100cf887
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov edi, 0x10
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x238], 0x12
mov dword [ebp - 0x234], 2
movss xmm0, dword [esi + 0x24]
mulss xmm0, dword [0x1019e860]
mov dword [ebp - 0x24c], eax
push dword [esi + 8]
cvttss2si eax, xmm0
mov dword [ebp - 0x260], eax
lea eax, [ebp - 0x230]
push eax
call fcn.100de060
add esp, 8
mov dword [ebp - 0x254], eax
cmp dword [0x102a8c00], 0x10
lea ecx, [ebp - 0x108]
mov eax, 0x102a8bec
mov dword [ebp - 0x158], 0x101a3200
cmovae eax, dword [0x102a8bec]
mov dword [ebp - 0x250], eax
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebp - 0x158]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x158], 0x101a31fc
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x15c], eax
lea ecx, [ebp - 0x154]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x154], 0x101a2ee0
mov dword [ebp - 0xa8], eax
mov ecx, 7
mov dword [ebp - 0x11c], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x118], 4
mov dword [ebp - 0xa4], 7
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x100cf974
push dword [ebp - 0xa4]
mov dword [ebp - 0x244], 0x100757e0
lea eax, [ebp - 0x4c]
push dword [ebp - 0xa8]
mov dword [ebp - 0x248], eax
movq xmm0, qword [ebp - 0x248]
mov eax, dword [ebp - 0x254]
push dword [ebp - 0x250]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x260]
movq qword [ebp - 0xa0], xmm0
mov dword [ebp - 0x244], 0x100757e0
movq xmm0, qword [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea eax, [esi + 0xc]
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x244], 0x100b0140
movq xmm0, qword [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x258]
movq qword [ebp - 0x88], xmm0
mov dword [ebp - 0x244], 0x100b0140
movq xmm0, qword [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea eax, [esi + 0x10]
movq qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x244], 0x100b0140
movq xmm0, qword [ebp - 0x248]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x24c]
movq qword [ebp - 0x70], xmm0
mov dword [ebp - 0x244], 0x100b0140
movq xmm0, qword [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x158]
movq qword [ebp - 0x64], xmm0
mov dword [ebp - 0x244], 0x100757e0
movq xmm0, qword [ebp - 0x248]
push eax
mov dword [ebp - 0x98], fcn.100759b0
mov dword [ebp - 0x8c], fcn.100759b0
mov dword [ebp - 0x80], 0x100759a0
mov dword [ebp - 0x74], 0x100759a0
mov dword [ebp - 0x68], 0x100759a0
mov dword [ebp - 0x5c], 0x100759a0
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x50], fcn.100759b0
call fcn.1007a3c0
add esp, 0x10
lea eax, [ebp - 0xc0]
lea ecx, [ebp - 0x158]
push eax
call fcn.1004ccc0
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x158], 0x101a31fc
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x15c], eax
lea ecx, [ebp - 0x154]
call fcn.100442b0
lea ecx, [ebp - 0x150]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x108]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x230]
call fcn.10044260
cmp dword [ebp - 0x234], 0
je 0x100cfb96
mov edx, dword [ebp - 8]
mov dword [ebp - 0x238], edi
cmp edx, 0x10
jb 0x100cfb84
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100cfb7a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100cfbc5
push edx
push ecx
call fcn.10138f1a
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
test byte [ebp - 0x238], 1
je 0x100cfbd5
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x100cfbd5
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100cfbcb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100cfbcb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10138f1a
add esp, 8
mov ecx, dword [0x102a398c]
lea eax, [ebp - 0xc0]
push 1
push 0xffffffffffffffff
push eax
call fcn.100fd060
lea ecx, [ebp - 0xc0]
call fcn.10044260
lea ecx, [ebp - 0x4c]
call fcn.10044260
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.10139242
mov esp, ebp
pop ebp
ret 8
call fcn.10045990
int3