Function at 0x4137c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473306
mov eax, dword fs:[0]
push eax
sub esp, 0x18c
mov eax, dword [0x493018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.delete_shadow_copies_n
call fcn.004022d0
mov eax, dword fs:[0x2c]
add esp, 4
mov dword [ebp - 0xdc], 0x2e5a4b47
mov ecx, dword [eax]
mov eax, dword [0x49eea4]
mov dword [ebp - 0x194], ecx
cmp eax, dword [ecx + 4]
jle 0x413873
push 0x49eea4
call fcn.004374fa
add esp, 4
cmp dword [0x49eea4], 0xffffffff
jne 0x413873
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49ec64], xmm0
push 0x4784a0
movaps xmm0, xmmword [0x489a50]
movups xmmword [0x49ec74], xmm0
mov dword [0x49ec84], eax
call fcn.00437921
push 0x49eea4
call fcn.004374b0
add esp, 8
cmp byte [0x49ec87], 0
je 0x4138b1
movaps xmm1, xmmword [0x4896d0]
xor eax, eax
movups xmm0, xmmword [eax + 0x49ec64]
pxor xmm0, xmm1
movups xmmword [eax + 0x49ec64], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x413885
cmp eax, 0x24
jae 0x4138b1
xor byte [eax + 0x49ec64], 0x2e
inc eax
cmp eax, 0x24
jb 0x4138a4
push 1
mov edx, 0x49ec64
lea ecx, [ebp - 0xf0]
call fcn.00414260
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413900
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4138f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x130], 0
lea ecx, [ebp - 0x138]
movq qword [ebp - 0x138], xmm0
call fcn.004115a0
mov dword [ebp - 4], 0
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x134]
mov esi, dword [ebp - 0x138]
sub ecx, esi
imul ecx
mov dword [ebp - 0x190], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x413d0e
nop
push 0x50
lea eax, [ebp - 0x188]
push 0
push eax
call fcn.0044edc0
add esp, 0xc
lea ecx, [ebp - 0x188]
call fcn.00417300
mov byte [ebp - 4], 1
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x41398c
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*2]
push eax
push ecx
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x188]
call fcn.004194c0
lea ecx, [ebp - 0x188]
call fcn.00417240
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
lea ecx, [eax - 1]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x118], 0x10
lea eax, [ebp - 0x12c]
cmovae eax, dword [ebp - 0x12c]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00401f60
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413a39
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413a2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
movups xmm0, xmmword [ebp - 0xf0]
push 0xc8
lea eax, [ebp - 0xd8]
movups xmmword [ebp - 0x12c], xmm0
push 0
movq xmm0, qword [ebp - 0xe0]
push eax
movq qword [ebp - 0x11c], xmm0
call fcn.0044edc0
mov ecx, dword [ebp - 0x194]
lea edi, [ebp - 0x12c]
mov eax, dword [0x4a023c]
lea edx, [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0xe4], 0x54475d56
cmp dword [ebp - 0xdc], 0x10
mov dword [ebp - 0xe0], 0x1e1a134b
cmovae edx, dword [ebp - 0xf0]
cmovae edi, dword [ebp - 0xf0]
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0xdc], 0x2e6c631f
cmp eax, dword [ecx + 4]
jle 0x413b3d
push 0x4a023c
call fcn.004374fa
add esp, 4
cmp dword [0x4a023c], 0xffffffff
jne 0x413b37
movaps xmm0, xmmword [0x489640]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e9ec], xmm0
push 0x478480
movaps xmm0, xmmword [0x489850]
movups xmmword [0x49e9fc], xmm0
mov dword [0x49ea24], eax
movaps xmm0, xmmword [0x489970]
movups xmmword [0x49ea0c], xmm0
movq xmm0, qword [ebp - 0xe4]
movq qword [0x49ea1c], xmm0
call fcn.00437921
push 0x4a023c
call fcn.004374b0
add esp, 8
mov edx, dword [ebp - 0x18c]
cmp byte [0x49ea27], 0
je 0x413b7f
movaps xmm2, xmmword [0x4896d0]
xor eax, eax
nop
movups xmm0, xmmword [eax + 0x49e9ec]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e9ec], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x413b50
cmp eax, 0x3c
jae 0x413b7f
xor byte [eax + 0x49e9ec], 0x2e
inc eax
cmp eax, 0x3c
jb 0x413b72
push edi
push edx
lea eax, [ebp - 0xd8]
push 0x49e9ec
push eax
call fcn.00402380
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414260
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413be2
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413bd8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
cmp dword [ebp - 0x118], 0x10
lea edx, [ebp - 0x12c]
lea edi, [ebp - 0x12c]
cmovae edx, dword [ebp - 0x12c]
cmovae edi, dword [ebp - 0x12c]
mov dword [ebp - 0x18c], edx
call fcn.00413e40
cmp byte [eax + 0x3f], 0
je 0x413c50
movups xmm0, xmmword [eax]
movaps xmm2, xmmword [0x4896d0]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax], xmm1
movups xmm0, xmmword [eax + 0x10]
pxor xmm0, xmm2
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
pxor xmm0, xmm2
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
pxor xmm0, xmm2
movups xmmword [eax + 0x30], xmm0
nop dword [eax]
push edi
push dword [ebp - 0x18c]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00402380
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414260
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413cb4
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413caa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413cf2
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413ce8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
mov edi, dword [ebp - 0x190]
add esi, 0x18
inc edi
mov dword [ebp - 0x190], edi
cmp edi, dword [ebp - 0x198]
jl 0x413960
mov ecx, dword [ebp - 0x194]
mov eax, dword [0x49ebb0]
mov dword [ebp - 0xdc], 0x2e5a4b47
cmp eax, dword [ecx + 4]
jle 0x413d7f
push 0x49ebb0
call fcn.004374fa
add esp, 4
cmp dword [0x49ebb0], 0xffffffff
jne 0x413d7f
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e694], xmm0
push 0x478440
movaps xmm0, xmmword [0x489a50]
movups xmmword [0x49e6a4], xmm0
mov dword [0x49e6b4], eax
call fcn.00437921
push 0x49ebb0
call fcn.004374b0
add esp, 8
cmp byte [0x49e6b7], 0
je 0x413dc0
movaps xmm2, xmmword [0x4896d0]
xor eax, eax
movups xmm0, xmmword [eax + 0x49e694]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e694], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x413d91
cmp eax, 0x24
jae 0x413dc0
xor byte [eax + 0x49e694], 0x2e
inc eax
cmp eax, 0x24
jb 0x413db3
push 1
mov edx, 0x49e694
lea ecx, [ebp - 0xf0]
call fcn.00414260
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413e0b
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413e01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e33
push edx
push ecx
call fcn.004373a7
add esp, 8
lea ecx, [ebp - 0x138]
call fcn.00418e60
xor eax, eax
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.00437366
mov esp, ebp
pop ebp
ret
call fcn.0045212a
int3