Function at 0x43784c
Capabilities:
Encode data using xor

Disassembly:
push eax
mov dword [0x7ded628f], eax
jl 0x43789d
lds edx, [eax + 0x72]
and eax, 0xa151d95c
insb byte es:[edi], dx
aas
sbb dword [edi + 0x26f49303], edx
ljmp 0x9ff9
inc ecx
push edi
push ds
daa
push edx
sahf
shr dword [ebp - 0x594db548], 1
fsubr qword [ebx + ebp*4 - 0x583f0aec]
xor esp, ecx
adc dh, byte ss:[esi + eax]
xor al, 6
mov byte [0x63cbb78], al
inc eax
mov al, byte [0xdd405701]
mov esi, 0xd925e791
popal
mov byte [0x5dd685a6], 0xb3
push esi
jnp 0x4378e4
mov dh, 0x5a
xor ebp, dword [esi]
or dh, bl
aad 0x20
push 0x8497499
adc al, 0x3a
adc byte [edx + edx*8], 0xf6
mov esi, 0x9fe4fdd6
idiv byte [esi - 0x601b022a]
mov ebx, 0xee4172d2
ror dword [eax], 1
inc edx
xchg esp, eax
scasb al, byte es:[edi]
pop ss
fidiv dword [esi]
mov dword [0x12d24d21], eax
lock and edx, dword [eax + 0x12636141]
movsb byte es:[edi], byte [esi]
ja 0x4378b4
and cl, cl
pop ebp
movsb byte es:[edi], byte [esi]
imul byte [edi - 6]
stosb byte es:[edi], al
je 0x437989
rcl byte [edx + ecx*8 + 0x74], 0xef
jae 0x43792b
cld
jp 0x437909
xor esi, dword [edx - 0x13]
and byte [0x72a2f8e3], bh
invalid
std
mov dl, 0x4e
sbb al, byte [esi]
xchg ebx, eax
in al, dx
mov byte [0x4b0994b4], al
mov byte [edx], al
cmp dh, byte fs:[0xfa12091a]
scasb al, byte es:[edi]
popfd
mov dh, 0xe7
xchg byte [0xa1d4fdab], bl
in eax, 0x91
push esi
mov bl, 0xb5
and al, 0x82
jp 0x437974
scasd eax, dword es:[edi]
inc esi
add al, byte [eax]
invalid
salc
mul dword [esi]
loop 0x4379ee
aad 0x2a
inc esp
pop edx
jnp 0x4379fb
jge 0x4379dc
mov cl, 0xb8
scasd eax, dword es:[edi]
pop ss
mov esp, ebx
invalid
int1
xchg edx, eax
ljmp 0x5f9
loop 0x4379c6
in al, dx
nop
mov dword [0x21f5c3f8], eax
inc esp
hlt
sub dword [ebx + 0x14], 0x30364d9a
xor eax, 0x82908f72
xor byte ss:[0x82908f72], dh
mov es, word [esi - 0x282c6753]
popal
cmc
salc
iretd
sbb al, 0xba
sub esp, edx
test dword [ebx + 0x572d450a], ebx
les esp, [ecx - 0x16]
push ss
push cs
jb 0x437a59
inc eax
mov ch, 0x45
jno 0x4379c4
mov byte [0x29d77c44], al
dec ebp
dec ecx
xchg ebx, eax
xor byte [eax + 0x7f], 0x12
das
test byte [esi + 0x6246340b], bl
dec edx
sbb byte [eax + 0x21], cl
and eax, 0xf8e9f630
mov al, byte [0xd1b0e46e]
xchg esp, eax
mov bl, 0xa0
xor esp, dword [edx]
mov cl, byte [ebx + 0x72f6fa14]
movsb byte es:[edi], byte [esi]
test byte [esi + 0x65], dh
dec si
sal byte [edx - 0xc], 1
xor dword [ebx], ebp
xchg edx, eax
pushal
push ebx
dec edx
movsb byte es:[edi], byte [esi]
popal
dec ecx
jae 0x437a87
jne 0x4379d7
retf 0xba00
jne 0x437a7f
xchg esp, eax
sbb dl, byte [esi - 0x6a]
jno 0x437a05
sahf
mov byte [0x8b5620c5], al
pushfd
mov bh, 0xab
rcr dword [ebp - 0x7358ec20], 0xa6
mov dh, 0xb0
lea eax, [edx + 0x1d]
push edi
test al, 0xe6
invalid
push esp
xor dword [edx + ebx*4 + 0x64a8e142], esi
mov ah, 0xf1
mov ah, 0xf1
leave
std
jns 0x437aa9
bnd ret
jbe 0x437ad8
mov word [eax + 0x72], fs
dec edi
fild qword [ebx + ecx*8 - 0x5b2cec58]
add eax, 0x53148e94
test al, 0x13
shl dword [ebp + eax + 0x53148e94], cl
loop 0x437b04
pop esp
test al, 0x63
bound ebp, qword [eax]
or eax, 0x2e3090f1
test byte ds:[eax], al
test byte ds:[eax], al
movsd dword es:[edi], dword [esi]
mov dh, 0x7f
xor eax, 0x8e600175
and eax, 0xfc97c614
jle 0x437abd
inc ecx
sbb dword [edi], ebp
test al, 0x8a
dec ebx
push esi
test byte [esi], dh
inc ebp
jnp 0x437a78
ficomp word [eax + esi*2 + 0x7e]
jo 0x437aa0
xlatb
dec ebx
and byte [edx - 0x42397317], 0x85
add esi, esp
movsd dword es:[edi], dword cs:[esi]
inc eax
push edi
add dword [ebp - 0x49], esi
sbb dword [ecx + 0x12844016], eax
dec esp
xor eax, 0xbe94717a
aam 0xdd
xchg edx, eax
xchg ecx, eax
pop esp
sahf
sti
sbb byte [ebx + edx*4 + 0x8c1157c], 0x27
inc eax
xchg edi, eax
xor al, 0xfc
sbb eax, 0x741809b
lea ebp, [ebp + 0x3c87f261]
popal
xacquire xchg dword [esp + edx*2], edi