Function at 0x42aa70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xfc
push eax
sub esp, 0x14
mov dword [ebp - 0x68], esp
sub esp, 8
mov dword [ebp - 0x94], esp
sub esp, 8
mov dword [ebp - 0x50], esp
sub esp, 0x10
mov eax, esp
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x44], eax
sub esp, 0x34
mov eax, esp
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x7c], eax
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x88], eax
push eax
mov dword [ebp - 0xa0], esp
mov dword [ebp - 0x34], 0x77b77985
mov dword [ebp - 0x30], 0x73c275c4
mov dword [ebp - 0x2c], 0x4fef71ac
mov dword [ebp - 0x28], 0x4beb4dc0
mov dword [ebp - 0x24], 0x474649b5
mov eax, 0xe9
mov ecx, 0x16
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp + ecx - 0x4a]
not edx
mov esi, eax
or esi, edx
movzx edx, dl
or edx, ecx
xor edx, 0xff
add esi, ecx
add esi, 0xdbcc1c01
or esi, edx
add esi, 0xb5037391
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [ebp + ecx - 0x4a], dl
dec eax
inc ecx
cmp eax, 0xd5
jne 0x42aaf0
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0x34]
mov edi, edx
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [ebp - 0xc0]
lea eax, [ebp - 0x20]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [ebp - 0x4c]
push eax
push 0
push 0
push 9
push edx
push 0
call dword [0x44d058]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0xd39291b3
mov ebx, 0xdc
mov esi, 0x2a8e923
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebp + ebx - 0x110]
lea edx, [ebx - 0x2a8ea00]
mov ecx, esi
and ecx, 0x2200822
mov edi, edx
and edi, 0xb0100249
or edi, ecx
xor edi, eax
xor edi, 0xb6
mov ecx, ebx
and ecx, eax
or ecx, edi
and edx, eax
sub ecx, edx
add cl, 0xb4
mov byte [ebp + ebx - 0x110], cl
inc ebx
dec esi
cmp ebx, 0xe0
jne case.default.0x42abd3
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x34]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x447f78]
stosd dword es:[edi], eax
inc edx
add bl, ch
mov ecx, 0xac1a0042
inc edx
add byte [esp + ebp*4], dh
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], bl
lodsb al, byte [esi]
inc edx
add byte [ecx], al
add byte [eax], al
add byte [edx], ah
lodsb al, byte [esi]
inc edx
add bl, ch
mov ecx, 0xae000042
inc edx
add byte [eax], bh
scasb al, byte es:[edi]
inc edx
add byte [esi], al
scasb al, byte es:[edi]
inc edx
add cl, dl
mov ecx, 0xafb50042
inc edx
add al, ah
scasd eax, dword es:[edi]
inc edx
add ah, ch
scasd eax, dword es:[edi]
inc edx
add byte [eax], al
mov al, 0x42
add byte [edx], dl
mov al, 0x42
add byte [eax], al
mov al, 0x42
add dl, dl
mov bh, 0x42
add byte [eax], ah
mov al, 0x42
add byte [ebx - 0x6fffbd47], ch
mov ecx, 0xb3500042
inc edx
add byte [eax - 0x4dffbd47], dl
mov bh, 0x42
add byte [esi - 0x4d], bl
inc edx
add byte [ebx + esi*4 + 0x42], bh
add byte [ebx - 0x19ffbd4d], al
mov ch, 0x42
add cl, dh
mov ch, 0x42
add byte [edi - 0x49], bl
inc edx
add byte [eax - 0x49], ch
inc edx
add byte [ecx - 0x6bffbd49], cl
mov bh, 0x42
add byte [eax - 0x4fffbd49], dh
mov bh, 0x42
add byte [eax - 0x4dffbd49], dh
mov bh, 0x42
add byte [eax - 0x3effbd49], bh
mov bh, 0x42
add al, dl
mov bh, 0x42
add al, dl
mov bh, 0x42
add al, dl
mov bh, 0x42
add dl, dl
mov bh, 0x42
add bl, bl
mov bh, 0x42
add byte [esi - 0x4affbd48], ah
scasd eax, dword es:[edi]
inc edx
add byte [esi - 0x40ffbd48], ah
scasd eax, dword es:[edi]
inc edx
add byte [eax], dh
mov al, 0x42
add byte [eax], ah
scasb al, byte es:[edi]
inc edx
add byte [0x20042b0], bh
mov bl, 0x42
add byte [eax], ah
mov bl, 0x42
add byte [esi], ah
mov bl, 0x42
add byte [eax], ah
scasb al, byte es:[edi]
inc edx
add al, ah
mov ecx, 0xb9d70042
inc edx
add dh, ah
mov ecx, 0xb9e00042
inc edx
add ch, ch
mov ebx, 0xc2110042
inc edx
add byte [eax], ch
mov esp, 0xbc510042
inc edx
add byte [eax], dh
mov esp, 0xc2110042
inc edx
add byte [esi], dh
mov esp, 0xbc400042
inc edx
add byte [ecx], dl
ret 0x42