Function at 0x45d12f
Capabilities:
Encode data using xor

Disassembly:
add byte [ebp], dh
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [ecx], cl
jae 0x45d146
push ebp
add byte [esi], ch
bound eax, qword [eax]
outsd dx, dword [esi]
add byte [eax], bh
imul eax, dword [eax], 0x67006e
push ebx
add byte [eax + eax + 0x75], dh
add byte [edx], ah
add byte [eax], al
add byte gs:[esi], ch
jne 0x45d166
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [eax], cl
popal
add byte [ebx], dh
dec esi
add byte [ecx], ah
je 0x45d182
imul eax, dword [eax], 0x650076
inc ebx
add byte [edi], ch
add byte fs:[ebp], ah
push ebx
add byte [eax + eax + 0x6f], ch
add byte [eax + eax], dh
add byte [eax - 0x6f6f6f70], dl
nop
add byte gs:[esi], ch
jne 0x45d1a6
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [eax + eax + 0x72], dl
add byte [ecx], ah
outsb dx, byte [esi]
add byte [ebx], dh
jo 0x45d1c2
popal
add byte [edx], dh
add byte gs:[esi], ch
arpl word [eax], ax
jns 0x45d1ce
pop edi
add byte [eax + eax + 0x72], dl
add byte [ebp], ah
popal
add byte [eax + eax + 0x41], dh
add byte [ebx], dh
push ebx
add byte [ecx], ah
add byte [ebp], ah
add byte [eax], al
add byte gs:[esi], ch
jne 0x45d1ee
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [eax + eax + 0x72], dl
add byte [ecx], ah
outsb dx, byte [esi]
add byte [ebx], dh
jo 0x45d20a
popal
add byte [edx], dh
add byte gs:[esi], ch
arpl word [eax], ax
jns 0x45d216
pop edi
add byte [eax + eax + 0x72], dl
add byte [ecx], ah
outsb dx, byte [esi]
add byte [ebx], dh
jo 0x45d224
popal
add byte [edx], dh
add byte gs:[esi], ch
je 0x45d22e
add byte [eax], al
add byte gs:[esi], ch
jne 0x45d236
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [eax + eax + 0x72], dl
add byte [ecx], ah
outsb dx, byte [esi]
add byte [ebx], dh
jo 0x45d252
popal
add byte [edx], dh
add byte gs:[esi], ch
arpl word [eax], ax
jns 0x45d25e
pop edi
add byte [ebx], al
jb 0x45d264
imul eax, dword [eax], 0x690074
arpl word [eax], ax
popal
add byte [eax + eax], ch
add byte [eax + 0x6e006590], dl
add byte [ebp], dh
insd dword es:[edi], dx
add byte [edi], bl
add byte [eax + eax + 0x61], ch
add byte [edi], ah
pop edi
add byte [edx], dh
add byte [eax], cl
popal
add byte [ebx], dh
dec esi
add byte [edi], ch
outsb dx, byte [esi]
add byte [esi], dl
je 0x45d29a
popal
add byte [edx], ah
insb byte es:[edi], dx
add byte [ebp], ah
push ebx
add byte [eax + eax + 0x6f], ch
add byte [eax + eax], dh
add byte [ebp], ch
arpl word [eax], ax
dec ecx
add byte [eax + eax], cl
add byte [eax + 0x63006d90], dl
add byte [esi], al
inc ebx
add byte [ecx], ah
insb byte es:[edi], dx
add byte [eax + eax], ch
add byte [ebp], ch
arpl word [eax], ax
dec esi
add byte [eax + eax + 0x69], al
add byte [edx], dh
add byte gs:[ebx], ah
je 0x45d2da
add byte [eax], al
insd dword es:[edi], dx
add byte [ebx], ah
inc ebp
add byte [ebp], al
dec ecx
add byte [ebp], ch
jo 0x45d2ea
insb byte es:[edi], dx
add byte [eax], al
add byte [eax + 0x63006d90], dl
add byte [ecx], al
jb 0x45d2f8
jb 0x45d2fa
popal
add byte [ecx], bh
add byte [eax], al
insd dword es:[edi], dx
add byte [ebx], ah
dec ecx
add byte [esi], ch
jae 0x45d30a
je 0x45d30c
popal
add byte [esi], ch
je 0x45d312
imul eax, dword [eax], 0x740061
add byte gs:[eax + eax], ah
add byte [eax + 0x63006d90], dl
add byte [ebx], al
outsd dx, dword [esi]
add byte [ebp], ch
dec ecx
add byte [esi], ch
je 0x45d330
add byte gs:[edx], dh
outsd dx, dword [esi]
add byte [eax], dh
add byte [eax], al
nop
nop
insd dword es:[edi], dx
add byte [ebx], ah
inc esp
add byte [ecx], bh
outsb dx, byte [esi]
add byte [ecx], ah
insd dword es:[edi], dx
add byte [ecx], ch
arpl word [eax], ax
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [ebp], cl
add byte gs:[eax + eax + 0x68], dh
add byte [edi], ch
add byte fs:[ecx], cl
insd dword es:[edi], dx
add byte [eax], dh
insb byte es:[edi], dx
add byte [eax], al
add byte [ebp], ch
add byte fs:[ebx], ah
inc ebx
add byte [ecx], al
push ebx
add byte [eax + eax + 0x65], al
add byte [ebp], ch
popal
add byte [esi], ch
add byte fs:[ebx], dh
dec edi
add byte [esi], ch
insb byte es:[edi], dx
add byte [ecx], bh
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [ebx], dl
je 0x45d39a
popal
add byte [eax + eax + 0x69], dh
add byte [ebx], ah
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [ecx], cl
outsb dx, byte [esi]
add byte [eax + eax + 0x65], dh
add byte [edx], dh
arpl word [eax], ax
add byte gs:[eax], dh
je 0x45d3bc
add byte gs:[eax + eax], ah
add byte [eax + 0x64006d90], dl
add byte [ebx], ah
push edx
add byte [ebp], ah
jno 0x45d3d0
jne 0x45d3d2
imul eax, dword [eax], 0x650072
jae 0x45d3da
dec esp
add byte [ecx], ch
outsb dx, byte [esi]
add byte [ebx], ch
je 0x45d3e4
imul eax, dword [eax], 0x65006d
inc ebx
add byte [eax], ch
add byte gs:[ebx], ah
imul eax, dword [eax], 0
add byte [eax + 0x64006d90], dl
add byte [ebx], ah
push edx
add byte [ebp], ah
jno 0x45d404
jne 0x45d406
imul eax, dword [eax], 0x650072
jae 0x45d40e
dec ecx
add byte [esi], ch
push 0x72006500
add byte [ecx], ch
je 0x45d41c
popal
add byte [esi], ch
arpl word [eax], ax
add byte gs:[ebx], al
push 0x63006500
add byte [ebx], ch
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [eax], dl
popal
add byte [edx], dh
add byte gs:[esi], ch
je 0x45d442
push edx
add byte [ebp], ah
jno 0x45d448
jne 0x45d44a
imul eax, dword [eax], 0x650072
jae 0x45d452
dec ecx
add byte [esi], ch
push 0x72006500
add byte [ecx], ch
je 0x45d460
popal
add byte [esi], ch
arpl word [eax], ax
add byte gs:[ebx], al
push 0x63006500
add byte [ebx], ch
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [eax + eax + 0x75], al
add byte [eax], dh
insb byte es:[edi], dx
add byte [ecx], ch
arpl word [eax], ax
popal
add byte [eax + eax + 0x65], dh
add byte [eax], al
add byte [eax + 0x64006d90], dl
add byte [ebx], ah
push esi
add byte [ebp], ah
jb 0x45d49c
imul eax, dword [eax], 0x690066
add byte gs:[eax + eax + 0x53], ah
add byte [eax + eax + 0x61], dh
add byte [eax + eax + 0x65], dh
add byte [eax], al
add byte [eax + 0x64006d90], dl
add byte [ebx], ah
push esi
add byte [ebp], ah
jb 0x45d4c0
imul eax, dword [eax], 0x690066
popal
add byte [edx], ah
insb byte es:[edi], dx
add byte [ebp], ah
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [esi], cl
outsd dx, dword [esi]
add byte [eax + eax + 0x49], dh
add byte [esi], ch
insb byte es:[edi], dx
add byte [ecx], ch
outsb dx, byte [esi]
add byte [ebp], ah
add byte [eax], al
nop
nop
insd dword es:[edi], dx
add byte [eax + eax + 0x63], ah
add byte [ebx], dl
jns 0x45d4f6
outsb dx, byte [esi]
add byte [ebx], ah
push 0x6f007200
add byte [esi], ch
imul eax, dword [eax], 0x65007a
add byte fs:[eax], al
add byte [ebp], ch
add byte fs:[ebx], ah
push edx
add byte [ebp], ah
jno 0x45d518
jne 0x45d51a
imul eax, dword [eax], 0x650072
jae 0x45d522
inc esi
add byte [ebp], dh
insb byte es:[edi], dx
add byte [eax + eax + 0x53], ch
add byte [eax + eax + 0x6f], ch
add byte [eax + eax + 0x4e], dh
add byte [ebp], dh
insd dword es:[edi], dx
add byte [edx], ah
add byte gs:[edx], dh
add byte [eax], al
imul eax, dword [eax], 0x74006e
add byte gs:[edx], dh
add byte [ecx], ah
arpl word [eax], ax
add byte gs:[edi], bl
add byte fs:[ebp], ah
arpl word [eax], ax
insb byte es:[edi], dx
add byte [ecx], ah
jb 0x45d560
add byte gs:[eax + eax + 0x5f], ah
add byte [edi], ch
outsb dx, byte [esi]
add byte [edi], bl
arpl word [eax], ax
insb byte es:[edi], dx
add byte [ecx], ah
jae 0x45d574
jae 0x45d576
add byte [eax], al
imul eax, dword [eax], 0x74006e
add byte gs:[edx], dh
add byte [ecx], ah
arpl word [eax], ax
add byte gs:[edi], bl
imul eax, dword [eax], 0x70006d
insb byte es:[edi], dx
add byte [ebp], ah
insd dword es:[edi], dx
add byte [ebp], ah
outsb dx, byte [esi]
add byte [eax + eax + 0x65], dh
add byte [eax + eax + 0x5f], ah
add byte [edi], ch
outsb dx, byte [esi]
add byte [edi], bl
jo 0x45d5ac
popal
add byte [edx], dh
add byte gs:[esi], ch
je 0x45d5b6
add byte [eax], al
pop eax
add byte [ecx], al
inc esp
add byte [edi], bl
inc esi
add byte [eax + eax + 0x41], cl
add byte [edi], al
push ebx
add byte [edi], bl
dec ecx
add byte [esi], cl
dec ecx
add byte [eax + eax + 0x49], dl
add byte [ecx], al
dec esp
add byte [ecx], cl
pop edx
add byte [ebp], al
inc esp
add byte [eax], al
add byte [eax], bl
inc ecx
add byte [eax + eax + 0x5f], al
add byte [esi], cl
dec edi
add byte [eax + eax + 0x5f], dl
add byte [edi], cl
push eax
add byte [eax + eax + 0x49], dl
add byte [ebp], cl
dec ecx
add byte [edx], bl
inc ecx
add byte [edx], al
dec esp
add byte [ebp], al
add byte [eax], al
pop eax
add byte [ecx], al
inc esp
add byte [edi], bl
inc edx
add byte [eax + eax + 0x49], cl
add byte [eax + eax + 0x54], dl
add byte [ecx], al
inc edx
add byte [eax + eax + 0x45], cl
add byte [edi], bl
inc ecx
add byte [edx], dl
inc edi
add byte [ebx], dl
add byte [eax], al
nop
nop
pop eax
add byte [ecx], al
inc esp
add byte [edi], bl
inc edx
add byte [eax + eax + 0x49], cl
add byte [eax + eax + 0x54], dl
add byte [ecx], al
inc edx
add byte [eax + eax + 0x45], cl
add byte [edi], bl
push edx
add byte [ebp], al
push esp
add byte [eax], al
add byte [eax], bl
inc ecx
add byte [eax + eax + 0x5f], al
add byte [edx], dl
inc ebp
add byte [eax + eax + 0x5f], dl
add byte [edi], al
inc ebx
add byte [edi], bl
push edx
add byte [ebp], al
inc esi
add byte [eax], al
add byte [eax + 0x41005890], dl
add byte [eax + eax + 0x5f], al
add byte [edx], dl
inc ebp
add byte [eax + eax + 0x5f], dl
add byte [esi], al
dec esp
add byte [edi], cl
inc ecx
add byte [eax + eax], dl
add byte [eax], bl
inc ecx
add byte [eax + eax + 0x5f], al
add byte [edx], dl
inc ebp
add byte [eax + eax + 0x5f], dl
add byte [eax + eax + 0x4f], al
add byte [ebp], dl
inc edx
add byte [eax + eax + 0x45], cl
add byte [eax], al
add byte [eax + 0x41005890], dl
add byte [eax + eax + 0x5f], al
add byte [edx], dl
inc ebp
add byte [eax + eax + 0x5f], dl
add byte [eax], cl
inc esi
add byte [ecx], al
pop edi
add byte [eax + eax + 0x59], dl
add byte [eax], dl
inc ebp
add byte [eax], al
add byte [eax + 0x41005890], dl
add byte [eax + eax + 0x5f], al
add byte [ebp], cl
inc ebp
add byte [eax + eax + 0x48], dl
add byte [edi], cl
inc esp
add byte [edi], bl
dec ecx
add byte [ebx], dl
pop edi
add byte [esi], dl
dec ecx
add byte [edx], dl
push esp
add byte [ebp], dl
inc ecx
add byte [eax + eax], cl
add byte [eax], bl
inc ecx
add byte [eax + eax + 0x5f], al
add byte [ecx], al
push edx
add byte [edi], al
push ebx
add byte [edi], bl
dec eax
add byte [ecx], al
push esi
add byte [ebp], al
pop edi
add byte [ecx], al
pop edi
add byte [esi], al
dec esp
add byte [edi], cl
inc ecx
add byte [eax + eax], dl
add byte [ebp], ch
add byte fs:[eax], dl
jb 0x45d738
imul eax, dword [eax], 0x610076
je 0x45d740
add byte gs:[eax], al
add byte [ebp], ch
add byte fs:[esi], al
popal
add byte [ebp], ch
inc ecx
add byte [esi], cl
inc esp
add byte [ecx], al
jae 0x45d758
jae 0x45d75a
add byte gs:[ebp], ch
add byte [eax], al
insd dword es:[edi], dx
add byte [eax + eax + 0x41], ah
add byte [ebx], dh
jae 0x45d76a
add byte gs:[ebp], ch