Function at 0x407a58
Capabilities:
Encode data using xor

Disassembly:
pop es
adc dword [ebx + eax*2 + 0x70], edx
jo 0x407ab6
bound eax, qword gs:[edx + 0x72]
outsd dx, dword [esi]
ja 0x407ad9
jb 0x407ac8
push esi
xor dword [eax], ebx
or byte [esi], cl
inc eax
loop 0x407ab9
add byte [ebx], ch
add byte [0x74696e55], al
xor dword [eax], esp
add byte [eax - 0x5bffbf80], dh
add dword [eax], eax
call [eax + 0x1004b69]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
or eax, dword [eax]
pop es
push esp
popal
bound edx, qword [ebx + 0x74]
outsd dx, dword [esi]
jo 0x407a74
add byte [eax], 0x5b
add byte [eax], al
jmp eax
add byte [eax + eax], cl
add eax, 0x67696c41
outsb dx, byte [esi]
outsb dx, byte [si]
sub al, 0x81
inc eax
add byte [edx], bh
add bh, bh
jp 0x407ac9
add byte [eax], al
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ah, 0xff
invalid
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0xc], al
or eax, 0x72440a00
popal
or al, byte [edx + esi*2 + 0x61]
inc ebx
jne 0x407b53
jae 0x407b52
jb 0x407b29
add dword [eax], 0xff00005d
pushal
add byte [eax], al
inc byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
push cs
add byte [eax], cl
inc esp
jb 0x407b63
dec ebp
outsd dx, dword [esi]
mov al, 0x80
inc eax
add byte [edx + 0x68ff0000], bl
add byte [ebx], cl
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 1], al
str word [esi]
push eax
popal
jb 0x407b8b
outsb dx, byte [esi]
je 0x407b7c
push 0x6948776f
outsb dx, byte [esi]
je 0x407abd
sbb ecx, dword [eax]
jl 0x407b36
add bh, bh
lodsb al, byte [esi]
dec byte [edx]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
adc byte [eax], al
or dword [eax + 0x6f], edx
push eax
outsd dx, dword [esi]
jo 0x407bc4
jo 0x407b9e
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
jne 0x407b05
add byte [eax], 0x99
add byte [eax], al
inc dword [eax + eax + 0x4b]
add byte [eax + eax], cl
dec ebx
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc dword [eax], eax
or byte [ebx + 0x68], dl
outsd dx, dword [esi]
ja 0x407bbc
imul ebp, dword [esi + 0x74], 0x40817c
add byte [ecx + 0x4b], ch
add byte [eax + 0x1004b69], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
cmp bh, 0xff
invalid
imul ecx, dword [ebx], 0x4b6980
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 1], al
adc al, byte [eax]
or byte [ecx + 0x62], dl
dec edi
jb 0x407bfc
jb 0x407b4b
jb 0x407b4b
add byte [eax], 0x57
push edi
add byte [eax], al
call dword [esi + edi*8]
dec edx
add byte [edi + ebx + 0x4b], bh
add byte [eax + 1], al
adc eax, dword [eax]
pop es
push esi
imul esi, dword [ebx + 0x69], 0x90656c62
insb byte es:[edi], dx
nop
nop
add dword [eax], 0xff0000e8
call 0x23f7bc9
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc al, 0
or cl, byte [edi + 0x6e]
inc esp
jb 0x407c3d
inc esp
jb 0x407c4f
jo 0x407bba
add dword [eax], 0xff0000f0
lock add byte [eax], al
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc eax, 0x6e4f0a00
dec edi
outsb dx, byte [esi]
inc esp
jb 0x407c62
dec edi
jbe 0x407c6a
jb 0x407b97
add dword [eax], 0xff000118
sbb byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
push ss
add byte [ecx], cl
dec edi
outsb dx, byte [esi]
inc ebp
outsb dx, byte [esi]
inc esp
jb 0x407c8a
inc eax
add byte [eax], 0xc0
add dword [eax], eax
inc eax
add dword [eax], 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 ss
add byte [edi], al
dec edi
outsb dx, byte [esi]
inc ebp
outsb dx, byte [esi]
je 0x407cb0
jb 0x407c8d
add byte [eax], 0xc8
add al, cl
add dword [eax], eax
dec eax
add dword [eax], eax
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
sbb byte [eax], al
push es
dec edi
outsb dx, byte [esi]
inc ebp
js 0x407cd5
je 0x407cce
add byte [eax], 0x10
add dword [eax], eax
call dword [eax]
add dword [eax], eax
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
sbb dword [eax], eax
or ecx, dword [edi + 0x6e]
push ebx
je 0x407cee
jb 0x407d03
inc esp
jb 0x407cf3
cwde
add byte [eax], 0x68
add al, byte [eax]
jmp [eax + 2]
inc edx
outsw dx, word gs:[esi]
jb 0x407d1b
dec esi
popal
jbe 0x407d23
popal
je 0x407d23
sbb al, 0x83
inc eax
add byte [eax + 2], dh
add bh, bh
jo 0x407cca
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb eax, dword [eax]
adc cl, byte [edi + 0x6e]
add byte [ebx], bl
add byte [edx], dl
dec edi
outsb dx, byte [esi]
dec esi
popal
jbe 0x407d48
popal
je 0x407d48
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x407d54
je 0x407d50
sbb al, 0x83
inc eax
add byte [eax + 2], bh
add bh, bh
js 0x407cf7
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb al, 0
adc cl, byte [edi + 0x6e]
push ebx
je 0x407d6c
je 0x407d82
jae 0x407d63
js 0x407d86
inc ebx
push 0x65676e61
dec eax
add dword [eax], 0xffffff80
add al, byte [eax]
inc dword [eax + 0x1ff0002]
add byte [eax - 0x7f00fffe], al
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
sbb eax, 0x6e4f1000
push eax
jb 0x407da7
jb 0x407da0
jae 0x407db0
inc ebx
push 0x65676e61
inc eax
add byte [eax], 0x88
add al, byte [eax]
dec dword [eax + 0x1ff0002]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
push ds
add byte [edx], dl
dec edi
outsb dx, byte [esi]
inc esp
outsd dx, dword [esi]
ja 0x407dd2
outsb dx, byte [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x407dd9
insb byte es:[edi], dx
je 0x407dd5
mov word [ebx + 0x2900040], es
add bh, bh
nop
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
add byte [eax], al
pop ds
add byte [edi + ecx*2], dl
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
push ebx
je 0x407df8
je 0x407dfe
inc ebx
push 0x65676e61
inc eax
add byte [eax], 0x98
add al, byte [eax]
call [eax + 0x1ff0002]
cwde
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
and byte [eax], al
cmovg ebp, dword [esi + 0x44]
outsd dx, dword [esi]
ja 0x407e2e
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
inc edx
imul ebp, dword gs:[bp - 0x68], 0xa0004082
add al, byte [eax]
jmp dword [eax + 0x1ff0002]
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
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
and dword [eax], eax
or ecx, dword [edi + 0x6e]
dec esi
ja 0x407e41
imul ebp, dword [esi + 0x64], 0x831c776f
inc eax
add byte [eax - 0x5700fffe], ch
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
and al, byte [eax]
or eax, 0x69546e4f
je 0x407e7c
inc ebx
push 0x65676e61
cwde
add byte [eax], 0xb0
add al, byte [eax]
push dword [eax + 0x1ff0002]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
and eax, dword [eax]
adc eax, 0x72466e4f
add byte [ebx], ah
add byte [0x72466e4f], dl
popal
insd dword es:[edi], dx
inc edx
outsw dx, word gs:[esi]
jb 0x407ea4
dec esi
popal
jbe 0x407eac
popal
je 0x407eac
sbb al, 0x83
inc eax
add byte [eax - 0x4700fffe], bh
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
and al, 0
pop ss
dec edi
outsb dx, byte [esi]
inc esi
jb 0x407ec8
insd dword es:[edi], dx
dec esi
popal
jbe 0x407ed6
popal
je 0x407ed6
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x407ee2
je 0x407ede
cwde
add byte [eax], 0xc0
add al, al
add al, byte [eax]
inc eax
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
and eax, 0x6e4f1000
inc esi
jb 0x407efa
insd dword es:[edi], dx
dec esi
ja 0x407ef6
imul ebp, dword [esi + 0x64], 0x83d0776f
inc eax
add al, cl
add al, byte [eax]
dec eax
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
rol byte [ebx + 0x2c80040], 1
add bh, bh
enter 2, 0xffffffffffffffff
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte es:[esi], al
dec edi
outsb dx, byte [esi]
push ecx
jne 0x407f2d
je 0x407f06
add byte [eax], 0xd0
add al, dl
add al, byte [eax]
call eax
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
daa
add byte [edi + ecx*2], cl
outsb dx, byte [esi]
push edi
imul ebp, dword [esi + 0x64], 0x6f4d776f
jbe 0x407f51
inc eax
add byte [eax], 0xd8
add al, byte [eax]
invalid
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sub byte [eax], al
push cs
dec edi
outsb dx, byte [esi]
push edi
imul ebp, dword [esi + 0x64], 0x6552776f
jae 0x407f7c
jp 0x407f7a
inc eax
add byte [eax], 0xe0
add al, byte [eax]
jmp eax
sub dword [eax], eax
adc byte [edi + 0x6e], cl
push edi
imul ebp, dword [esi + 0x64], 0x6341776f
je 0x407fa5
jbe 0x407f9f
je 0x407fa5
sbb al, 0x83
inc eax
add al, ch
add al, byte [eax]
invalid
add byte [eax], al
add byte [eax], 0
add byte [eax], al
sub al, byte [eax]
adc byte [edi + 0x6e], cl
push eax
jb 0x407fcf
jo 0x407fc7
jb sym.ALKATIP55.exe__Shdocvw_tlb_TCppWebBrowser_V1__bctr_qqrp18Classes_TComponent
jns 0x407fa9
push 0x65676e61
nop
push ebp
mov ebp, esp
add esp, 0xffffffd0
call fcn.004ddd19
mov byte [ebp - 0x29], dl
mov dword [ebp - 0x28], eax
mov eax, 0x4e0ac0
fdivr dword [eax + 0x4e0ac0]
call fcn.004d29cc
cmp byte [ebp - 0x29], 0
jl 0x407fba
dec dword [ebp - 8]
mov edx, dword [ebp - 0x28]
add edx, 0x2f0
mov dword [ebp - 0x30], edx
dec dword [ebp - 8]
push 0
push dword [ebp - 0x30]
call fcn.00408d10
or eax, 0xc4830000
or byte [ebx + 0x3312f86d], al
ror byte [ebx + 0x2ee8d845], cl
pop es
add byte [ebx - 0x769b23b3], cl
or eax, 0
add esp, 8
sub dword [ebp - 8], 0x12
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0047e6e8
mov ecx, dword [ebp - 0x24]
mov dword fs:[0], ecx
cmp byte [ebp - 0x29], 0
jle 0x407fd2
add byte [esi + 8], bh
mov eax, dword [ebp - 0x28]
call fcn.004ddd0c
pop ebp
or eax, 0x5de58b00
mov esp, ebp
pop ebp
ret