Function at 0x476230
Capabilities:
Encode data using xor

Disassembly:
outsd dx, dword [esi]
insd dword es:[edi], dx
mov al, dh
add byte gs:[ebx + 0x10], bl
add bh, bh
loopne 0x476249
push es
add al, byte [ecx]
add byte [eax], al
add byte [eax + 0x800400], al
add al, byte [eax]
push ebp
enter 0x4105, 0x7c
add byte [ebp - 0x38], dl
add eax, 0x47697c41
push 1
adc byte [eax], al
imul eax, dword [edi + 0x6a], 0x401001
xor byte [ebx], al
test bh, bh
je 0x47624f
inc ebp
add byte [ecx], al
and byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], 0
add al, byte [eax]
push ss
add byte [esi], al
inc ecx
insb byte es:[edi], dx
jo 0x4762d9
popal
inc edx
insb byte es:[edi], dx
outsb dx, byte gs:[esi]
in al, 0x6d
adc byte [eax], al
and dword [ebx], eax
add byte [edi], bh
dec eax
inc edi
add byte [ecx], al
add al, 0
add byte [eax], al
add byte [eax], al
cmp bh, 0
add byte [edx], al
aaa
add byte [edi], cl
inc ecx
insb byte es:[edi], dx
jo 0x476302
popal
inc edx
insb byte es:[edi], dx
outsb dx, byte gs:[esi]
push esi
popal
insb byte es:[edi], dx
jne 0x47630a
xchg esp, eax
mov ebx, 0x210043
add bh, bh
xor al, 0xb
inc edi
adc byte [eax + 0xc], dl
add byte [eax], al
add byte [eax + 0x83], al
sbb dword [eax], eax
pop es
add esi, ebp
arpl word [eax + 0x6f], bp
jb 0x476336
add dl, byte [eax]
inc eax
and byte [eax + 2], ch
add bh, bh
xchg esi, eax
mov dword [edi + 4], eax
mov al, 0x9c
inc edi
add byte [eax], al
inc eax
mov byte [eax + 0x400000], al
adc dword [eax + 0xa], eax
pushal
jne 0x476355
inc eax
add byte [ecx], dl
inc eax
or ah, byte [eax + 0x75]
je 0x4762d1
out dx, eax
push ebx
arpl word [edx + 0x6f], si
jb 0x476355
in al, dx
insb byte es:[edi], dx
add byte [eax], dl
inc eax
add ah, bh
add byte [edi + edi*8], dl
pop esp
add dword [eax], eax
sti
add dword [edx], eax
add byte [eax], al
add dword [eax], eax
add byte [eax + 0x110], al
sbb al, byte [eax]
or al, 0x41
jne 0x47637a
outsb dx, byte [esi]
jae 0x476372
jp 0x476370
test dword fs:[ebp + 1], 0xff0000df
test dword fs:[ebp + 1], 0xff0000df
inc ebp
add edi, ebx
add byte [eax], al
push dword [eax]
jo 0x476315
add dh, bh
or al, 0x1c
inc edi
add byte [eax], dl
add byte [eax], al
mov byte [eax], dl
add byte [eax], al
mov al, byte [0x4208001b]
imul eax, dword [ecx + ebp*2 + 0x4d], 0x7c64646f
push eax
inc edi
add byte [eax + 0x747f2002], al
lodsb al, byte [esi]
je 0x4762e4
inc edi
add byte [eax - 0x4e], ah
inc edi
add byte [eax + eax], al
add dword [eax + 0x10c08007], eax
pushfd
add byte [ebx], cl
inc edx
outsd dx, dword [esi]
jb 0x476371
inc ebp
jb 0x476399
arpl word [edi + 0x6e], bp
jae 0x47630d
adc al, 0x47
inc eax
add dword [edx], 0xae70df00
inc edi
or byte [edx + esi*4 + 0x47], ah
add byte [eax], al
add byte [eax + 0x40000280], al
inc eax
sbb eax, 0x6f420b00
outsd dx, dword [esi]
jb 0x4763d7
jb 0x4763c9
jb 0x4763c9
je 0x4763f1
insb byte es:[edi], dx
movsb byte es:[di], byte [si]
movsb byte es:[edi], byte [esi]
int 0x47
add byte [eax + 0x8ff0005], dh
cmpsb byte [esi], byte es:[edi]
inc esi
add al, 1
add byte [eax], al
inc eax
add byte [eax], cl
add byte [eax + 0x40000], al
push ds
add byte [ecx], cl
inc edx
outsd dx, dword [esi]
jb 0x4763bd
jne 0x4763f5
push edi
imul esi, dword [ebp + esi*2 + 0x48], 0x45bb34
loopne 0x4763c0
inc esi
add byte [ecx], bl
sbb eax, dword [esi]
popal
pop es
add byte [eax + 0x8080a1], al
add byte [eax], al
xchg ecx, eax
pop ds
add al, 6
inc ebx
popal
jo 0x476433
imul ebp, dword [edi + 0x6e], 0x401054
outsd dx, dword [esi]
outsb dx, byte [esi]
push esp
adc byte [eax], al
inc esp
adc al, 0x66
add byte [edi + ebx*4 + 0x47], ah
add byte [eax - 0x64], bh
inc edi
add byte [eax], al
add al, byte [eax + eax*4]
add dword [eax], ebp
add al, al
and byte [eax + 0x696c430c], al
outsb dx, byte gs:[esi]
je 0x47642c
sub byte [eax], al
shl byte [eax], 0x80
or al, 0x43
insb byte es:[edi], dx
imul esp, dword [ebp + 0x6e], 0x6d654874
insd dword es:[edi], dx
push 0x46105474
inc esi
and al, 0x20
push esp
add byte [eax], dh
lahf
inc edi
or byte [eax - 0x64], bh
xor byte [edi - 0x6387f7b9], bl
js 0x476393
inc ebp
add byte [eax], cl
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x430b0021], al
insb byte es:[edi], dx
imul esp, dword [ebp + 0x6e], 0x74
push edi
imul esp, dword [esp + esi*2 + 0x48], 0x2634690
insb byte es:[edi], dx
add byte [eax], al
call [eax - 0x7fbfb9e4]
sbb al, 0x46
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x42050022], al
imul ebp, dword [edi + ebp*2 + 0x72], 0
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x476430
adc byte [eax], al
pop eax
add al, byte [eax]
push dword [eax - 0x15]
inc edi
add byte [ecx], al
add byte [eax], al
add dl, byte [eax]
add byte [ecx], al
add byte [eax], dl
add byte [eax + eax], al
and ecx, dword [eax]
push eax
push esp
jp 0x4764ae
out dx, al
jnp 0x4764c0
popal
jo 0x4764b8
je 0x476499
outsd dx, dword [esi]
outsd dx, dword fs:[esi]
jb 0x4763eb
inc esi
inc ebx
add byte [ebx + ecx], bl
invalid
add byte [eax], al
add al, 0x10
test byte [eax], bl
add byte [eax], al
and byte [0x6d430300], 0x6e
jae 0x476520
jbe 0x47650d
imul ebp, dword [esi + 0x74], 0x40100073
je 0x476523
add byte [eax], dl
inc eax
add cl, ah
add dword [eax], 0x44a6b8ff
add ah, bh
mov eax, 0xfc0044a6
lodsb al, byte [esi]
add byte [edx], al
add byte [eax], al
add eax, 0x4000188
add byte [esi], dh
add byte [0x3f6e7443], al
add al, 8
adc byte [eax + 0x10], al
loop 0x4764d7
adc dl, ah
add dword [eax], eax
add bh, bh
sbb byte [esi + eax*2 + 0x4140], ch
call [eax]
lodsb al, byte [esi]
inc esi
inc eax
inc ecx
add byte [eax], al
add ah, byte [edx]
add byte [eax + 0x10002], al
daa
and byte [esi], cl
inc ebp
jae 0x4764d3
inc esp
outsd dx, dword [esi]
arpl word [ebx + 0x4d], bp
popal
outsb dx, byte [esi]
popal
jb 0x476526
pop ecx
inc edi
add byte [ecx - 0x7600fffe], bl
or al, byte [eax]
jmp dword [eax - 0x4e]
add eax, dword [eax]
add byte [eax], al
sub byte [eax], al
push cs
inc esp
and word gs:[ebp - 0x14], si
je 0x476569
outsd dx, dword [esi]
outsb dx, byte [esi]
imul esi, dword [edi + ebp*2 + 0x72], 0x401000
outsd dx, dword [esi]
jb 0x476523
adc byte [eax], al
in al, 0
add bh, bh
les ecx, [esi + 0x1005e]
inc edx
add al, byte [eax]
add byte [eax], al
add byte [ecx], ch
add byte [eax], cl
inc esp
outsd dx, dword [esi]
arpl word [ebx + 0x53], cx
popal
je 0x4765aa
add byte [eax], dl
inc eax
add byte [edx + eax], dl
idiv dword [edi + ebx*4 + 0x46]
nop
call fcn.00476bfc
or byte [eax], al
enter 0, 0
add ch, byte [edx]
add byte [esi], cl
inc esp
outsd dx, dword [esi]
jne 0x4765c6
insb byte es:[edi], dx
inc edx
jne 0x4765cf
popaw
jb 0x4765d2
invalid
add byte [esp + eax*2], dl
add al, al
add dword [eax], eax
add byte [eax], al
sub eax, 0x6e450700
inc ebp
outsb dx, byte [esi]
popal
jb 0x476640
adc dl, byte fs:[eax]
inc eax
add byte [ecx], bl
inc eax
call dword [esp + ebx + 0x46]
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [edx], al
scasb al, byte es:[edi]
xchg edx, eax
mov dl, byte [ecx + 0x72]
outsd dx, dword gs:[esi]