Function at 0x44957c
Capabilities:
Encode data using xor

Disassembly:
jbe 0x4495e3
insb byte es:[edi], dx
dec edi
jne 0x4495f6
jb 0x449601
jbe 0x4495ca
add ah, bh
add dword [eax], eax
push dword [esi + edx*2]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
str word [edx]
inc edx
jbe 0x449608
insb byte es:[edi], dx
push edi
imul esp, dword [esp + esi*2 + 0x68], 0x44ef6c
dec edi
add byte [eax], al
jmp [eax]
and byte gs:[esi + 0x43], dh
add byte [eax], al
add al, byte [eax]
call dword [eax + 0x56]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc dword [eax], eax
or eax, dword [edx + 0x6f]
add byte [ecx], dl
add byte [ebx], cl
inc edx
outsd dx, dword [esi]
jb 0x44964f
jb 0x449645
imul esp, dword [esp + esi*2 + 0x68], 0x427d9c
add al, 2
add bh, bh
insb byte es:[edi], dx
push esi
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc al, byte [eax]
or eax, dword [edx + 0x6f]
jb 0x449675
invalid
jb 0x449667
je 0x44968f
insb byte es:[edi], dx
cmp byte gs:[edx + 0x43], ch
add byte [edx + esi*4 + 0x43], al
add byte [edx + esi*4 + 0x43], dh
add byte [esi + ecx*8 + 0x43], dh
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x43070013], al
popal
jo 0x4496ab
imul ebp, dword [edi + 0x6e], 0x41dfa8
pushal
add byte [eax], al
call eax
mov bl, 0x43
add ah, ch
mov bl, 0x43
add byte [eax], al
add byte [eax], al
or byte [edi], 0
add byte [eax + 0x43050014], al
add byte [eax], al
adc byte [eax + eax], 5
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x44968b
imul eax, dword [ebx], 0x64
add byte [eax], al
jmp dword [eax + eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x430b0015], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
jae 0x4496ee
jb 0x4496dd
imul ebp, dword [esi + 0x74], 0x45f1e873
add byte [eax], bh
add dword [eax], eax
call [esp + edx + 0x44]
add byte [eax + 0x4414], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x43050016], al
je 0x44970a
xor eax, dword [eax + ebp*8 - 0xf]
inc ebp
add byte [ecx + eax], bh
jmp [eax + 0x1004415]
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
add byte [eax + 1], al
pop ss
add byte [esi], cl
push ebp
jae 0x449723
inc esp
outsd dx, dword [esi]
arpl word [ebx + 0x4d], bp
popal
outsb dx, byte [esi]
popal
jb 0x4496b2
int1
inc ebp
add byte [ecx + eax], al
call dword [eax - 3]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
sbb byte [eax], al
or byte [edi + ebp*2 + 0x63], al
imul edx, dword [ebx + 0x69], 0x74
fsub qword gs:[ebp + 0x43]
inc ebx
add byte [edx], ch
add bh, bh
push 0
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0xc], al
sbb dword [eax], eax
or al, byte [edx + esi*2 + 0x61]
inc ebx
jne 0x449780
jae 0x44977f
jb 0x449706
imul eax, dword [ebx], 0xff00008b
mov eax, dword [eax]
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb al, byte [eax]
or byte [edx + esi*2 + 0x61], al
dec ebx
imul ebp, dword [esi + 0x64], 0x4369c0
dec ebp
add byte [eax], al
call [eax]
add dh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb eax, dword [eax]
or byte [edx + esi*2 + 0x61], al
dec ebp
outsd dx, dword [esi]
call 0x4c44dd4d
add byte [eax], al
invalid
add bh, bh
add eax, 0x1ff0002
inc dword [0x1ff0002]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
sbb eax, 0x75460b00
insb byte es:[edi], dx
insb byte es:[edi], dx
push edx
jo 0x4497fd
imul ebp, dword [esi + 0x74], 0x41e2f8
pop eax
add byte [eax], al
push dword [eax]
mov bl, 0x43
add byte [eax - 0x4d], al
xor byte [ebx - 0x4cbfffbd], dh
inc ebx
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4604001e], al
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x4497a7
int1
inc ebp
add byte [esi], al
add al, byte [eax]
inc dword [esi]
add al, byte [eax]
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
pop ds
add byte [esi], al
dec esp
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
call 0x5044ddd5
add byte [eax], al
jmp dword [eax + eax]
outsb dx, byte gs:[esi]
je 0x449843
imul eax, dword [ecx + ebp*2 + 0x4d], 0xe865646f
int1
inc ebp
add byte [edx], cl
add bh, bh
hlt
add byte [eax], al
add byte [edx], ah
add byte [ebx], cl
push eax
popal
jb 0x4498b2
outsb dx, byte [esi]
je 0x449893
je 0x4498be
xor eax, dword [eax + ebp*8 - 0xf]
inc ebp
add byte [ecx], cl
add bh, bh
push 0x10043b3
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
inc esp
call 0x4944de4a
add byte [eax], al
jmp [eax - 0x4d]
add byte [eax], al
add byte [eax], al
add byte [eax + 1], al
and eax, dword [eax]
or dl, byte [eax + 0x61]
jb 0x4498d8
outsb dx, byte [esi]
je 0x4498bc
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x449862
int1
inc ebp
add byte [edx - 0x53010000], cl
mov bl, 0x43
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
and al, 0
push cs
push eax
popal
jb 0x4498fd
outsb dx, byte [esi]
je 0x4498ee
push 0x6948776f
outsb dx, byte [esi]
je 0x449853
xchg dword [ecx], eax
insb byte es:[edi], dx
add byte [eax], al
invalid
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x50090025], al
add byte [eax], al
add byte [eax - 0x80000000], al
and eax, 0x6f500900
or dword [eax + 0x6f], edx
outsd dx, dword [esi]
jo 0x449936
jo 0x449910
outsb dx, byte gs:[esi]
jne 0x4498af
int1
inc ebp
add byte [ecx - 0x77010000], cl
mov bl, 0x43
add byte [ebx + esi*4 + 0x43], dl
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x53080026], al
add byte [eax - 0x80000000], al
add byte es:[eax], cl
push ebx
push 0x6948776f
outsb dx, byte [esi]
adc al, 0x44
add byte [eax], dh
je 0x449913
add bh, bh
dec eax
adc eax, 0x10044
add byte [eax], al
add byte [eax], al
add byte [eax], al