Function at 0x49c2d8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbe8
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
lea edi, [ebp - 0x105]
push ecx
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 4], ecx
mov esi, edx
mov byte [ebp - 5], 0
test esi, esi
je 0x49c6ed
mov edx, esi
and edx, 0xf
test edx, edx
ja 0x49c6ed
test eax, eax
je 0x49c6ed
mov ebx, eax
mov edi, esi
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x49c32d
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
mov eax, dword [ebp - 4]
cmp dword [eax], 0
jne 0x49c346
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.004083a4
mov edx, dword [ebp - 4]
mov dword [edx], eax
jmp 0x49c369
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax]
jbe 0x49c369
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0040272c
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.0049b834
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
mov esi, dword [ebp - 4]
mov esi, dword [esi]
cmp dword [ebp + 8], 0
jne 0x49c38e
push esi
push edi
mov esi, 0x4d7528
lea edi, [ebp - 0x135]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x49c3a1
mov eax, dword [ebp + 8]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0x135]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp + 0xc]
dec eax
je 0x49c3ba
dec eax
je 0x49c4c2
dec eax
je 0x49c5ca
jmp 0x49c6cf
lea eax, [ebp - 0x155]
xor ecx, ecx
mov edx, 0x10
call fcn.00402d24
mov edx, pe_nt_image_headers32
mov eax, 0x10
call fcn.0049b83c
mov ecx, eax
lea edx, [ebp - 0x155]
lea eax, [ebp - 0x105]
call fcn.004028e8
lea edx, [ebp - 0x240]
lea eax, [ebp - 0x155]
call fcn.00495fe4
cmp edi, 0x10
jb 0x49c6e9
lea edx, [ebp - 0x115]
mov eax, ebx
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x115]
lea edi, [ebp - 0x145]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea ecx, [ebp - 0x125]
lea edx, [ebp - 0x240]
lea eax, [ebp - 0x115]
call fcn.004965f8
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x125]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x121]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x11d]
xor dword [edx], eax
lea eax, [ebp - 0x129]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
mov edx, esi
lea eax, [ebp - 0x125]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x145]
lea edi, [ebp - 0x135]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
sub edi, 0x10
add ebx, 0x10
add esi, 0x10
cmp edi, 0x10
jae 0x49c408
jmp 0x49c6e9
lea eax, [ebp - 0x16d]
xor ecx, ecx
mov edx, 0x18
call fcn.00402d24
mov edx, pe_nt_image_headers32
mov eax, 0x18
call fcn.0049b83c
mov ecx, eax
lea edx, [ebp - 0x16d]
lea eax, [ebp - 0x105]
call fcn.004028e8
lea edx, [ebp - 0x318]
lea eax, [ebp - 0x16d]
call fcn.004962e4
cmp edi, 0x10
jb 0x49c6e9
lea edx, [ebp - 0x115]
mov eax, ebx
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x115]
lea edi, [ebp - 0x145]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea ecx, [ebp - 0x125]
lea edx, [ebp - 0x318]
lea eax, [ebp - 0x115]
call fcn.00497908
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x125]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x121]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x11d]
xor dword [edx], eax
lea eax, [ebp - 0x129]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
mov edx, esi
lea eax, [ebp - 0x125]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x145]
lea edi, [ebp - 0x135]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
sub edi, 0x10
add ebx, 0x10
add esi, 0x10
cmp edi, 0x10
jae 0x49c510
jmp 0x49c6e9
lea eax, [ebp - 0x18d]
xor ecx, ecx
mov edx, 0x20
call fcn.00402d24
mov edx, pe_nt_image_headers32
mov eax, 0x20
call fcn.0049b83c
mov ecx, eax
lea edx, [ebp - 0x18d]
lea eax, [ebp - 0x105]
call fcn.004028e8
lea edx, [ebp - 0x418]
lea eax, [ebp - 0x18d]
call fcn.004965e4
cmp edi, 0x10
jb 0x49c6e9
lea edx, [ebp - 0x115]
mov eax, ebx
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x115]
lea edi, [ebp - 0x145]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea ecx, [ebp - 0x125]
lea edx, [ebp - 0x418]
lea eax, [ebp - 0x115]
call fcn.00498fe0
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x125]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x121]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x11d]
xor dword [edx], eax
lea eax, [ebp - 0x129]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
mov edx, esi
lea eax, [ebp - 0x125]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x145]
lea edi, [ebp - 0x135]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
sub edi, 0x10
add ebx, 0x10
add esi, 0x10
cmp edi, 0x10
jae 0x49c618
jmp 0x49c6e9
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.0040270c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x14]
xor edx, edx
mov dword [eax], edx
jmp 0x49c6ed
mov byte [ebp - 5], 1
mov al, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10