Function at 0x49bd38
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbf4
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
lea edi, [ebp - 0x109]
push ecx
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov byte [ebp - 9], 0
cmp dword [ebp - 4], 0
je 0x49c2cb
test eax, eax
je 0x49c2cb
mov esi, eax
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
shr edi, 4
mov eax, dword [ebp - 4]
and eax, 0xf
test eax, eax
jbe 0x49bd88
inc edi
mov eax, edi
shl eax, 4
mov edi, eax
mov eax, dword [ebp - 8]
cmp dword [eax], 0
jne 0x49bda5
mov eax, edi
call fcn.004083a4
mov edx, dword [ebp - 8]
mov dword [edx], eax
jmp 0x49bdc4
mov eax, dword [ebp + 0x14]
cmp edi, dword [eax]
jbe 0x49bdb6
mov eax, dword [ebp - 8]
mov edx, edi
call fcn.0040272c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
xor ecx, ecx
mov edx, edi
call fcn.00402d24
mov eax, dword [ebp + 0x14]
mov dword [eax], edi
mov edi, dword [ebp - 8]
mov edi, dword [edi]
cmp dword [ebp + 8], 0
jne 0x49bde9
push esi
push edi
mov esi, 0x4d7528
lea edi, [ebp - 0x139]
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 0x49bdfc
mov eax, dword [ebp + 8]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0x139]
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 0x49be15
dec eax
je 0x49bf9e
dec eax
je 0x49c127
jmp 0x49c2ad
lea eax, [ebp - 0x149]
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 - 0x149]
lea eax, [ebp - 0x109]
call fcn.004028e8
lea edx, [ebp - 0x234]
lea eax, [ebp - 0x149]
call fcn.004914a4
cmp ebx, 0x10
jb 0x49bf04
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, 0x10
call fcn.004028e8
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x234]
lea eax, [ebp - 0x119]
call fcn.00491870
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x129]
lea edi, [ebp - 0x139]
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 ebx, 0x10
add esi, 0x10
add edi, 0x10
cmp ebx, 0x10
jae 0x49be63
test ebx, ebx
jbe 0x49c2c7
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, ebx
call fcn.004028e8
mov edx, 0x10
sub edx, ebx
lea eax, [ebp + ebx - 0x119]
xor ecx, ecx
call fcn.00402d24
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x234]
lea eax, [ebp - 0x119]
call fcn.00491870
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
jmp 0x49c2c7
lea eax, [ebp - 0x161]
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 - 0x161]
lea eax, [ebp - 0x109]
call fcn.004028e8
lea edx, [ebp - 0x30c]
lea eax, [ebp - 0x161]
call fcn.0049159c
cmp ebx, 0x10
jb 0x49c08d
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, 0x10
call fcn.004028e8
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x30c]
lea eax, [ebp - 0x119]
call fcn.00492b80
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x129]
lea edi, [ebp - 0x139]
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 ebx, 0x10
add esi, 0x10
add edi, 0x10
cmp ebx, 0x10
jae 0x49bfec
test ebx, ebx
jbe 0x49c2c7
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, ebx
call fcn.004028e8
mov edx, 0x10
sub edx, ebx
lea eax, [ebp + ebx - 0x119]
xor ecx, ecx
call fcn.00402d24
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x30c]
lea eax, [ebp - 0x119]
call fcn.00492b80
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
jmp 0x49c2c7
lea eax, [ebp - 0x181]
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 - 0x181]
lea eax, [ebp - 0x109]
call fcn.004028e8
lea edx, [ebp - 0x40c]
lea eax, [ebp - 0x181]
call fcn.004916b8
cmp ebx, 0x10
jb 0x49c216
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, 0x10
call fcn.004028e8
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x40c]
lea eax, [ebp - 0x119]
call fcn.00494258
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
push esi
push edi
lea esi, [ebp - 0x129]
lea edi, [ebp - 0x139]
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 ebx, 0x10
add esi, 0x10
add edi, 0x10
cmp ebx, 0x10
jae 0x49c175
test ebx, ebx
jbe 0x49c2c7
lea edx, [ebp - 0x119]
mov eax, esi
mov ecx, ebx
call fcn.004028e8
mov edx, 0x10
sub edx, ebx
lea eax, [ebp + ebx - 0x119]
xor ecx, ecx
call fcn.00402d24
lea eax, [ebp - 0x139]
mov eax, dword [eax]
lea edx, [ebp - 0x119]
xor dword [edx], eax
lea eax, [ebp - 0x135]
mov eax, dword [eax]
lea edx, [ebp - 0x115]
xor dword [edx], eax
lea eax, [ebp - 0x131]
mov eax, dword [eax]
lea edx, [ebp - 0x111]
xor dword [edx], eax
lea eax, [ebp - 0x12d]
mov eax, dword [eax]
lea edx, [ebp - 0x10d]
xor dword [edx], eax
lea ecx, [ebp - 0x129]
lea edx, [ebp - 0x40c]
lea eax, [ebp - 0x119]
call fcn.00494258
mov edx, edi
lea eax, [ebp - 0x129]
mov ecx, 0x10
call fcn.004028e8
jmp 0x49c2c7
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0040270c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x14]
xor edx, edx
mov dword [eax], edx
jmp 0x49c2cb
mov byte [ebp - 9], 1
mov al, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10