Function at 0x45f0f0
Capabilities:
Encode data using xor

Disassembly:
add al, ah
call 0xd740d82e
dec eax
add al, al
call 0xd740d82e
dec eax
add al, dl
call 0xfe40d82e
mov ebx, dword [ebp + 8]
push esi
or dword [ebx - 0x170f7435], 0xffffff8e
mov byte [0x438bfdfa], al
or bh, al
inc ebp
mov eax, 0x408b0447
mov edi, dword [eax]
xor eax, eax
mov bl, al
mov dword [ebp - 8], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], eax
movzx eax, word [edi]
test ax, ax
je 0x5745f330
push 0x24
pop ecx
push 0x40
inc esi
pop edx
cmp ax, cx
jne 0x45f211
cmp word [edi + esi*2], cx
jne 0x45f161
push ecx
lea ecx, [ebp - 0x20]
mov bl, 1
call fcn.0040c7d0
inc esi
jmp 0x7644f2dc
push 0x8d00f649
dec eax
add al, al
call fcn.00406a9a
push 0x24
pop ebx
jmp 0x45f182
or al, 0xeb
je 0x45f18b
push eax
dec eax
add al, al
call fcn.0040c7d0
inc esi
movzx eax, word [edi + esi*2]
cmp ax, bx
jne 0x45f173
xor ebx, ebx
cmp word [edi + esi*2], bx
je 0x45f2ea
lea eax, [ebp - 0x40]
push eax
dec eax
add al, dl
inc esi
call 0xd7406f24
dec eax
add al, dl
call 0x5140be31
test esp, ecx
cli
push eax
push eax
push eax
aam 0xff
jne 0x45f182
call dword [0x48d660]
push ebx
dec eax
inc ebp
clc
push eax
lea eax, [ebp - 0xc]
push eax
aam 0x79
rcl byte [eax - 0x18]
mov dl, 0xe4
cli
std
mov ebx, dword [ebp - 0xc]
add ebx, ebx
je 0x45f1ec
jge 0x45f19e
call 0xfe4093a3
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x20]
push dword [eax]
call fcn.004051c3
mov bl, 1
jmp 0x7644f2dc
jne 0x45f255
push 0x4b3268
lea ecx, [ebp - 0x20]
mov bl, 1
call fcn.004051c3
push 0x8d004b32
dec ebp
loopne 0x45f1a8
add eax, ebp
enter 0xfffffffffffffa5f, 0xffffffffffffffff
dec eax
inc ebp
rcl byte [eax + 0x48], 0
loopne 0x45f1eb
cmp eax, 0x68fffa5f
push 0xe9004b32
mov eax, 0x66408b04
cmp eax, edx
cmp ax, dx
in eax, dx
test dword [ecx + 0x660055cc], edi
cmp dword [edi + esi*2], edx
jne 0x45f226
push edx
jmp 0x745f151
push 0x8d00f649
dec eax
add al, al
call fcn.00406a9a
push 0x40
pop ebx
jmp 0x45f247
or al, 0xeb
je 0x45f250
push eax
dec eax
add al, al
call fcn.0040c7d0
inc esi
movzx eax, word [edi + esi*2]
cmp ax, bx
jne 0x45f238
xor eax, eax
cmp word [edi + esi*2], ax
je 0x45f305
ja 0x45f266
test byte [ecx - 0x73000000], ch
inc ebp
rcl byte [eax + 0x48], 0
lea eax, [ebp - 0x40]
push eax
dec eax
add al, dl
inc esi
call 0xd7406f24
rol byte [esi - 0x18], 1
mov ebx, 0x48d6fa7c
jl 0x45f262
salc
dec eax
add al, dl
call 0x5140be31
push eax
push eax
aam 0xff
jne 0x45f247
call dword [0x48d660]
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x54]
push eax
aam 0x79
rcl byte [eax - 0x18]
int3
invalid
push 0x4b3268
lea ecx, [ebp - 0x20]
call fcn.004051c3
dec eax
inc ebp
rcl byte [eax + 0x48], 0
loopne 0x45f2e7
inc ecx
pop esi
cli
invalid
pop ds
push 0x4b41d0
lea ecx, [ebp - 0x20]
mov bl, 1
call fcn.004051c3
dec eax
inc ebp
rcl byte [eax + 0x48], 0
loopne 0x45f304
and al, 0x5e
cli
inc dword [ebx + ebx*8 + 0x4d8b0c74]
or byte [ebx + edi*8], al
loopne 0x45f37b
call 0xd7406b9f
cli
salc
dec eax
add byte [eax + ebp*8 - 0x2904c6e1], ch
dec eax
add al, dl
call 0xd740cb6e
dec eax
add al, al
call 0xd740cb6e
dec eax
add al, ah
call fcn.0040cb6e
pop edi
dec dword [ebx + 0x46d48a23]
xor byte [ecx + 0x24ec81fc], dl
inc edi
add al, 0x8b
mov edx, dword [ebp - 0x75]
sub al, 0x65
loopne 0x45f32e
add ah, byte [ebp - 0x18]
add dword [ebx + 0x78fc0442], ecx
inc edi
cmp ecx, dword [ecx + ecx*4]
dec ebp
clc
mov ecx, dword [esi]
mov dword [ebp - 0x14], 0x408b0447
inc edi
add al, 0x8b
inc eax
mov eax, dword [eax + ecx*4 - 4]
push edi
movsx eax, word [eax + 0xa]
mov dword [ebp - 0xc], eax
mov eax, dword [edx + 4]
push 0x4e
jne 0x45f396
mov byte [ebx + 0x33], bl
inc dword [ebx + 0x3966ffc9]
pop eax
or byte [ebx + 0x76ebf85d], cl
or ecx, 0xffffffff
cmp word [eax + 8], bx
mov ebx, dword [ebp - 8]
jmp 0x45f418
inc dword [esi]
mov eax, dword [esi]
mov edi, dword [edx + 4]
push ecx
mov eax, dword [edi + eax*4]
mov ecx, ebx
movsx eax, word [eax + 0xa]
invalid
mov dword [ebp - 4], edi
je 0x45f3a2
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi]
call fcn.0041c193
xor edi, edi
cmp dword [ebp - 4], edi
jle 0x45f447
mov ebx, dword [ebp - 4]
push dword [ebp + edi*4 + 0x9fffee0]
push cs
call fcn.0041c1ae
inc edi
cmp edi, ebx
jl 0x45f431
mov ebx, dword [ebp - 8]
push 0xffffffffffffffff
adc dl, al
adc al, 0xff
call 0x2d411bc7
add ch, byte [edx + 0xc]
mov dword [esi], eax
or al, 0xeb
jne 0x45f482
push eax
push eax
hlt
xor esi, esi
lea ecx, [ebp - 0x20]
call 0x1d412c57
pop edi
adc byte [eax], al
add byte [ebx - 0x37], bl
ret 0xe810