Function at 0x7c2230
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x6d7a68]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
mov dword [ebp - 0x250], ecx
mov ecx, dword [ebp + 0x10]
push eax
mov dword [ebp - 0x264], ecx
mov dword [ecx], 0xffffffff
push 0xb2
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x240], edi
mov dword [ebp - 0x23c], edi
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x234], edi
mov dword [ebp - 0x254], edi
mov dword [ebp - 0x244], edi
mov dword [ebp - 0x24c], edi
call fcn.007b7b90
lea eax, [ebp - 0x22e]
push eax
lea ecx, [ebp - 0x22c]
call fcn.007b7c40
lea ecx, [ebp - 0x260]
push ecx
lea ecx, [ebp - 0x22c]
call fcn.007b7ea0
test al, al
jne 0x7c22dd
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0067de1d
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 0x260]
push ebx
lea edx, [ebp - 0x258]
push edx
lea eax, [ebp - 0x254]
push eax
lea ebx, [esi + 0x2848]
push ecx
mov ecx, ebx
call fcn.007a3990
test al, al
je 0x7c238a
mov al, byte [ebp - 0x22e]
test al, 4
je 0x7c233b
lea edx, [ebp - 0x240]
push edx
lea ecx, [ebp - 0x22c]
call fcn.007b7ea0
test al, al
jne 0x7c236a
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0067de1d
mov esp, ebp
pop ebp
ret 0xc
test al, 8
je 0x7c236a
lea eax, [ebp - 0x22d]
push eax
lea ecx, [ebp - 0x22c]
call fcn.007b7c40
test al, al
je 0x7c238a
movzx ecx, byte [ebp - 0x22d]
push ecx
mov ecx, esi
call fcn.006d4d60
mov dword [ebp - 0x240], eax
mov al, byte [ebp - 0x22e]
test al, 0x10
je 0x7c239f
lea edx, [ebp - 0x23c]
push edx
lea ecx, [ebp - 0x22c]
call fcn.007b7ea0
test al, al
jne 0x7c23ce
pop ebx
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0067de1d
mov esp, ebp
pop ebp
ret 0xc
test al, 0x20
je 0x7c23ce
lea eax, [ebp - 0x22d]
push eax
lea ecx, [ebp - 0x22c]
call fcn.007b7c40
test al, al
je 0x7c238a
movzx ecx, byte [ebp - 0x22d]
push ecx
mov ecx, esi
call fcn.006d4d60
mov dword [ebp - 0x23c], eax
test byte [ebp - 0x22e], 1
je 0x7c247d
lea edx, [ebp - 0x248]
push edx
lea ecx, [ebp - 0x22c]
call fcn.007b7ea0
test al, al
je 0x7c238a
mov edx, dword [ebp - 0x248]
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x244]
push ecx
push edx
mov ecx, ebx
call fcn.007a3990
test al, al
je 0x7c238a
test byte [ebp - 0x22e], 2
je 0x7c2572
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x22c]
call fcn.007b7ea0
test al, al
je 0x7c238a
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x234]
push ecx
lea edx, [ebp - 0x24c]
push edx
push eax
mov ecx, ebx
call fcn.007a3990
test al, al
je 0x7c238a
mov ecx, dword [ebp - 0x238]
cmp dword [ebp - 0x234], ecx
jl 0x7c2578
mov dword [ebp - 0x234], ecx
jmp 0x7c2578
lea ecx, [ebp - 0x22d]
push ecx
lea ecx, [ebp - 0x22c]
call fcn.007b7c40
test al, al
je 0x7c238a
movzx eax, byte [ebp - 0x22d]
add eax, 1
push eax
lea edx, [ebp - 0x104]
push edx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x238], eax
call fcn.007b7d70
test al, al
je 0x7c238a
mov ecx, dword [ebp - 0x238]
xor eax, eax
cmp ecx, edi
jbe 0x7c24df
mov edi, edi
xor byte [ebp + eax - 0x104], 0xa5
add eax, 1
cmp eax, ecx
jb 0x7c24d0
test byte [ebp - 0x22e], 0x40
je 0x7c2558
lea eax, [ebp - 0x22d]
push eax
lea ecx, [ebp - 0x22c]
call fcn.007b7c40
test al, al
je 0x7c238a
movzx eax, byte [ebp - 0x22d]
lea ecx, [ebp - 0x25c]
push ecx
mov ecx, dword [ebp - 0x250]
push pe_nt_image_headers32
add eax, 1
lea edx, [ebp - 0x204]
push edx
push eax
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x22c]
push eax
mov dword [ebp - 0x25c], edi
call fcn.007c1c90
test al, al
je 0x7c238a
mov ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x234], ecx
mov ecx, dword [ebp - 0x238]
lea edx, [ebp - 0x104]
lea eax, [ebp - 0x204]
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x24c], eax
jmp 0x7c2578
mov ecx, dword [ebp - 0x238]
mov esi, dword [ebp - 0x258]
cmp esi, edi
je 0x7c25f6
cmp ecx, edi
je 0x7c25f6
cmp esi, ecx
jb 0x7c25f6
mov edx, dword [ebp - 0x240]
cmp edx, esi
jae 0x7c25f6
mov eax, dword [ebp - 0x23c]
cmp eax, edi
je 0x7c25a6
mov ebx, esi
sub ebx, edx
cmp eax, ebx
jbe 0x7c25b0
sub esi, edx
mov eax, esi
mov dword [ebp - 0x23c], eax
mov esi, dword [ebp - 0x234]
push esi
mov esi, dword [ebp - 0x24c]
push esi
push ecx
mov ecx, dword [ebp - 0x244]
push ecx
mov ecx, dword [ebp - 0x250]
push eax
mov eax, dword [ebp - 0x254]
add eax, edx
push eax
call fcn.007c1d20
mov ecx, dword [ebp - 0x240]
cmp ecx, edi
mov edx, dword [ebp - 0x264]
mov dword [edx], eax
je 0x7c25f6
cmp eax, 0xffffffff
je 0x7c25f6
add eax, ecx
mov dword [edx], eax
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
mov al, 1
pop esi
call fcn.0067de1d
mov esp, ebp
pop ebp
ret 0xc