Function at 0x42d530
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov eax, dword [0x45303c]
mov dword [esp + 4], 0x2165275b
mov dword [esp + 8], 0x3d922390
mov dword [esp + 0xc], 0x399d3f60
mov dword [esp + 0x10], 0x35993bb4
mov dword [esp + 0x14], 0x3136374b
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 9
xor dl, byte [esp + ecx + 4]
add dl, 0xd3
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0x17
jne 0x42d580
lea edx, [esp + 0x54]
lea ecx, [esp + 4]
push edx
push 0
push 0
push 9
push ecx
push 0
call eax
mov ebx, dword [esp + 0x54]
test ebx, ebx
jns 0x42d5b9
mov eax, 0xffffffff
jmp 0x42d5bc
lea eax, [ebx + ebx]
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 0x40], eax
mov eax, dword [0x45303c]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0x23632145
mov dword [esp + 8], 0x27962594
mov dword [esp + 0xc], 0x3b9b397c
mov dword [esp + 0x10], 0x3f9f3d88
mov dword [esp + 0x14], 0x33323155
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
mov ebp, 0x10808
mov edx, 0xfffef820
movzx edi, byte [esp + ebp - 0x10804]
mov ecx, ebp
and ecx, edi
add ecx, ecx
mov esi, edi
sub esi, ecx
add esi, ebp
add esi, 0xfffad7d7
mov eax, esi
not eax
and esi, 1
sub ecx, edi
add ecx, edx
or ecx, eax
not ecx
or ecx, 1
add ecx, esi
mov byte [esp + ebp - 0x10804], cl
inc ebp
dec edx
cmp ebp, 0x1081f
jne 0x42d610
lea eax, [esp + 0x54]
push eax
push ebx
push dword [esp + 0x48]
push 9
lea eax, [esp + 0x14]
push eax
push 0
call dword [esp + 0x50]
mov dword [esp + 4], 0xf145ffb8
mov dword [esp + 8], 0xf557f345
mov dword [esp + 0xc], 0xc944f745
mov dword [esp + 0x10], 0xcdcacb6c
lea edx, [esp + 0x14]
mov word [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd5
xor cl, byte [esp + eax + 4]
add cl, 0xd7
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0x12
jne 0x42d6a0
lea edi, [esp + 0xa2]
lea eax, [esp + 4]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xb2]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 4], 0xe17de758
mov dword [esp + 8], 0xdd7fe36d
mov dword [esp + 0xc], 0xd94cdf4d
mov dword [esp + 0x10], 0xd567db44
mov dword [esp + 0x14], 0xd140d777
mov dword [esp + 0x18], 0xcd40d373
mov dword [esp + 0x1c], 0xc9cecf47
lea esi, [esp + 0x20]
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov ecx, 0x3643abd9
mov edx, 0x9378a866
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x3643abd5]
lea edi, [edx + 0x6c8757c0]
and edi, edx
mov ebp, ecx
or ebp, ebx
not ebx
or ebx, edi
and ebx, ebp
mov edi, ebx
xor edi, 0xb2
and ebx, 0x4d
add ebx, ebx
sub ebx, edi
add bl, 0x75
mov byte [esp + ecx - 0x3643abd5], bl
inc ecx
dec edx
cmp ecx, 0x3643abf8
jne 0x42d730
lea edx, [esp + 0xc8]
lea ebx, [esp + 4]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xe4]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 4], 0xc1adc788
mov dword [esp + 8], 0xcdafc35d
mov dword [esp + 0xc], 0xc95ccf5d
mov dword [esp + 0x10], 0xf5bacba4
mov dword [esp + 0x14], 0xf1b4f788
lea ebx, [esp + 0x18]
mov dword [esp + 0x18], 0xf3f0
mov edi, 0xd1
mov esi, 0x2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0xcd]
mov ecx, edi
xor ecx, esi
and ecx, ebp
xor ecx, esi
mov al, 0xea
sub al, cl
mov byte [esp + edi - 0xcd], al
inc edi
dec esi
cmp edi, 0xe9
jne case.default.0x42d86d
lea esi, [esp + 0xb2]
lea ebp, [esp + 4]
mov eax, ebp
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xc6]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov edi, ebp
lea eax, [esp + 0xa2]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], esi
mov eax, dword [esp + 0x40]
add eax, 2
mov dword [esp + 0x70], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44f0bc]
inc edx
add byte [edx - 0x69ffbd32], al
into
inc edx
add byte [eax + 0x480042ce], dl
rol byte [edx], cl
nop
mov dword [edx], case.0x42d0b3.53
pushal
rol byte [edx], cl
pushal
rol byte [edx], cl
rol byte [edx], cl
je 4518038
invalid
fadd dword [edx]
mov ecx, 0x7a0042d8
inc edx
add byte [ecx + 0x7a0042d8], bh
fadd dword [edx]
xchg al, bl
inc edx
add byte [ecx + ebx*8 + 0x42], bl
add byte [ebp - 0x7affbd26], al
fiadd dword [edx]
jo 0x44f0b5
inc edx
add byte [ebx + ebx*8 + 0x42], bh
add byte [eax + 0x510042db], ah
loopne 0x44f129
add al, cl
fild dword [edx]
rcr dh, 1
inc edx
add byte [eax - 0x7ffbd22], dh
fiadd word [edx]
mov al, 0xde
inc edx
add byte [edi], bh
loopne 0x44f141
add byte [ebx], dl
fild word [edx]
aas
loopne 4518217
add byte [0xe90042df], bh
jecxz 0x44f151
add byte [ecx - 0x7bffbd23], ah
fiadd word [edx]
dec edi
in al, 66
add byte [ebp - 0x1c], dl
inc edx
add byte [esi - 0x1c], bl
inc edx
add byte [ebp - 0x1c], dl
inc edx
add byte [edi - 0x1c], cl
inc edx
in al, 0x42
add byte [0x300042e4], dl
in al, 0x42
add byte [eax], dh
in al, 0x42
add cl, ch
jecxz 0x44f17d
add bh, ch
jecxz 0x44f181
add byte [edi], cl
in al, 0x42
add byte [eax], al
in al, 0x42
add ch, dh
jecxz 0x44f18d
add byte [edi], cl
in al, 0x42
add byte [eax], al
in al, 0x42
add byte [ecx], bl
loopne 0x44f199
add byte [eax], dh
loopne case.0x42e664.5
add byte [edi], bh
loopne 0x44f1a1
add byte [eax], dh
loopne 0x44f1a5
add byte [ebp - 0x20], al
inc edx
add byte [ecx - 0x20], dl
inc edx
add byte [ebx + ebx*8 - 0x1f32ffbe], al
inc edx
add byte [eax - 0x28ffbd28], ah
loopne 0x44f1bd
add byte [eax - 0x3fffbd1d], ch
jecxz 0x44f1c1
add al, al
jecxz 0x44f1c5
add byte [eax - 0x5fffbd22], dl
fadd dword [edx]
xchg esi, eax
fiadd word [edx]
mov al, byte [0xa00042de]
fadd dword [edx]
mov al, byte [0x6b0042de]
fiadd word [edx]
imul esp, esi, 0x42
out 66, al
out 0x42, al
add byte [eax], al
add byte [edi - 0x183fffbe], ch
inc edx