Function at 0x5243fc
Capabilities:
Encode data using xor

Disassembly:
outsd dx, dword [esi]
or eax, 0x306005d
outsd dx, dword [esi]
or al, 0x5d
add byte [esi], al
outsd dx, dword [esi]
add byte fs:[eax], al
push es
add eax, 0x4a6a28
push es
outsd dx, dword [esi]
push 0x43
inc ebx
add byte [esi], al
add al, byte [esi]
add al, 5
push cs
add al, 3
outsd dx, dword [esi]
or al, 0x5d
add byte [esi], al
sub byte [edx], ch
dec edx
add byte [esi], al
push es
sub bl, byte [esi + 2]
sub byte [edi], ah
dec edx
add byte [esi], al
sub eax, 0x2802020d
jp 0x524434
add byte [esi], al
sub byte [esi], ah
dec edx
add byte [esi], al
sub dl, byte [edi]
sub ah, byte [edx]
add al, byte [ebx]
sub ah, bh
dec ecx
add byte [esi], al
sub dl, byte [ebx]
adc esi, dword [eax]
push es
adc esi, dword [eax]
push es
add byte [ecx], dl
add byte [eax], al
wait
or eax, dword [eax]
adc dword [ebx], eax
sub eax, 0x1dd02810
add byte [esi], al
jb 0x5243ad
add al, byte [eax]
jo 0x524485
jb 0x524418
add byte [edx], cl
jp 0x524420
sub eax, 0x1dd02810
add byte [esi], al
jb 0x524459
sbb eax, 0x34720600
jmp 0x72c1b42c
add eax, 0x302082c
push es
sub byte [edx + ecx*2], ch
push es
add al, byte [esi]
add al, 5
push cs
add al, 3
outsd dx, dword [esi]
or al, 0x5d
add byte [esi], al
sub byte [edx], ch
dec edx
add byte [esi], al
push es
push ss
outsd dx, dword [esi]
push eax
cmp eax, 0x2a060600
push ds
add dh, byte [ebx - 0x61]
dec ebx
add byte [esi], al
sub ah, byte [esi]
add al, byte [ebx]
add al, 0x28
sahf
add dword [eax], eax
sub ebp, dword [edx]
jb 0x52446f
sub byte [eax], dl
inc esp
add byte [esi], al
add al, byte [ebx]
sub byte [edi + 0x206004b], ch
add al, 0x28
adc eax, dword [eax + eax + 6]
add al, byte [0x441728]
push es
add byte [esi], al
sub bl, byte [edx + 2]
sub al, 0x11
add bl, byte [eax]
or eax, 0x92e1902
add dl, byte [edi]
add eax, 0x1fe1a02
sub dl, byte [edi]
sub dl, byte [esi + 2]
sub byte [eax + eax], ah
or al, byte [edx]
add edi, dword [ebp + 0x22]
xor dword [eax], eax
add al, 2
add al, 0x7d
and esi, dword [ecx]
add byte [edx + ebp], al
jge 0x5244d4
xor dword [eax], eax
add al, 0x2a
xor al, byte [edx]
jnp 0x5244dc
xor dword [eax], eax
add al, 0x6f
clc
dec esp
add byte [esi], al
sub bl, byte [esi]
push ss
and byte [eax], 0x31
add byte [edx + ebp], al
jae 0x5244af
dec esp
add byte [esi], al
and byte [ecx + esi], 0
add al, 0x2a
add bl, byte [eax]
jge 0x524505
xor dword [eax], eax
add al, 2
add byte [edx + eax], al
sub byte [eax + eax], ah
or al, byte [edx]
jae 0x524501
sbb dword [eax], eax
or bh, byte [ebp + 0x2b]
xor dword [eax], eax
add al, 0x2a
fiadd word [edx]
sbb byte [ebp + 0x2a], bh
xor dword [eax], eax
add al, 2
sub byte [eax + eax], ah
or al, byte [edx]
add edi, dword [ebx + 0x2a]
xor dword [eax], eax
add al, 0x7d
sub dh, byte [ecx]
add byte [edx + eax], al
sub dh, byte [ecx]
add byte [edi*2 + 0x400312a], al
add al, byte [ebx]
jnp 0x524539
jge 0x524531
xor dword [eax], eax
add al, 2
add edi, dword [ebx + 0x2b]
xor dword [eax], eax
add al, 0x28
pop ss
dec esi
add byte [esi], al
jge 0x524543
xor dword [eax], eax
add al, 2
add edi, dword [ebx + 0x2c]
xor dword [eax], eax
add al, 0x7d
sub al, 0x31
add byte [edx + ebp], al
and al, byte [edx]
pop ss
jge 0x524559
xor dword [eax], eax
add al, 0x2a
mov byte [0x2d7d1802], al
xor dword [eax], eax
add al, 2
pop ss
add dl, byte [edi]
jge 0x52456d
xor dword [eax], eax
add al, 2
sub byte [ebx], bl
sbb dword [eax], eax
or bh, byte [ebp + 0x31]
xor dword [eax], eax
add al, 2
pop ds
cmp al, 0x7d
xor al, 0x31
add byte [edx + eax], al
sub byte [eax + eax], ah
or ch, byte [edx]
and al, byte [edx]
pop ss
sub ah, byte [edx]
add dl, byte [edi]
jge 0x524594
xor dword [eax], eax
add al, 0x2a
and al, byte [edx]
pop ss
jge 0x5245ac
xor dword [eax], eax
add al, 0x2a
cmp al, byte [edx]
sub byte [esp + ecx*2], dh
add ch, byte [eax]
xor al, 0x4c
add byte [esi], al
add al, byte [ebx]
jge 0x5245d6
xor dword [eax], eax
add al, 0x2a
cmp al, byte [edx]
sub byte [esp + ecx*2], dh
add byte [esi], al
add al, byte [ebx]
jge 0x5245e6
xor dword [eax], eax
add al, 0x2a
add byte [eax], al
adc esi, dword [eax]
add al, 0
sub eax, dword [eax]
add byte [eax], al
test eax, 0x211000b
jnp 0x5245fb
xor dword [eax], eax
add al, 0x2d
add eax, 0x16511405
sub al, byte [edx]
jnp 0x524608
xor dword [eax], eax
add al, 0x6f
test byte [eax], 0
add byte [eax], al
sub ecx, dword [edx]
push es
sub al, 0xa
push es
add eax, dword [eax + 0x4c326f]
push es
sub al, byte [0x2a165114]
add byte [ebx], dl
xor byte [ebx], al
add byte [edx], ch
add byte [eax], al
add byte [ecx + 0x211000b], ch
jnp 0x524633
xor dword [eax], eax
add al, 0x2d
add eax, 0x16511404
sub eax, 0x51140405
push ss
sub al, byte [edx]
jnp 0x524640
xor dword [eax], eax
add al, 0x6f
test byte [eax], 0
sub ecx, dword [edx]
push es
add byte [ebx], ch
or al, byte [esi]
sub al, 9
push es
add eax, dword [edi + ebp*2]
xor ecx, dword [eax + eax + 6]
sub al, byte [esp + edx]
push ecx
push ss
sub ah, byte [edx]
add dl, byte [edi]
jge 0x524668
xor dword [eax], eax
add al, 0x2a
jae 0x5245ad
inc esp
add byte [esi], al
push es
and byte [esi + 0x31], 0
add al, 0x2a
inc esi
add ch, byte [eax]
dec eax
dec esp
add byte [esi], al
sub al, 7
add dh, byte [ebx + 0x44]
dec esp
add byte [esi], al
sub dl, byte [edx + ebp]
sahf
add edi, dword [ebx + 0x18]
add byte ss:[edi + ebp*2], al
js 0x524681
add byte [esi], al
sbb byte [esi], ch
pop ss
add edi, dword [ebx + 0x18]
add byte ss:[edi + ebp*2], al
js 0x52468f
add byte [esi], al
pop ss
xor eax, dword [edi]
add bh, byte [ebx + 0x6d]
insd dword es:[edi], dx
xor dword [eax], eax
add al, 0x2a
push ss
sub dl, byte [edi]
sub bh, byte [esi]
sub bl, ch
or eax, 0x62c0600
sub dl, dl
or eax, 0x162a0600
sub dl, byte [esi + 2]
sub byte [eax + eax], ah
or al, byte [edx]
add edi, dword [ebp + 0x74]
xor dword [eax], eax
add al, 2
add al, 0x7d
jne 0x52469d
add byte [edx + ebp], al
push ds
add bh, byte [ebx + 0x74]
xor dword [eax], eax
add al, 0x2a
push esi
add ch, byte [eax]
add byte fs:[eax], al
or al, byte [edx]
add edi, dword [ebp + 0x76]
jbe 0x5246b4
add byte [edx + eax], al
jnp 0x524709
pop ss
push eax
add eax, dword [eax + ebp]
add byte [esi], al