Function at 0x484f30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x584
mov ecx, 0x11
xor eax, eax
push ebx
push ebp
mov ebp, dword [esp + 0x590]
push esi
push edi
lea edi, [esp + 0x4c]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x59c]
xor esi, esi
cmp edi, esi
mov ecx, ebp
je 0x484f72
mov edx, edi
mov eax, dword [ecx]
add ecx, 4
mov ebx, dword [esp + eax*4 + 0x4c]
lea eax, [esp + eax*4 + 0x4c]
inc ebx
dec edx
mov dword [eax], ebx
jne 0x484f5f
cmp dword [esp + 0x4c], edi
jne 0x484f97
mov ecx, dword [esp + 0x5ac]
mov edx, dword [esp + 0x5b0]
pop edi
xor eax, eax
mov dword [ecx], esi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
add esp, 0x584
ret
mov eax, dword [esp + 0x5b0]
mov ecx, 1
mov edi, dword [eax]
mov dword [esp + 0x18], edi
cmp dword [esp + ecx*4 + 0x4c], esi
jne 0x484fb5
inc ecx
cmp ecx, 0x10
jbe 0x484fa9
mov ebx, ecx
cmp edi, ecx
mov dword [esp + 0x20], ebx
jae 0x484fc5
mov dword [esp + 0x18], ecx
mov edi, ecx
mov edx, 0x10
cmp dword [esp + edx*4 + 0x4c], esi
jne 0x484fd3
dec edx
jne 0x484fca
cmp edi, edx
mov dword [esp + 0x3c], edx
jbe 0x484fe1
mov dword [esp + 0x18], edx
mov edi, edx
mov dword [eax], edi
mov eax, 1
shl eax, cl
cmp ecx, edx
jae 0x484ffb
sub eax, dword [esp + ecx*4 + 0x4c]
js 0x485003
inc ecx
add eax, eax
cmp ecx, edx
jb 0x484fee
mov ecx, dword [esp + edx*4 + 0x4c]
sub eax, ecx
jns 0x485013
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x584
ret
add ecx, eax
xor eax, eax
cmp edx, esi
mov dword [esp + edx*4 + 0x4c], ecx
mov dword [esp + 0x94], esi
je 0x485039
xor ecx, ecx
add eax, dword [esp + ecx + 0x50]
add ecx, 4
dec edx
mov dword [esp + ecx + 0x94], eax
jne 0x485028
mov eax, dword [esp + 0x59c]
xor edx, edx
cmp eax, esi
jbe 0x485074
mov eax, dword [ebp]
add ebp, 4
cmp eax, esi
je 0x485068
mov ecx, dword [esp + eax*4 + 0x90]
lea eax, [esp + eax*4 + 0x90]
mov dword [esp + ecx*4 + 0x114], edx
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x59c]
inc edx
cmp edx, eax
jb 0x485046
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x114]
mov dword [esp + 0x2c], eax
mov eax, edi
or ebp, 0xffffffff
mov dword [esp + 0x30], esi
neg eax
cmp ebx, ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0xd4], esi
mov dword [esp + 0x44], esi
jg 0x485349
lea ecx, [ebx - 1]
lea edx, [esp + ebx*4 + 0x4c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x485324
mov ecx, dword [esp + 0x40]
mov edx, 1
shl edx, cl
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x24], ecx
lea ecx, [eax + edi]
cmp ebx, ecx
jle 0x4851ff
mov dword [esp + 0x1c], ecx
mov ecx, eax
sub ecx, edi
jmp 0x4850fe
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
add ecx, edi
add eax, edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
sub edx, eax
inc ebp
add ecx, edi
cmp edx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
jbe 0x485121
mov edx, edi
sub ebx, eax
mov eax, 1
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x24]
inc ecx
cmp eax, ecx
jbe 0x48515c
mov edi, dword [esp + 0x24]
or ecx, 0xffffffff
mov esi, dword [esp + 0x38]
sub ecx, edi
add eax, ecx
inc ebx
cmp ebx, edx
jae 0x48515c
mov ecx, dword [esi + 4]
add esi, 4
add eax, eax
cmp eax, ecx
jbe 0x48515c
sub eax, ecx
inc ebx
cmp ebx, edx
jb 0x485149
mov esi, 1
mov ecx, ebx
shl esi, cl
lea edx, [esi + esi*2 + 3]
add edx, edx
push edx
call fcn.00484ad0
mov edx, dword [esp + 0x5b0]
lea ecx, [eax + 6]
add eax, 2
add esp, 4
mov dword [edx], ecx
mov dword [esp + 0x5ac], eax
test ebp, ebp
mov dword [eax], 0
mov dword [esp + 0x44], ecx
mov dword [esp + ebp*4 + 0xd4], ecx
je 0x4851e1
mov al, byte [esp + 0x18]
mov edi, dword [esp + 0x30]
mov byte [esp + 0x11], al
mov dword [esp + 0x12], ecx
mov ecx, dword [esp + 0x34]
mov eax, edi
mov edx, dword [esp + ebp*4 + 0xd0]
add bl, 0x10
shr eax, cl
mov byte [esp + 0x10], bl
mov dword [esp + ebp*4 + 0x90], edi
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*2]
mov ecx, dword [esp + 0x10]
mov dx, word [esp + 0x14]
mov dword [eax], ecx
mov word [eax + 4], dx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0x28]
mov ebx, ecx
jl 0x4850fa
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0x59c]
mov cl, bl
sub cl, al
mov byte [esp + 0x11], cl
lea ecx, [esp + edx*4 + 0x114]
mov edx, dword [esp + 0x2c]
cmp edx, ecx
jb 0x485224
mov byte [esp + 0x10], 0x63
jmp 0x48526f
mov ecx, dword [edx]
mov edx, dword [esp + 0x5a0]
cmp ecx, edx
jae 0x485243
cmp ecx, 0x100
setb dl
add dl, 0xf
mov byte [esp + 0x10], dl
jmp 0x485260
sub ecx, edx
mov edx, dword [esp + 0x5a8]
shl ecx, 2
mov dl, byte [ecx + edx]
mov byte [esp + 0x10], dl
mov edx, dword [esp + 0x5a4]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x12], ecx
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x30]
mov ecx, ebx
sub ecx, eax
mov ebx, 1
shl ebx, cl
mov ecx, eax
shr edx, cl
cmp edx, esi
jae 0x4852c5
mov ebp, dword [esp + 0x44]
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov dword [esp + 0x34], ecx
lea ecx, [edx + edx*2]
lea ecx, [ebp + ecx*2]
mov dword [esp + 0x28], ecx
mov ebp, dword [esp + 0x10]
add edx, ebx
mov dword [ecx], ebp
mov bp, word [esp + 0x14]
mov word [ecx + 4], bp
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
add ecx, ebp
cmp edx, esi
mov dword [esp + 0x28], ecx
jb 0x48529e
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
test edx, ecx
je 0x4852d9
xor edx, ecx
shr ecx, 1
test edx, ecx
jne 0x4852d1
xor edx, ecx
mov ebx, 1
mov ecx, eax
mov dword [esp + 0x30], edx
shl ebx, cl
mov ecx, dword [esp + ebp*4 + 0x90]
dec ebx
and ebx, edx
cmp ebx, ecx
je 0x485314
sub eax, edi
mov ebx, 1
mov ecx, eax
dec ebp
shl ebx, cl
mov ecx, dword [esp + ebp*4 + 0x90]
dec ebx
and ebx, edx
cmp ebx, ecx
jne 0x4852f6
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
test ecx, ecx
jne 0x4850dc
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
add ecx, 4
inc ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x3c]
inc edx
cmp ebx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], edx
jle 0x4850bb
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x584
ret