Function at 0x484ec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov ebp, dword [esp + 0xb8]
xor edi, edi
mov dword [esp + 0x3c], ebx
mov ebx, edi
mov dword [esp + 0x44], esi
mov esi, eax
jmp 0x484f10
mov eax, dword [esp + 0x68]
shl eax, 8
and eax, esi
cmp eax, 1
sbb edi, 0xffffffff
inc ebx
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
lea edx, [esp + 0x68]
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0045d680
test eax, eax
jne 0x484f00
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0xac]
cdq
idiv edi
mov dword [esp + 0x44], eax
mov edx, ebp
mov edi, ebx
cmp ebp, 4
jae 0x4850eb
test dl, 2
je 0x484f5c
mov word [edi], 0
add edi, 2
and edx, 1
je 0x484f64
mov byte [edi], 0
mov edi, ebp
shr edi, 2
lea eax, [esi + 4]
cmp ebx, eax
setae al
lea edx, [ebx + 4]
cmp esi, edx
setae dl
or eax, edx
cmp ebp, 6
seta dl
and eax, edx
mov edx, ebx
or edx, esi
and edx, 3
sete dl
and eax, edx
xor eax, 1
mov edx, edi
shl edx, 2
mov dword [esp + 0x54], edx
sete dl
or al, dl
mov byte [esp + 0x5b], al
je 0x4850de
mov dword [esp + 0x5c], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xac]
and eax, 1
add eax, dword [esp + 0x44]
mov dword [esp + 0x50], eax
lea esi, [esi]
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
lea edx, [esp + 0x68]
mov dword [esp + 4], edx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.0045d680
test eax, eax
je 0x4850d4
mov eax, dword [esp + 0x68]
shl eax, 8
test dword [esp + 0x40], eax
je 0x4850cb
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x485106
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], esi
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xa8]
call fcn.00484a90
test eax, eax
je 0x48513c
mov eax, dword [esp + 0x44]
add dword [esp + 0xa8], eax
test ebp, ebp
jle 0x4850cb
cmp byte [esp + 0x5b], 0
jne 0x4850b1
xor eax, eax
lea esi, [esi]
mov edx, dword [esi + eax*4]
xor dword [ebx + eax*4], edx
inc eax
cmp edi, eax
ja 0x4850a0
cmp ebp, dword [esp + 0x54]
je 0x4850cb
mov eax, dword [esp + 0x5c]
lea esi, [esi]
lea edi, [edi]
mov dl, byte [esi + eax]
xor byte [ebx + eax], dl
inc eax
cmp ebp, eax
jg 0x4850c0
inc dword [esp + 0x3c]
jmp 0x484fd0
mov al, 1
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
jmp 0x484fb2
test bl, 1
jne 0x485146
test edi, 2
jne 0x485151
mov ecx, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x484f4f
mov dword [esp + 0x10], 0x109
mov dword [esp + 0xc], str.t1_enc.c
mov dword [esp + 8], 0x146
mov dword [esp + 4], 0x11c
mov dword [esp], 0x14
call fcn.004b2280
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [ebx], 0
lea edi, [ebx + 1]
lea edx, [ebp - 1]
jmp 0x4850f0
mov word [edi], 0
add edi, 2
sub edx, 2
jmp 0x4850f8