Function at 0x477dda
Capabilities:
Encode data using xor

Disassembly:
add bl, ch
and esp, esi
jnp 0x477e1f
sbb al, byte [edi]
dec esp
push edi
mov eax, dword [0x2a451775]
sbb byte [ecx + 0x7b66e655], ch
out dx, eax
mov ebx, 0xeebbff84
dec edi
mov al, 0xb0
xor edx, dword [eax + 0x77]
cmp dword [ecx - 7], esp
sbb byte [edx], dl
mov ch, 0x1e
xchg ecx, eax
leave
push 0x5b
or edx, dword [esi - 0x44]
outsb dx, byte [esi]
sbb byte [edx + 0x6091e435], cl
mov ah, 0x1e
xchg ebp, eax
inc ebp
cmp eax, dword [esi + 0x79]
sal byte [esi + ebp*4], cl
push cs
xor ch, byte [edx]
salc
xchg esp, eax
inc esi
mov dh, 0x1b
add dword [ebp + 0x34], edx
push ds
loopne 0x477d9a
add dword [ebx - 0x1f], 0x105b3146
or edi, dword [edx]
mov dh, 0xe5
shl dword [ebx*8 - 0x64ceb885], 1
lea edi, [edx + 0x4adde675]
xor al, 0x2e
sbb byte [edi + 0x4786de39], cl
scasd eax, dword es:[edi]
xchg edx, eax
sbb byte [ecx + 0x34], cl
push ds
sbb cl, al
xor eax, 0xb4985c86
invalid
dec edx
xchg ebp, eax
pop ss
and edi, ebx
dec edi
dec edi
and al, 0x10
inc esi
xor cl, bh
test al, 0xac
mov esp, 0x34091065
push edx
dec esi
inc edi
and dword [ebp + ecx*4 - 0x46], ebx
cmp ebx, esp
outsb dx, byte [esi]
inc esi
inc ecx
pop ebx
lea ecx, [ecx - 7]
dec ecx
stc
pop esp
mov esi, 0xe63c1c95
xor esi, esi
push ds
loop 0x477e31
sbb eax, 0x644eeae7
and al, 0xf3
sar dword [edi - 0xd], 1
dec ecx
jl 0x477ed1
dec ecx
jl 0x477ed7
adc byte [edx], cl
inc edx
fiadd word [esi - 0x218c50b9]
inc ebp
cmpsd dword [esi], dword es:[edi]
imul ecx, dword [esp + edi*4 + 0x5675ae3d], 0x31
pop ebx
lea esp, [ecx - 0x606ae04c]
jp 0x477e68
push eax
dec edi
sbb al, 0x3f
sbb byte [edi + ecx*4], ch
push ds
loop 0x477e65
sbb eax, 0xbc4eeae7
sahf
xchg ecx, eax
ror dword [esi + 0x31473667], 1
pop ebx
or eax, 0x25a44bb
push edi
test byte [eax - 0x24ceb974], al
nop
push ds
test dword [ebx + 0x35], eax
inc esi
xor dword [ebx + 0x78], ebx
sbb eax, 0x92183335
xor eax, 0xbc49761c
jbe 0x477e53
mov dword [0x4786de41], eax
scasd eax, dword es:[edi]
pop ds
push cs
jb 0x477e8b
mov eax, dword [0x1eb4a1be]
push ds
xchg ecx, eax
invalid
adc byte [eax], al
add byte [eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + 0x5a000d31], cl
mov dh, byte [ecx]
or eax, 0xd315a00
pop edx
xor dword [0xd316800], ecx
push 0x78000d31
js 0x47803f
or eax, 0xd3bb200
mov dl, 0x3b
or eax, 0
add byte [ecx], dl
adc dword [eax], eax
add byte [eax + reloc.COMCTL32.dll_ImageList_Destroy], al
pop esi
xor cl, byte [0]
add byte [edx], ah
and bh, byte [edx]
or eax, 0xd2fae00
scasb al, byte es:[edi]
das
or eax, 0xd2f9600
xchg esi, eax
das
or eax, 0xd2f8200
sub byte [edi], 0xd
add byte [edi + ebp + 0xd], dh
je 0x478065
or eax, 0xd2f6000
pushal
das
or eax, 0xd2f5000
push eax
das
or eax, 0xd2f4000
inc eax
das
or eax, 0xd2f2e00
das
or eax, 0xd2f1400
adc al, 0x2f
or eax, 0xd2f0400
add al, 0x2f
or eax, 0xd2ef600
imul byte [esi]
or eax, 0xd2ee600
out 0x2e, al
or eax, 0xd2ed400
aam 0x2e
or eax, 0xd2ec800
enter 0xd2e, 0
mov dh, 0x2e
or eax, 0xd2ea200
mov byte [0x90000d2e], al
nop
or eax, 0xd2e8400
test byte [esi], ch
or eax, 0xd2e7a00
jp sym.imp.GDI32.dll_CreateBitmap
or eax, 0xd2e6a00
push 0x2e
or eax, 0xd2e5600
push esi
or eax, 0xd2e4000
inc eax
or eax, 0xd2e3000
xor byte [esi], ch
or eax, 0xd2e2400
and al, 0x2e
or eax, 0xd2e1600
push ss
or eax, 0xd2e0c00
or al, 0x2e
or eax, 0xd2df800
clc
sub eax, 0x2de6000d
out 0x2d, al
or eax, 0xd2dcc00
int3
sub eax, 0x2dc0000d
shr byte [0x2db0000d], 0xd
mov al, 0x2d
or eax, 0xd2da000
mov al, byte [0x94000d2d]
xchg esp, eax
sub eax, 0x2d8a000d
mov ch, byte [0x2d80000d]
sub byte [0x2d70000d], 0xd
jo 0x4780e3
or eax, 0xd2d6200
bound ebp, qword [0x2d4e000d]
dec esi
sub eax, 0x2d38000d
cmp byte [0x2d26000d], ch
sub eax, 0x2d18000d
sbb byte [0x2d0e000d], ch
push cs
sub eax, 0x2d04000d
add al, 0x2d
or eax, 0xd2cf800
clc
sub al, 0xd
add ah, ch
in al, dx
sub al, 0xd
add al, ah
loopne 0x47810a
or eax, 0xd2cd600
salc
sub al, 0xd
add al, al
shr byte [ecx + 0xd2cb600], 0
mov dh, 0x2c
or eax, 0xd2caa00
stosb byte es:[edi], al
sub al, 0xd
add byte [eax - 0x69fff2d4], ah
mov al, byte [0x96000d2c]
xchg esi, eax
sub al, 0xd
add byte [edx + 0x76000d2c], al
sub byte [ecx + 0xd2c7600], 0
jbe 0x47812a
or eax, 0xd2c5e00
pop esi
sub al, 0xd
add byte [esi + 0x2c], cl
dec esi
sub al, 0xd
add dh, al
invalid
cmp dword [0xd39d000], ecx
sar byte [ecx], 1
or eax, 0xd39dc00
fdivr qword [ecx]
or eax, 0xd39e800
call 0xfa478e52
cli
cmp dword [0xd3a0400], ecx
add al, 0x3a
or eax, 0xd3a1400
adc al, 0x3a
or eax, 0xd3a3600
cmp cl, byte ss:[0xd3a4c00]
dec esp
cmp cl, byte [0xd3a6000]
pushal
cmp cl, byte [0xd3a7600]
jbe 0x47816c
or eax, 0xd3a8800
mov byte [edx], bh
or eax, 0xd3a9a00
lcall 0xd3a, 0xae000d3a
scasb al, byte es:[edi]
cmp cl, byte [0xd3abc00]
mov esp, 0xce000d3a
into
cmp cl, byte [0xd3ada00]
fidivr dword [edx]
or eax, 0xd3b4a00
dec edx
cmp ecx, dword [0xd3b4000]
inc eax
cmp ecx, dword [0xd3b3200]
xor bh, byte [ebx]
or eax, 0xd3b2600
cmp ecx, dword es:[0xd3b1800]
sbb byte [ebx], bh
or eax, 0xd3b0c00
or al, 0x3b
or eax, 0xd3af800
clc
cmp cl, byte [0xd3ae400]
in al, 0x3a
or eax, 0
add byte [ecx], dh
xor al, 0x21
or eax, 0xd214400
inc esp
and dword [0xd253c00], ecx
cmp al, 0x25
or eax, 0xd252600
and eax, 0x250e000d
push cs
and eax, 0x24f8000d
clc
and al, 0xd
add dl, ch
ljmp 0xd24
shl byte [ecx + 0xd24c200], cl
ret 0xd24
add byte [edx - 0x69fff2dc], ch
stosb byte es:[edi], al
and al, 0xd
add byte [esi - 0x7bfff2dc], dl
xchg esi, eax
and al, 0xd
add byte [esp + 0x212c000d], al
test byte [ecx + 0xd212c00], ah
sub al, 0x21
or eax, 0xd368a00
mov dh, byte [esi]
or eax, 0xd367a00
jp sym.imp.KERNEL32.dll_HeapDestroy
or eax, 0xd366a00
push 0x36
or eax, 0xd365800
pop eax
or eax, 0xd364600
inc esi
or eax, 0xd362800
sub byte [esi], dh
or eax, 0xd361600
push ss
or eax, 0xd360400
add al, 0x36
or eax, 0xd35f400
hlt
xor eax, 0x35e4000d
in al, 0x35
or eax, 0xd35d400
aam 0x35
or eax, 0xd35c400
les esi, [0x35aa000d]
stosb byte es:[edi], al
xor eax, 0x359c000d
pushfd
xor eax, 0x358e000d
invalid
xor eax, 0x3580000d
xor byte [0x3566000d], 0xd
xor ax, 0xd
push esi
xor eax, 0x3544000d
inc esp
xor eax, 0x352a000d
sub dh, byte [0x3512000d]
adc dh, byte [0x34f8000d]
clc
xor al, 0xd
add dh, bl
fidiv word [ecx + 0xd34c200]
ret 0xd34
add byte [eax - 0x53fff2cc], bh
mov eax, 0xac000d34
lodsb al, byte [esi]
xor al, 0xd
add byte [eax - 0x77fff2cc], bl
cwde
xor al, 0xd
add byte [eax + 0x6e000d34], cl
mov byte [ecx + 0xd346e00], dh
outsb dx, byte [esi]
xor al, 0xd
add byte [esp + esi + 0xd], bl
pop esp
xor al, 0xd
add byte [eax + 0x34], dl
push eax
xor al, 0xd
add byte [esi], bh
xor al, 0xd
add byte [edx], dh
xor dh, byte [ecx + 0xd342600]
xor al, 0xd
add byte [edx], dl
adc dh, byte [ecx + 0xd340200]
add dh, byte [ecx + 0xd33f400]
hlt
xor ecx, dword [0xd33e000]
loopne 0x47826d
or eax, 0xd33d200
sal byte [ebx], cl
or eax, 0xd33c400
les esi, [ebx]
or eax, 0xd33b400
mov ah, 0x33
or eax, 0xd33a600
cmpsb byte [esi], byte es:[edi]
xor ecx, dword [0xd339c00]
pushfd
xor ecx, dword [0xd338c00]
invalid
xor ecx, dword [0xd247600]
jbe 0x47827a
or eax, 0xd246800
push 0x56000d24
push esi
and al, 0xd
add byte [esp], bh
cmp al, 0x24
or eax, 0xd242400
and al, 0x24
or eax, 0xd241800
sbb byte [ecx + 0xd240c00], ah
or al, 0x24
or eax, 0xd240000
add byte [ecx + 0xd23ee00], ah
out dx, al
and ecx, dword [0xd23da00]
fisub dword [ebx]
or eax, 0xd23ca00
retf 0xd23
add byte [esi - 0x61fff2dd], dh
mov dh, 0x23
or eax, 0xd239e00
sahf
and ecx, dword [0xd238600]
xchg byte [ebx], ah
or eax, 0xd237200
jb 0x4782b1
or eax, 0xd236600
and cx, word [0xd235a00]
pop edx
and ecx, dword [0xd234a00]
dec edx
and ecx, dword [0xd233000]
xor byte [ebx], ah
or eax, 0xd232200
and ah, byte [ebx]
or eax, 0xd231600
push ss
and ecx, dword [0xd230600]
push es
and ecx, dword [0xd22f600]
mul byte [edx]
or eax, 0xd22e600
out 0x22, al
or eax, 0xd22d000
shl byte [edx], 1
or eax, 0xd22ba00
mov edx, 0xac000d22
lodsb al, byte [esi]
and cl, byte [0xd229e00]
sahf
and cl, byte [0xd229000]
nop
and cl, byte [0xd227800]
js sym.imp.KERNEL32.dll_GetProcessHeap
or eax, 0xd225c00
pop esp
and cl, byte [0xd225000]
push eax
and cl, byte [0xd224600]
inc esi
and cl, byte [0xd223a00]
cmp ah, byte [edx]
or eax, 0xd222a00
sub ah, byte [edx]
or eax, 0xd221a00
sbb ah, byte [edx]
or eax, 0xd220e00
push cs
and cl, byte [0xd220000]
add byte [edx], ah
or eax, 0xd21ee00
out dx, al
and dword [0xd21e200], ecx
loop 0x478313
or eax, 0xd21cc00
int3
and dword [0xd21b800], ecx
mov eax, 0xaa000d21
stosb byte es:[edi], al
and dword [0xd219a00], ecx
lcall 0xd21, 0x8e000d21
mov fs, word [ecx]
or eax, 0xd218200
and byte [ecx], 0xd
add byte [edx + 0x21], dh
jb 0x47832f
or eax, 0xd215400
push esp
and dword [0xd338000], ecx
xor byte [ebx], 0xd
add byte [edx + 0x33], dh
jb 0x47834d
or eax, 0xd336400
xor ecx, dword fs:[0xd334e00]
dec esi
xor ecx, dword [0xd333c00]
cmp al, 0x33
or eax, 0xd332a00
sub dh, byte [ebx]
or eax, 0xd331600
push ss
xor ecx, dword [0xd330600]
push es
xor ecx, dword [0xd32f800]
clc
xor cl, byte [0xd32ec00]
in al, dx
xor cl, byte [0xd32d800]
fdiv dword [edx]
or eax, 0xd32c800
enter 0xd32, 0
mov esp, 0xa4000d32
movsb byte es:[edi], byte [esi]
xor cl, byte [0xd328c00]
invalid
xor cl, byte [0xd211e00]
push ds
and dword [0xd211000], ecx
adc byte [ecx], ah
or eax, 0xd210000
add byte [ecx], ah
or eax, 0xd20f000
lock and byte [0xd20de00], cl
fisub word [eax]
or eax, 0xd20d200
shl byte [eax], cl
or eax, 0xd20bc00
mov esp, 0xa6000d20
cmpsb byte [esi], byte es:[edi]
and byte [0xd209800], cl
cwde
and byte [0xd208400], cl
test byte [eax], ah
or eax, 0xd206c00
insb byte es:[edi], dx
and byte [0xd205400], cl
push esp
and byte [0xd1fb400], cl
mov ah, 0x1f
or eax, 0xd203c00
cmp al, 0x20
or eax, 0xd202800
sub byte [eax], ah
or eax, 0xd201600
push ss
and byte [0xd200c00], cl
or al, 0x20
or eax, 0xd1ffa00
cli
pop ds
or eax, 0xd1fea00
ljmp 0xd1f
fcomp dword [edi]
or eax, 0xd1fc200
ret 0xd1f
add byte [eax], al
add byte [eax], al
add byte [ecx], cl
or dword [eax], eax
add byte [eax - 0x7ffffff4], al
or al, 0
add byte [eax - 0x7ffffff5], al
or eax, dword [eax]
add byte [eax - 0x7ffffff8], al
or byte [eax], al
invalid
invalid