Function at 0x485760
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 4]
add esp, 0xfffffef8
xor ecx, ecx
mov dword [edx], ecx
push ebx
push ebp
lea ebp, [eax + 0x18]
mov al, byte [eax]
test al, 2
push esi
push edi
jne 0x485790
pop edi
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
mov ax, 0x3c
ret 0x24
mov ebx, dword [esp + 0x130]
cmp ebx, 0x50
ja case.0x485a5e.136
mov edx, dword [esp + 0x138]
cmp edx, 0x50
ja case.0x485a5e.136
lea esi, [esp + 0x18]
cmp ebx, ecx
je 0x4857bf
mov esi, dword [esp + 0x12c]
test al, 4
mov word [ebp + 0x30], 0x18
je 0x485b59
mov eax, dword [esp + 0x120]
and al, 0
mov word [ebp + 0x38], cx
add eax, 0xc8000f
cmp ebx, 0xc
mov word [ebp + 0x3a], cx
mov dword [ebp + 0x34], eax
jbe 0x485836
cmp ebx, 0x4c
mov ecx, esi
lea eax, [ebp + 0x40]
mov dword [esp + 0x10], eax
mov edi, dword [ecx]
mov dword [eax], edi
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
ja case.0x485a5e.136
lea ecx, [ebx - 0xc]
mov eax, 0x38
lea edi, [ebp + 0x50]
mov edx, ecx
sub esi, 0xfffffff4
shr ecx, 2
sub eax, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x485858
push eax
lea eax, [ebx + ebp + 0x44]
jmp 0x485852
mov ecx, ebx
lea edi, [ebp + 0x40]
lea eax, [ebp + 0x50]
mov dword [esp + 0x10], edi
push 0x2c
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.0048cb40
lea esi, [ebp + 0x4e]
mov byte [ebp + 0x4c], bl
mov ebx, dword [esp + 0x124]
push 2
push esi
mov byte [ebp + 0x4d], bl
call fcn.0048cb40
mov al, byte [esp + 0x120]
mov dl, byte [ebp + 0x4f]
mov cl, byte [esi]
push 0x4fd518
mov byte [ebp + 0x7d], al
lea eax, [esp + 0x6c]
not dl
push eax
not cl
shr ebx, 8
mov byte [ebp + 0x7c], bl
mov byte [ebp + 0x7e], cl
mov byte [ebp + 0x7f], dl
call fcn.0048cb70
lea edx, [esp + 0x70]
mov ebx, dword [esp + 0x124]
lea ecx, [esp + 0x20]
add ebx, 8
mov edi, dword [ebx]
mov dword [esp + 0x20], edi
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], eax
mov edi, dword [ebx + 8]
mov dword [esp + 0x28], edi
mov eax, dword [ebx + 0xc]
push ecx
push edx
mov dword [esp + 0x34], eax
call fcn.0048cc60
lea ecx, [esp + 0x78]
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.0048cb70
lea esi, [ebp + 0x70]
lea edx, [esp + 0x80]
push esi
push edx
call fcn.0048ce90
mov edi, esi
sub esp, 0xffffffe0
mov ecx, 0xffffff90
sub ecx, ebp
mov dl, byte [edi - 0x10]
xor byte [edi], dl
inc edi
lea edx, [ecx + edi]
cmp edx, 0x10
jb 0x4858fe
lea ebx, [ebp + 0x60]
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.0048ce90
mov edi, 0xffffffa0
add esp, 8
mov eax, ebx
sub edi, ebp
mov dword [esp + 0x14], edi
mov cl, byte [eax - 0x10]
mov dl, byte [eax]
xor dl, cl
mov byte [eax], dl
inc eax
lea edx, [edi + eax]
cmp edx, 0x10
jb 0x48592a
lea eax, [esp + 0x68]
lea edi, [ebp + 0x50]
push edi
push eax
call fcn.0048ce90
mov ebx, edi
mov edi, 0xffffffb0
sub esp, 0xfffffff8
sub edi, ebp
mov cl, byte [ebx - 0x10]
mov dl, byte [ebx]
xor dl, cl
mov byte [ebx], dl
inc ebx
lea edx, [edi + ebx]
cmp edx, 0x10
jb 0x485956
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.0048ce90
mov eax, 0x40
mov word [ebp + 0x3c], ax
sub esp, 0xfffffff8
mov word [ebp + 0x3e], ax
push ebp
call fcn.0047dec0
push eax
call fcn.00484040
mov ebx, eax
test bx, bx
jne 0x485b2f
lea edx, [esp + 0x68]
mov ebx, dword [esp + 0x10]
push ebx
push edx
call fcn.0048ce90
mov eax, ebx
sub esp, 0xfffffff8
mov ecx, 0xffffffc0
sub ecx, ebp
mov dl, byte [eax + 0x10]
xor byte [eax], dl
inc eax
lea edx, [ecx + eax]
cmp edx, 0x10
jb 0x4859b9
lea ebx, [ebp + 0x50]
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.0048ce90
add esp, 8
mov eax, ebx
mov cl, byte [eax + 0x10]
mov dl, byte [eax]
xor dl, cl
mov byte [eax], dl
inc eax
lea edx, [eax + edi]
cmp edx, 0x10
jb 0x4859da
lea eax, [esp + 0x68]
lea edi, [ebp + 0x60]
push edi
push eax
call fcn.0048ce90
mov eax, edi
add esp, 8
mov dl, byte [eax]
mov cl, byte [eax + 0x10]
xor dl, cl
mov byte [eax], dl
inc eax
mov edx, dword [esp + 0x14]
lea ecx, [eax + edx]
cmp ecx, 0x10
jb 0x4859ff
lea edx, [esp + 0x68]
push esi
push edx
call fcn.0048ce90
lea eax, [esp + 0x70]
push ebp
push eax
call fcn.0048cb70
mov al, byte [ebp + 0x7d]
add esp, 0x10
cmp al, 0x53
je 0x485a46
mov ax, 2
pop edi
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
mov al, byte [ebp + 0x7c]
test al, 0x80
je 0x485adc
and eax, 0x9f
add eax, 0xffffff80
cmp eax, 8
ja case.default.0x485a5e
jmp dword [eax*4 + 0x485c14]
pop edi
mov ax, 0x41
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
pop edi
pop esi
mov ax, 4
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
mov ax, 0xa
ret 0x24
mov ax, 0x15
pop edi
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
mov ax, 0x4a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret 0x24
pop edi
mov ax, 0x3f
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
pop edi
pop esi
mov ax, 0xff
pop ebp
pop ebx
add esp, 0x108
ret 0x24
cmp al, 0x3c
ja case.0x485a5e.132
mov ecx, dword [esp + 0x138]
and eax, 0xff
cmp eax, ecx
ja case.0x485a5e.132
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x13c]
mov dword [ebx], eax
mov cl, byte [ebp + 0x7c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
xor ax, ax
sub esp, 0xfffffef8
ret 0x24
lea eax, [esp + 0x68]
push ebp
push eax
call fcn.0048cb70
add esp, 8
cmp bx, 0xc
je 0x485bba
cmp bx, 9
je 0x485bba
pop edi
pop esi
pop ebp
mov ax, bx
pop ebx
add esp, 0x108
ret 0x24
lea edi, [ebp + 0x40]
mov ax, word [esp + 0x124]
mov ecx, dword [esp + 0x120]
mov dword [ebp + 0x34], ecx
mov cx, word [esp + 0x128]
mov word [ebp + 0x3a], cx
mov word [ebp + 0x38], ax
mov ecx, ebx
mov eax, ecx
push ebp
mov dword [esp + 0x14], edi
mov word [ebp + 0x3c], bx
shr ecx, 2
mov word [ebp + 0x3e], dx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0047dec0
push eax
call fcn.00484040
mov ecx, eax
and ecx, 0xffff
je 0x485bcb
cmp ecx, 9
je 0x485bba
cmp ecx, 0xc
jne 0x485c05
mov ax, 3
pop edi
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
mov ebx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
mov edx, ecx
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x134]
mov dword [ebx], ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
sub esp, 0xfffffef8
ret 0x24
mov ax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret 0x24