Function at 0x4137d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473246
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.004022b0
mov eax, dword fs:[0x2c]
add esp, 4
mov dword [ebp - 0xdc], 0x2e5a4b47
mov ecx, dword [eax]
mov eax, dword [0x49ece4]
mov dword [ebp - 0x194], ecx
cmp eax, dword [ecx + 4]
jle 0x413883
push 0x49ece4
call fcn.0043751a
add esp, 4
cmp dword [0x49ece4], 0xffffffff
jne 0x413883
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49eaa0], xmm0
push 0x4783e0
movaps xmm0, xmmword [0x4893f0]
movups xmmword [0x49eab0], xmm0
mov dword [0x49eac0], eax
call fcn.00437941
push 0x49ece4
call fcn.004374d0
add esp, 8
cmp byte [0x49eac3], 0
je 0x4138c1
movaps xmm1, xmmword [0x4890c0]
xor eax, eax
movups xmm0, xmmword [eax + 0x49eaa0]
pxor xmm0, xmm1
movups xmmword [eax + 0x49eaa0], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x413895
cmp eax, 0x24
jae 0x4138c1
xor byte [eax + 0x49eaa0], 0x2e
inc eax
cmp eax, 0x24
jb 0x4138b4
push 1
mov edx, 0x49eaa0
lea ecx, [ebp - 0xf0]
call fcn.00414270
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413910
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413906
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x130], 0
lea ecx, [ebp - 0x138]
movq qword [ebp - 0x138], xmm0
call fcn.004115b0
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 0x413d1e
nop
push 0x50
lea eax, [ebp - 0x188]
push 0
push eax
call fcn.0044ede0
add esp, 0xc
lea ecx, [ebp - 0x188]
call fcn.00417320
mov byte [ebp - 4], 1
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x41399c
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.004194e0
lea ecx, [ebp - 0x188]
call fcn.00417260
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.00401f40
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413a49
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413a3f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
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.0044ede0
mov ecx, dword [ebp - 0x194]
lea edi, [ebp - 0x12c]
mov eax, dword [0x49f07c]
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 0x413b4d
push 0x49f07c
call fcn.0043751a
add esp, 4
cmp dword [0x49f07c], 0xffffffff
jne 0x413b47
movaps xmm0, xmmword [0x489020]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e828], xmm0
push 0x4783c0
movaps xmm0, xmmword [0x489240]
movups xmmword [0x49e838], xmm0
mov dword [0x49e860], eax
movaps xmm0, xmmword [0x489340]
movups xmmword [0x49e848], xmm0
movq xmm0, qword [ebp - 0xe4]
movq qword [0x49e858], xmm0
call fcn.00437941
push 0x49f07c
call fcn.004374d0
add esp, 8
mov edx, dword [ebp - 0x18c]
cmp byte [0x49e863], 0
je 0x413b8f
movaps xmm2, xmmword [0x4890c0]
xor eax, eax
nop
movups xmm0, xmmword [eax + 0x49e828]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e828], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x413b60
cmp eax, 0x3c
jae 0x413b8f
xor byte [eax + 0x49e828], 0x2e
inc eax
cmp eax, 0x3c
jb 0x413b82
push edi
push edx
lea eax, [ebp - 0xd8]
push 0x49e828
push eax
call fcn.00402360
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414270
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413bf2
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413be8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
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.00413e50
cmp byte [eax + 0x3f], 0
je 0x413c60
movups xmm0, xmmword [eax]
movaps xmm2, xmmword [0x4890c0]
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.00402360
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414270
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413cc4
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413cba
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413d02
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413cf8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
add esp, 8
mov edi, dword [ebp - 0x190]
add esi, 0x18
inc edi
mov dword [ebp - 0x190], edi
cmp edi, dword [ebp - 0x198]
jl 0x413970
mov ecx, dword [ebp - 0x194]
mov eax, dword [0x49e9ec]
mov dword [ebp - 0xdc], 0x2e5a4b47
cmp eax, dword [ecx + 4]
jle 0x413d8f
push 0x49e9ec
call fcn.0043751a
add esp, 4
cmp dword [0x49e9ec], 0xffffffff
jne 0x413d8f
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e694], xmm0
push 0x478380
movaps xmm0, xmmword [0x4893f0]
movups xmmword [0x49e6a4], xmm0
mov dword [0x49e6b4], eax
call fcn.00437941
push 0x49e9ec
call fcn.004374d0
add esp, 8
cmp byte [0x49e6b7], 0
je 0x413dd0
movaps xmm2, xmmword [0x4890c0]
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 0x413da1
cmp eax, 0x24
jae 0x413dd0
xor byte [eax + 0x49e694], 0x2e
inc eax
cmp eax, 0x24
jb 0x413dc3
push 1
mov edx, 0x49e694
lea ecx, [ebp - 0xf0]
call fcn.00414270
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413e1b
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413e11
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e43
push edx
push ecx
call fcn.004373c7
add esp, 8
lea ecx, [ebp - 0x138]
call fcn.00418e80
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.00437386
mov esp, ebp
pop ebp
ret
call fcn.0045214a
int3