Function at 0x413b80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4738b6
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.00402270
mov eax, dword fs:[0x2c]
add esp, 4
mov dword [ebp - 0xdc], 0x2e5a4b47
mov ecx, dword [eax]
mov eax, dword [0x49ebfc]
mov dword [ebp - 0x194], ecx
cmp eax, dword [ecx + 4]
jle 0x413c33
push 0x49ebfc
call fcn.00437b73
add esp, 4
cmp dword [0x49ebfc], 0xffffffff
jne 0x413c33
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e9c0], xmm0
push 0x478a50
movaps xmm0, xmmword [0x489490]
movups xmmword [0x49e9d0], xmm0
mov dword [0x49e9e0], eax
call fcn.00437f9a
push 0x49ebfc
call fcn.00437b29
add esp, 8
cmp byte [0x49e9e3], 0
je 0x413c71
movaps xmm1, xmmword [0x489100]
xor eax, eax
movups xmm0, xmmword [eax + 0x49e9c0]
pxor xmm0, xmm1
movups xmmword [eax + 0x49e9c0], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x413c45
cmp eax, 0x24
jae 0x413c71
xor byte [eax + 0x49e9c0], 0x2e
inc eax
cmp eax, 0x24
jb 0x413c64
push 1
mov edx, 0x49e9c0
lea ecx, [ebp - 0xf0]
call fcn.00414840
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413cc0
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413cb6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x130], 0
lea ecx, [ebp - 0x138]
movq qword [ebp - 0x138], xmm0
call fcn.004111f0
mov dword [ebp - 4], 0
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0x134]
mov ecx, edi
mov esi, dword [ebp - 0x138]
sub ecx, esi
imul ecx
mov dword [ebp - 0x18c], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x4140d7
mov dword [ebp - 0x190], esi
push 0x50
lea eax, [ebp - 0x188]
push 0
push eax
call fcn.0044f430
add esp, 0xc
lea ecx, [ebp - 0x188]
call fcn.004178c0
mov byte [ebp - 4], 1
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x413d52
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.004199f0
lea ecx, [ebp - 0x188]
call fcn.00417800
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.00401ed0
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413dff
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413df5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
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.0044f430
mov ecx, dword [ebp - 0x194]
lea esi, [ebp - 0x12c]
mov eax, dword [0x49efb8]
lea edi, [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0xe4], 0x54475d56
cmp dword [ebp - 0xdc], 0x10
mov dword [ebp - 0xe0], 0x1e1a134b
cmovae esi, dword [ebp - 0xf0]
cmovae edi, dword [ebp - 0xf0]
mov dword [ebp - 0xdc], 0x2e6c631f
cmp eax, dword [ecx + 4]
jle 0x413ef7
push 0x49efb8
call fcn.00437b73
add esp, 4
cmp dword [0x49efb8], 0xffffffff
jne 0x413ef7
movaps xmm0, xmmword [0x489050]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e764], xmm0
push 0x478a30
movaps xmm0, xmmword [0x4892b0]
movups xmmword [0x49e774], xmm0
mov dword [0x49e79c], eax
movaps xmm0, xmmword [0x4893e0]
movups xmmword [0x49e784], xmm0
movq xmm0, qword [ebp - 0xe4]
movq qword [0x49e794], xmm0
call fcn.00437f9a
push 0x49efb8
call fcn.00437b29
add esp, 8
cmp byte [0x49e79f], 0
je 0x413f3f
movaps xmm2, xmmword [0x489100]
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [eax + 0x49e764]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e764], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x413f10
cmp eax, 0x3c
jae 0x413f3f
xor byte [eax + 0x49e764], 0x2e
inc eax
cmp eax, 0x3c
jb 0x413f32
push esi
push edi
lea eax, [ebp - 0xd8]
push 0x49e764
push eax
call fcn.00402320
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414840
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413fa2
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413f98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
add esp, 8
cmp dword [ebp - 0x118], 0x10
lea esi, [ebp - 0x12c]
lea edi, [ebp - 0x12c]
cmovae esi, dword [ebp - 0x12c]
cmovae edi, dword [ebp - 0x12c]
call fcn.00414260
cmp byte [eax + 0x3f], 0
je 0x414006
movups xmm0, xmmword [eax]
movaps xmm2, xmmword [0x489100]
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
push esi
push edi
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00402320
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.00414840
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x414065
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41405b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x4140a3
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x414099
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
add esp, 8
mov edi, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x190]
inc edi
add esi, 0x18
mov dword [ebp - 0x18c], edi
mov dword [ebp - 0x190], esi
cmp edi, dword [ebp - 0x198]
jl 0x413d26
mov esi, dword [ebp - 0x138]
mov edi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x194]
mov eax, dword [0x49e90c]
mov dword [ebp - 0xdc], 0x2e5a4b47
cmp eax, dword [ecx + 4]
jle 0x414148
push 0x49e90c
call fcn.00437b73
add esp, 4
cmp dword [0x49e90c], 0xffffffff
jne 0x414148
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e5d0], xmm0
push 0x4789f0
movaps xmm0, xmmword [0x489490]
movups xmmword [0x49e5e0], xmm0
mov dword [0x49e5f0], eax
call fcn.00437f9a
push 0x49e90c
call fcn.00437b29
add esp, 8
cmp byte [0x49e5f3], 0
je 0x41418f
movaps xmm2, xmmword [0x489100]
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [eax + 0x49e5d0]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e5d0], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x414160
cmp eax, 0x24
jae 0x41418f
xor byte [eax + 0x49e5d0], 0x2e
inc eax
cmp eax, 0x24
jb 0x414182
push 1
mov edx, 0x49e5d0
lea ecx, [ebp - 0xf0]
call fcn.00414840
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x4141da
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4141d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push edx
push ecx
call fcn.00437a20
add esp, 8
test esi, esi
je 0x41422e
push ecx
mov edx, edi
mov ecx, esi
call fcn.0041d3d0
mov ecx, dword [ebp - 0x130]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 4
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x414224
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41424b
push ecx
push esi
call fcn.00437a20
add esp, 8
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.004379df
mov esp, ebp
pop ebp
ret
call fcn.0045279a
int3