Function at 0x40158e
Capabilities:
Encode data using xor

Disassembly:
jbe 0x401590
add byte gs:[eax], al
add byte [esi], dl
popal
add byte [eax + eax], ch
add byte [edx], al
add byte [eax], al
inc esp
add byte [eax], al
add byte [ebp], cl
add byte [eax], al
push ebx
add byte [eax], al
add byte [eax - 0x5bffbfeb], ch
adc eax, 0x15a00040
inc eax
add byte [ebp + edx + 0x15940040], bl
inc eax
add byte [ebp + edx + 0x40], bh
add byte [eax + 0x15], ch
inc eax
add byte [eax + 0x15], bl
inc eax
add byte [ebp + edx + 0x40], cl
add byte [eax + 0x15], al
inc eax
add byte [edx + 0x15000040], dl
inc eax
add ah, ch
adc al, 0x40
add al, bl
adc al, 0x40
add ah, cl
adc al, 0x40
add ah, al
adc al, 0x40
add byte [eax - 0x5fffbfec], dh
adc al, 0x40
add byte [esp + edx + 0x147c0040], cl
inc eax
add byte [ebp], cl
imul eax, dword [eax], 0x720063
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x40160e
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x40161e
add byte [eax], al
pop esp
add byte [ebx], dh
arpl word [eax], ax
jb 0x401628
imul eax, dword [eax], 0x740070
jae 0x401630
pop esp
add byte [ebp], ch
popal
add byte [ecx], ch
outsb dx, byte [esi]
add byte [esi], ch
add byte [edx], ch
jae 0x401640
add byte [eax], al
add byte [eax], al
jae 0x401646
jns 0x401648
jae 0x40164a
je 0x40164c
add byte gs:[ebp], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jae 0x40165a
jns 0x40165c
jae 0x40165e
je 0x401660
add byte gs:[ebp], ch
add byte cs:[ebp], dh
imul eax, dword [eax], 0x6e002e
outsd dx, dword [esi]
add byte [eax + eax + 0x69], dh
add byte [esi], ah
imul eax, dword [eax], 0x610063
je 0x40167e
imul eax, dword [eax], 0x6e006f
jae 0x401686
add byte cs:[edi], bl
add byte fs:[ebp], ah
jno 0x401690
jne 0x401692
add byte gs:[ebp], dh
add byte gs:[eax], ch
add byte [0x29006400], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], dh
jns 0x4016ac
jae 0x4016ae
je 0x4016b0
add byte gs:[ebp], ch
add byte cs:[ebp], dh
imul eax, dword [eax], 0x6e002e
outsd dx, dword [esi]
add byte [eax + eax + 0x69], dh
add byte [esi], ah
imul eax, dword [eax], 0x610063
je 0x4016ce
imul eax, dword [eax], 0x6e006f
jae 0x4016d6
add byte cs:[edi], bl
add byte [ecx], ch
jb 0x4016e0
add byte gs:[esi], al
imul eax, dword [eax], 0x69006e
jae 0x4016ec
push 0x64006500
add byte [eax], ch
add byte [ecx], ch
add byte [eax], al
add byte [edi], ah
add byte gs:[esi], ch
add byte gs:[edx], dh
popal
add byte [eax + eax], ch
add byte [eax], dh
add byte gs:[edx], dh
add byte [eax], al
add byte [eax], al
add byte [ebx], dl
outsd dx, dword [esi]
add byte [esi], ah
je 0x40171c
ja 0x40171e
popal
add byte [edx], dh
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x40172e
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401738
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401748
add byte [eax], al
add byte [eax], al
dec ecx
add byte [esi], ch
jae 0x401752
je 0x401754
popal
add byte [eax + eax + 0x6c], ch
add byte [eax + eax + 0x69], al
add byte [edx], dh
add byte [eax], al
add byte [eax], al
dec ebp
add byte [ecx], ah
jb 0x40176a
imul eax, dword [eax], 0x65
add byte [eax + eax], dh
add byte [eax], al
add byte [eax + eax + 0x6f], cl
add byte [ebx], ah
popal
add byte [eax + eax + 0x65], ch
add byte [eax], al
add byte [eax], al
add byte [eax + eax + 0x61], cl
add byte [esi], ch
add byte [bx + di], cl
add byte fs:[eax], al
add byte [eax], al
add byte [eax + eax + 0x6f], cl
add byte [ebx], ah
popal
add byte [eax + eax + 0x65], ch
add byte [eax + eax + 0x61], al
add byte [eax + eax + 0x65], dh
add byte [eax + eax + 0x69], dl
add byte [ebp], ch
add byte gs:[eax], al
add byte [eax], al
add byte [ebx], al
jne 0x4017b8
jb 0x4017ba
jb 0x4017bc
add byte gs:[esi], ch
je 0x4017c2
push esi
add byte [ebp], ah
jb 0x4017c8
jae 0x4017ca
imul eax, dword [eax], 0x6e006f
add byte [eax], al
add byte [eax], al
dec ebp
add byte [ecx], ah
arpl word [eax], ax
push 0x6e006900
add byte [ebp], ah
dec ecx
add byte [eax + eax], ah
add byte [eax], dl
popal
add byte [edx], dh
je 0x4017f0
outsb dx, byte [esi]
add byte [ebp], ah
jb 0x4017f6
inc ebx
add byte [edi], ch
add byte fs:[ebp], ah
add byte [eax], al
inc esi
add byte [edi], ch
jb 0x401806
insd dword es:[edi], dx
add byte [ebx], al
outsd dx, dword [esi]
add byte [eax + eax + 0x65], ah
add byte [eax], dl
jb 0x401814
add byte gs:[esi], ah
imul eax, dword [eax], 0x78
add byte [eax], al
dec ecx
add byte [esi], ch
jae 0x401826
je 0x401828
popal
add byte [eax + eax + 0x6c], ch
add byte [eax + eax + 0x61], al
add byte [eax + eax + 0x65], dh
add byte [eax + eax + 0x69], dl
add byte [ebp], ch
add byte gs:[eax], al
add byte [ebx], dl
outsd dx, dword [esi]
add byte [esi], ah
je 0x401848
ja 0x40184a
popal
add byte [edx], dh
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x40185a
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401864
pop esp
add byte [ecx], cl
outsb dx, byte [esi]
add byte [eax + eax + 0x65], dh
add byte [edx], dh
outsb dx, byte [esi]
add byte [ebp], ah
je 0x401876
and byte [eax], al
inc ebp
add byte [eax], bh
jo 0x40187e
insb byte es:[edi], dx
add byte [edi], ch
jb 0x401884
add byte gs:[edx], dh
add byte [eax], al
add byte [eax], al
push esi
add byte [ebp], ah
jb 0x401892
jae 0x401894
imul eax, dword [eax], 0x6e006f
add byte [eax], al
add byte [eax], al
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x4018ae
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x4018ba
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x4018c4
pop esp
add byte [ecx], cl
outsb dx, byte [esi]
add byte [eax + eax + 0x65], dh
add byte [edx], dh
outsb dx, byte [esi]
add byte [ebp], ah
je 0x4018d6
and byte [eax], al
inc ebp
add byte [eax], bh
jo 0x4018de
insb byte es:[edi], dx
add byte [edi], ch
jb 0x4018e4
add byte gs:[edx], dh
pop esp
add byte [ecx], cl
outsb dx, byte [esi]
add byte [eax + eax + 0x65], dh
add byte [edx], dh
outsb dx, byte [esi]
add byte [ecx], ah
je 0x4018fa
imul eax, dword [eax], 0x6e006f
popal
add byte [eax + eax], ch
add byte [eax], al
add byte [ecx], al
arpl word [eax], ax
arpl word [eax], ax
add byte gs:[eax], dh
je 0x401914
dec esp
add byte [ecx], ah
outsb dx, byte [esi]
add byte [edi], ah
jne 0x40191e
popal
add byte [edi], ah
add byte gs:[eax], al
add byte [eax], al
add byte [eax], dh
imul eax, dword [eax], 0x6c006c
pop edi
add byte [esi], ch
add byte gs:[edi], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x40194e
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x40195a
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401964
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401974
pop esp
add byte [eax], dl
insb byte es:[edi], dx
add byte [ecx], ah
je 0x40197e
add byte [edi], ch
jb 0x401984
insd dword es:[edi], dx
add byte [ebx], dl
add byte gs:[eax + eax + 0x74], dh
add byte [ecx], ch
outsb dx, byte [esi]
add byte [edi], ah
jae 0x401996
add byte [eax], al
push eax
add byte [eax + eax + 0x61], ch
add byte [eax + eax + 0x66], dh
add byte [edi], ch
jb 0x4019a6
insd dword es:[edi], dx
add byte [ebx], dl
add byte gs:[eax + eax + 0x74], dh
add byte [ecx], ch
outsb dx, byte [esi]
add byte [edi], ah
jae 0x4019b8
add byte [eax], al
add byte [eax], al
and eax, 0x34003000
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [edx], dh
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [edx], dh
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [edx], dh
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [edx], dh
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [edx], dh
add byte [eax + eax + 0x25], ah
add byte [eax], dh
add byte [ebx], dh
add byte [eax + eax], ah
add byte [eax], al
add byte [ebx], dl
push 0x77006f00
add byte [ebp], al
jne 0x401a04
insb byte es:[edi], dx
add byte [ecx], ah
add byte [eax], al
add byte [eax], al
inc esi
add byte [edx], dh
add byte gs:[ebx], dl
push 0x77006f00
add byte [esi], ch
add byte [eax], al
add byte [eax], al
inc ebx
add byte [ebp], ah
imul eax, dword [eax], 0x70
add byte [eax], al
push esp
add byte [edx], dh
popal
add byte [ebx], ah
imul eax, dword [eax], 0x67006e
add byte [eax], al
inc esi
add byte [ecx], ch
jb 0x401a42
jae 0x401a44
je 0x401a46
push edx
add byte [ebp], dh
outsb dx, byte [esi]
add byte [eax + eax + 0x61], al
add byte [eax + eax + 0x65], dh
add byte [eax + eax + 0x69], dl
add byte [ebp], ch
add byte gs:[eax], al
add byte [eax], al
add byte [eax], dl
jb 0x401a64
outsd dx, dword [esi]
add byte [eax + eax + 0x75], ah
add byte [ebx], ah
je 0x401a6e
inc ebx
add byte [edi], ch
add byte fs:[ebp], ah
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x401a86
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x401a92
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401a9c
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401aac
pop esp
add byte [ecx], al
jo 0x401ab2
jo 0x401ab4
jae 0x401ab6
pop esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], dl
outsd dx, dword [esi]
add byte [esi], ah
je 0x401ac8
ja 0x401aca
popal
add byte [edx], dh
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x401ada
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401ae4
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401af4
pop esp
add byte [eax + eax + 0x65], al
add byte [esi], ah
popal
add byte [ebp], dh
insb byte es:[edi], dx
add byte [eax + eax + 0x43], dh
add byte [ecx], ah
arpl word [eax], ax
push 0x5c006500
add byte [0x5c007300], ah
add byte [ecx], al
jo 0x401b1a
jo 0x401b1c
jae 0x401b1e
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x401b2e
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x401b3a
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401b44
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401b54
pop esp
add byte [eax + eax + 0x65], al
add byte [esi], ah
popal
add byte [ebp], dh
insb byte es:[edi], dx
add byte [eax + eax + 0x43], dh
add byte [ecx], ah
arpl word [eax], ax
push 0x5c006500
add byte [0x5c007300], ah
add byte [ebx], al
outsd dx, dword [esi]
add byte [eax + eax + 0x6c], ch
add byte [ebp], ah
arpl word [eax], ax
je 0x401b84
imul eax, dword [eax], 0x6e006f
add byte [eax], al
and al, byte [eax]
and eax, 0x22007300
add byte [eax], ah
add byte [edx], bh
add byte [eax], ah
add byte [ebx], bl
add byte [eax], al
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x401bae
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x401bba
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401bc4
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401bd4
pop esp
add byte [ecx], al
jo 0x401bda
jo 0x401bdc
jae 0x401bde
add byte [eax], al
push ebx
add byte [edi], ch
add byte [eax + eax + 0x77], dh
add byte [ecx], ah
jb 0x401bee
add byte gs:[eax + eax + 0x4d], bl
add byte [ecx], ch
arpl word [eax], ax
jb 0x401bfa
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x401c04
pop esp
add byte [edx], al
imul eax, dword [eax], 0x67006e
inc edx
add byte [ecx], ah
jb 0x401c14
pop esp
add byte [eax + eax + 0x65], al
add byte [esi], ah
popal
add byte [ebp], dh
insb byte es:[edi], dx
add byte [eax + eax + 0x43], dh
add byte [ecx], ah
arpl word [eax], ax
push 0x6500
add byte [edx], al
jne 0x401c34
je 0x401c36
je 0x401c38
outsd dx, dword [esi]
add byte [esi], ch
dec ecx
add byte [ebx], ah
outsd dx, dword [esi]
add byte [esi], ch
add byte [eax], al
add byte [eax], al
inc edx
add byte [ebp], dh
je 0x401c4e
je 0x401c50
outsd dx, dword [esi]
add byte [esi], ch
dec ecx
add byte [ebx], ah
outsd dx, dword [esi]
add byte [esi], ch
xor dword [eax], eax
xor al, byte [eax]
xor eax, 0x42000000
add byte [ebp], dh
je 0x401c6a
je 0x401c6c
outsd dx, dword [esi]
add byte [esi], ch
dec ecx
add byte [ebx], ah
outsd dx, dword [esi]
add byte [esi], ch
xor dword [eax], eax
xor eax, 0x3000
add byte [edx], al
jne 0x401c84
je 0x401c86
je 0x401c88
outsd dx, dword [esi]
add byte [esi], ch
push esp
add byte [edi], ch
outsd dx, dword [esi]
add byte [eax + eax + 0x74], ch
add byte [ecx], ch
jo 0x401c9a
add byte [eax], al
inc edx
add byte [ebp], dh
je 0x401ca2
je 0x401ca4
outsd dx, dword [esi]
add byte [esi], ch
dec esi
add byte [ecx], ah
insd dword es:[edi], dx
add byte [ebp], ah
add byte [eax], al
add byte [eax], al
inc edx
add byte [ebp], dh
je 0x401cba
je 0x401cbc
outsd dx, dword [esi]
add byte [esi], ch
push eax
add byte [edx], dh
add byte gs:[esi], ah
push eax
add byte [edi], ch
jae 0x401cce
add byte [eax], al
push eax
add byte [ecx], ch
insb byte es:[edi], dx
add byte [eax + eax + 0x56], ch
add byte [ecx], ah
insb byte es:[edi], dx
add byte [ebp], dh
add byte gs:[eax], al
add byte [eax], dl
imul eax, dword [eax], 0x6c006c
push ebx
add byte [eax + eax + 0x79], dh
add byte [eax + eax + 0x65], ch
add byte [eax], al
add byte [eax], dl
imul eax, dword [eax], 0x6c006c
dec ecx
add byte [ebx], ah
outsd dx, dword [esi]
add byte [esi], ch
add byte [eax], al
add byte [eax], al
dec esi
add byte [ecx], ah
jbe 0x401d12
imul eax, dword [eax], 0x610067
je 0x401d1a
add byte gs:[ebp], dl
jb 0x401d20
insb byte es:[edi], dx
add byte [eax], al
add byte [esi], al
insb byte es:[edi], dx
add byte [ecx], bh
outsd dx, dword [esi]
add byte [ebp], dh
je 0x401d30