Function at 0x100cd900
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
mov eax, dword [0x10277534]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x238], eax
mov eax, dword [0x10280f78]
push edi
mov edi, ecx
test al, 1
jne 0x100cd956
or eax, 1
mov ecx, 0x102729e0
push 0x10280f60
mov dword [0x10280f78], eax
call fcn.1006c2c0
push 0x1016e5e0
call fcn.1010c50d
add esp, 4
mov eax, dword [0x10280f94]
test al, 1
jne 0x100cda70
or eax, 1
cmp byte [0x102729f0], 0
mov dword [0x10280f94], eax
je 0x100cd9ea
cmp byte [0x102729f1], 0
jne 0x100cda48
mov byte [0x102729f1], 1
xor esi, esi
nop word [eax + eax]
xor edx, edx
mov eax, esi
xor eax, dword [0x10272a20]
xor edx, dword [0x10272a24]
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 - 0x25c], edx
shrd eax, edx, 7
xor al, byte [esi + 0x102729f2]
xor al, cl
mov byte [esi + 0x102729f2], al
inc esi
cmp esi, 0x27
jb 0x100cd990
jmp 0x100cda48
xor esi, esi
nop dword [eax]
xor edx, edx
mov eax, esi
xor eax, dword [0x10272a20]
xor edx, dword [0x10272a24]
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 - 0x25c], edx
shrd eax, edx, 7
xor al, byte [esi + 0x102729f2]
xor al, cl
mov byte [esi + 0x102729f2], al
inc esi
cmp esi, 0x27
jb 0x100cd9f0
lea eax, [ebp - 0x24d]
mov ecx, 0x10280f7c
push eax
push 0x10272a18
push 0x102729f2
call fcn.1004e6f0
push 0x1016e580
call fcn.1010c50d
add esp, 4
lea esi, [edi + 8]
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
je 0x100cdaa0
push 0xf4d4
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, edi
call fcn.100cceb0
mov edi, dword [esi + 4]
lea eax, [edi + 0xf4d4]
mov dword [esi + 4], eax
jmp 0x100cdaaa
push edi
mov ecx, esi
call fcn.100cca30
mov edi, eax
push dword [0x1019a020]
call fcn.100638e0
mov ecx, dword [ebp - 0x238]
fstp dword [edi + 0x14]
mov dword [edi + 0x18], 0
mov word [edi], 0
mov dword [edi + 8], 0xffffffff
lea eax, [ecx + 0x10]
mov dword [ebp - 0x25c], eax
mov eax, dword [eax]
mov dword [edi + 4], eax
movq xmm0, qword [0x1019a0fc]
movq qword [edi + 0x24], xmm0
mov eax, dword [0x1019a104]
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 0xf418
push dword [ecx + 0x2c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x240]
add esp, 0x10
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul esi, eax, 0x74
lea ecx, [edi + 0xf470]
mov dword [edi + 0x20], eax
add esi, 0x1019ae18
mov al, byte [esi]
mov byte [edi + 0xf460], al
mov eax, dword [esi + 4]
mov dword [edi + 0xf464], eax
mov eax, dword [esi + 8]
mov dword [edi + 0xf468], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xf46c], eax
lea eax, [esi + 0x10]
cmp ecx, eax
je 0x100cdb79
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x100cdb72
mov eax, dword [eax]
push edx
push eax
call fcn.100463e0
movups xmm0, xmmword [esi + 0x28]
movups xmmword [edi + 0xf488], xmm0
movups xmm0, xmmword [esi + 0x38]
movups xmmword [edi + 0xf498], xmm0
movups xmm0, xmmword [esi + 0x48]
movups xmmword [edi + 0xf4a8], xmm0
movups xmm0, xmmword [esi + 0x58]
movups xmmword [edi + 0xf4b8], xmm0
movq xmm0, qword [esi + 0x68]
movq qword [edi + 0xf4c8], xmm0
mov eax, dword [esi + 0x70]
mov esi, dword [ebp - 0x238]
mov dword [edi + 0xf4d0], eax
movq xmm0, qword [esi + 0x30]
movq qword [edi + 0x3c], xmm0
mov eax, dword [esi + 0x38]
mov dword [edi + 0x44], eax
test byte [0x1026a55c], 4
je 0x100ce35a
push 0x80
xorps xmm0, xmm0
lea eax, [ebp - 0x220]
push 0
push eax
movlpd qword [ebp - 0x230], xmm0
movq qword [ebp - 0x228], xmm0
call sub.VCRUNTIME140.dll_memset
push 0x80
xorps xmm0, xmm0
mov dword [ebp - 0x1a0], 0
lea eax, [ebp - 0x174]
mov dword [ebp - 0x18c], 0
push 0
push eax
movups xmmword [ebp - 0x19c], xmm0
mov dword [ebp - 0x178], 0
movups xmmword [ebp - 0x188], xmm0
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x240]
add esp, 0x18
add ecx, 8
mov word [ebp - 0xf4], 0
xorps xmm0, xmm0
mov byte [ebp - 0xe0], 0
movups xmmword [ebp - 0xf0], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x102784a0]
lea esi, [ebp - 0x230]
push esi
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
mov esi, dword [ebp - 0x238]
lea ecx, [ebp - 0x220]
xorps xmm0, xmm0
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 8], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cdcb0
sub ecx, edx
lea eax, [ebp - 0x220]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.10042ab0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.10043b50
mov ecx, dword [ebp - 8]
cmp ecx, 0x10
jb 0x100cdd0b
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100cdd01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100cdd01
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x14
jbe 0x100cddb5
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 - 0x23c], ecx
add ecx, 0xffffffed
push ecx
lea eax, [edx + esi]
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x23c]
add esp, 0xc
mov dword [ebp - 0x3c], eax
mov ecx, 0x1026ef40
lea eax, [ebp - 0x1c]
push eax
call fcn.1006c3a0
cmp dword [ebp - 8], 0x10
lea edx, [ebp - 0x1c]
cmovae edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100cdd68
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.10045b80
mov ecx, dword [ebp - 8]
cmp ecx, 0x10
jb 0x100cddaf
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100cdda5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ce34a
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov esi, dword [ebp - 0x238]
mov eax, dword [0x10278d18]
test al, 1
jne 0x100cddd4
mov ecx, dword [0x10278c94]
or eax, 1
mov dword [0x10278d18], eax
mov dword [0x10278d14], ecx
jmp 0x100cddda
mov ecx, dword [0x10278d14]
mov eax, dword [esi + 0x2c]
push ecx
movss xmm0, dword [eax + 0x28]
mov eax, dword [ebp - 0x240]
subss xmm0, dword [eax + ecx]
andps xmm0, xmmword [0x10170830]
movss dword [esp], xmm0
call fcn.10063900
add esp, 4
mov dword [ebp - 0x268], eax
cmp byte [edi + 0xf460], 0
je 0x100cdf14
mov ecx, dword [0x10280f70]
add edi, 0xf470
mov eax, 0x7fffffff
mov dword [ebp - 0x234], ecx
sub eax, ecx
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x258], edx
cmp eax, edx
jb 0x100ce36c
cmp dword [0x10280f74], 0x10
mov eax, 0x10280f60
cmovae eax, dword [0x10280f60]
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x254], eax
jb 0x100cde60
mov edi, dword [edi]
add ecx, edx
mov dword [ebp - 0x24], 0
mov esi, 0xf
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x23c], ecx
xorps xmm0, xmm0
lea eax, [ebp - 0x34]
mov dword [ebp - 0x240], eax
movups xmmword [ebp - 0x34], xmm0
cmp ecx, esi
jbe 0x100cdec8
mov esi, ecx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x100cdea3
mov esi, 0x7fffffff
jmp 0x100cdead
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x34]
call fcn.10045900
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x34], eax
push dword [ebp - 0x234]
mov dword [ebp - 0x24], ecx
push dword [ebp - 0x254]
mov dword [ebp - 0x20], esi
push eax
call sub.VCRUNTIME140.dll_memcpy
push dword [ebp - 0x258]
mov eax, dword [ebp - 0x234]
mov esi, dword [ebp - 0x240]
add eax, esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x23c]
add esp, 0x18
mov edi, 1
mov byte [esi + eax], 0
lea eax, [ebp - 0x34]
xor esi, esi
jmp 0x100cdf35
xor edi, edi
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
mov dword [ebp - 8], 0xf
movups xmmword [ebp - 0x1c], xmm0
mov byte [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
lea esi, [edi + 2]
mov ecx, dword [ebp - 0x238]
mov dword [ebp - 0x23c], eax
movss xmm0, dword [ecx + 0x24]
mulss xmm0, dword [0x10170764]
push dword [ecx + 8]
cvttss2si eax, xmm0
mov dword [ebp - 0x264], eax
lea eax, [ebp - 0x7c]
push eax
call fcn.100dc200
add esp, 8
mov dword [ebp - 0x258], eax
cmp dword [0x10280f90], 0x10
lea ecx, [ebp - 0x120]
mov eax, 0x10280f7c
mov dword [ebp - 0x170], 0x10175100
cmovae eax, dword [0x10280f7c]
mov dword [ebp - 0x254], 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 - 0x16c]
push eax
lea ecx, [ebp - 0x170]
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 - 0x170]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x170], 0x101750fc
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x174], eax
lea ecx, [ebp - 0x16c]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
lea eax, [ebp - 0xd0]
mov dword [ebp - 0x16c], 0x10174de0
mov dword [ebp - 0xd8], eax
mov ecx, 7
mov dword [ebp - 0x134], 0
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x130], 4
mov dword [ebp - 0xd4], 7
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x100ce025
push dword [ebp - 0xd4]
mov dword [ebp - 0x248], 0x100720a0
lea eax, [ebp - 0x4c]
push dword [ebp - 0xd8]
mov dword [ebp - 0x24c], eax
movq xmm0, qword [ebp - 0x24c]
mov eax, dword [ebp - 0x258]
push dword [ebp - 0x254]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x264]
movq qword [ebp - 0xd0], xmm0
mov dword [ebp - 0x248], 0x100720a0
movq xmm0, qword [ebp - 0x24c]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x238]
movq qword [ebp - 0xc4], xmm0
add eax, 0xc
mov dword [ebp - 0x248], 0x100aeb90
movq xmm0, qword [ebp - 0x24c]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x268]
movq qword [ebp - 0xb8], xmm0
mov dword [ebp - 0x248], 0x100aeb90
movq xmm0, qword [ebp - 0x24c]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x25c]
movq qword [ebp - 0xac], xmm0
mov dword [ebp - 0x248], 0x100aeb90
movq xmm0, qword [ebp - 0x24c]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x23c]
movq qword [ebp - 0xa0], xmm0
mov dword [ebp - 0x248], 0x100aeb90
movq xmm0, qword [ebp - 0x24c]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x170]
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x248], 0x100720a0
movq xmm0, qword [ebp - 0x24c]
push eax
mov dword [ebp - 0xc8], fcn.10072270
mov dword [ebp - 0xbc], fcn.10072270
mov dword [ebp - 0xb0], 0x10072260
mov dword [ebp - 0xa4], 0x10072260
mov dword [ebp - 0x98], 0x10072260
mov dword [ebp - 0x8c], 0x10072260
movq qword [ebp - 0x88], xmm0
mov dword [ebp - 0x80], fcn.10072270
call fcn.10077590
add esp, 0x10
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0x170]
push eax
call fcn.1004c9f0
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x170], 0x101750fc
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x174], eax
lea ecx, [ebp - 0x16c]
call fcn.100440d0
lea ecx, [ebp - 0x168]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x120]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x100ce23d
mov edx, dword [ebp - 0x7c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ce233
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ce2bf
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
test esi, esi
je 0x100ce295
mov ecx, dword [ebp - 8]
cmp ecx, 0x10
jb 0x100ce283
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ce279
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ce2bf
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
test edi, edi
je 0x100ce2cf
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x100ce2cf
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ce2c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ce2c5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov ecx, dword [0x1027c77c]
lea eax, [ebp - 0x64]
push 1
push 0xffffffffffffffff
push eax
call fcn.100fc670
mov ecx, dword [ebp - 0x50]
cmp ecx, 0x10
jb 0x100ce312
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ce308
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ce34a
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp ecx, 0x10
jb 0x100ce35a
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ce350
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ce350
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010c1fa
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1010c522
mov esp, ebp
pop ebp
ret 8
call fcn.10045820
int3