Function at 0x45554b
Capabilities:
Check for time delay via gettickcount
Encode data using xor

Disassembly:
mov eax, 0x5471b3
call fcn.0054565c
mov eax, 0x4004
add al, ch
pop es
add dword [edi], ecx
add byte [eax + 0x4004], bh
call fcn.004318e0
push ebx
push esi
push edi
mov dword [ebp - 4], 3
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
cmp eax, 0x36
ja 0x455779
xor byte [edi - 0x6e], ah
push eax
dec eax
sti
jle 0x45554f
dec ebp
mov ah, 0x36
cmp al, byte [eax + ebx*8 - 0x238cd048]
cmp al, byte ss:[eax + ebx*8 - 0x238cd048]
jno 0x455584
invalid
xor esi, esi
call edi
cmp eax, 0x3b
ja 0x455985
leave
mov bh, 0xd9
and ah, bh
test eax, 0xdcd5be5e
adc dword [eax], ecx
push cs
xor dword [ecx - 0x63], ebx
dec eax
ror ebx, 1
mov ebp, esi
into
inc ebx
adc eax, edx
or byte [edi], dh
sbb cl, byte [esi + 0x3c]
add dh, 0xfc
leave
invalid
mov eax, dword [ebp + 0x14]
cmp dword [eax - 0xc], esi
jne 0x456661
xor eax, eax
mov ebx, 0x1ffe
push ebx
mov word [ebp - 0x2010], ax
lea eax, [ebp - 0x200e]
push esi
push eax
call fcn.0041b930
add esp, 0xc
call edi
cmp eax, 0x43
ja 0x455bba
cmc
cmp cl, byte [esi]
fadd qword [edx]
invalid
xor eax, eax
push ebx
mov word [ebp - 0x4010], ax
lea eax, [ebp - 0x400e]
push esi
push eax
call fcn.0041b930
add esp, 0xc
call edi
cmp eax, 0x48
ja 0x455dde
add bh, byte [eax + 0x326e35ba]
inc esi
fst st(4)
sub eax, 0x9b7b6816
in eax, 0xfb
or edx, dword [edi - 0x57]
cld
pop edx
mov cl, 0xe
mov edi, 0x62222682
aaa
outsd dx, dword [esi]
push edx
cmc
push edi
mov esi, 0x44c3de95
out 0x7c, eax
outsb dx, byte [esi]
idiv cl
or esi, dword [ebx - 0x1337d86f]
fld xword [edx + 0xf2c4055]
pop esi
mov esp, 0xa57de72e
loope 0x455bdf
pop ebx
or eax, 0xa51955e2
in al, dx
add ch, dh
rcr byte [edi - 0x7ffcee85], cl
mov ebp, 0x444241d9
add eax, dword [eax + 0x4241d9bd]
inc esp
and cl, byte [eax]
inc esp
jle 0x455c2b
push ebp
pop edx
sbb byte [edi], 0xd0
clc
test eax, 0xac62ac4c
mov ebp, 0x29797f34
mov al, 3
inc ecx
adc dh, byte [ecx - 0x72]
jbe 0x455c83
adc bl, dh
sub eax, 0xc743fe59
je 0x455c8b
push ebx
shr dh, 1
inc ebp
fisub word [edi]
cmp esp, dword [ebp + 0x23b25f25]
inc esi
wait
mov dl, 0xfb
mov dword fs:[ebx - 0x7c], ebp
out 0xea, al
aad 0xe2
cmp al, 0xdc
inc esi
pop ds
inc edx
aas
leave
cwde
pop ss
inc esi
pop ebp
sbb eax, 0xfc045403
sub al, 0xc1
inc eax
std
dec edi
sub al, 0xca
inc edx
emms
xchg byte [ebx - 0x73], dh
adc dh, byte [edi + 0x707d3818]
inc esi
out 8, eax
dec ebx
jle 0x455cc1
ficomp word [edx + edx*8 - 0x35]
inc ecx
push 0x5317d549
test dword [esi - 0x5a], ebp
fsub dword [ebx + 0x637d9c4d]
inc esp
push edx
lds ecx, [ecx - 0x7c58aeea]
mov dl, byte [esi]
aas
dec ebx
mov ebp, 0xbc8fc412
cmc
mov edx, 0x682c5210
dec eax
pop ds
test al, 0x8d
dec edi
ljmp 0x741c
mov dword [ebp - 0x10], esi
call edi
cmp eax, 0x4d
ja 0x455feb
std
push ds
retf 0x2c4a
push 0x55823c
push 0x1000
lea eax, [ebp - 0x4010]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041c432
add esp, 0x10
call edi
cmp eax, 0x52
ja 0x456212
mov ecx, 0xeb2dcb9c
inc esp
and ebp, 0x50
mov ebp, ebx
cwde
xor eax, 0x5fc6d25
std
push edx
dec ebx
sub byte [0xffffef6e], dl
add byte [ebx - 0x4c], bh
cld
jns 0x4560aa
retf 0xb2dc
adc dword [0xc0632cd5], esp
xchg ecx, eax
nop
cmpsd dword [esi], dword es:[edi]
fcom st(7)
push edi
shr byte [ecx], 1
ret 0x7d3a
jno 0x45605a
cmp byte [ecx], cl
mov esp, 0xf62299e3
fsubp st(4)
cmpsb byte [esi], byte es:[edi]
cmp ebx, esi
mov esp, 0x12a824fc
push ds
lea esi, [0xa89cf351]
pop edi
fcos
add dword [0x99197480], 0xffffffff
pop dword [edi - 0x26]
and dword [eax + 0x73001b5f], edi
movsb byte es:[edi], byte gs:[esi]
salc
in al, 0x7e
push ebp
setb byte [ebp - 0x5f945c74]
dec ecx
mov byte [0x11903208], al
xor edx, dword [ebx + 0x1da6f40f]
add dword [esi + edx + 0x70835248], ebp
fadd dword [esi + eax*4]
arpl word [ebp - 0x2f], dx
xchg ebx, eax
push ds
mov esp, 0x745bb212
fild qword [eax - 0x35877c64]
mov ah, 2
jecxz 0x45611e
lodsb al, byte [esi]
push ss
dec eax
push edx
xor dword [eax - 0x28], 4
xchg byte [ebx + 0x55], ah
rcl dword [ebx - 0x4ded43e2]
pop ebx
je 0x4560e4
test al, 0x9c
cmp dword [eax - 0x36], 0xffffffb4
add ah, bl
adc byte [edx + 0x1a6ad7ce], cl
mov cl, dh
xlatb
push 0x1a
sbb ecx, 0xa5a1bc57
mov bl, 0xa9
pop ss
iretd
mov ebx, 0x74c9aae2
or al, 0x69
adc eax, dword [edx - 0x23]
test byte [ebp + 1], dl
push eax
pop esi
jp 0x4560f1
ret
lea eax, [ebp - 0x4010]
push eax
lea eax, [ebp - 0x2010]
push 0xfff
push eax
call fcn.0041c503
add esp, 0xc
call edi
cmp eax, 0x58
ja 0x456437
aaa
dec ebp
or al, byte [edi]
fistp word [ebx - 0x335c7976]
ret 0xadbc
lea eax, [ebp - 0x2010]
push eax
call fcn.0041b53d
pop ecx
push eax
lea eax, [ebp - 0x2010]
push eax
lea ecx, [ebp + 0x14]
call fcn.00402590
call edi
cmp eax, 0x5e
ja 0x45665e
in eax, dx
outsb dx, byte [esi]
invalid
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
sub ecx, esi
je 0x45672f
dec ecx
jne 0x4569a8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push ecx
lea ecx, [eax - 0x10]
mov dword [ebp + 0x20], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 7
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov dword [ebp + 0x1c], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 8
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov dword [ebp + 0x18], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp + 8]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 3
call int.0045a20d
mov esi, eax
call edi
cmp eax, 5
ja 0x4569a8
std
or eax, 0x3057a3f5
xor eax, 0xd3bc292b
retf
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push ecx
lea ecx, [eax - 0x10]
mov dword [ebp + 0x20], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov dword [ebp + 0x1c], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
cli
inc dword [ebx + 0x68910c0]
push ecx
mov byte [ebp - 4], 5
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov dword [ebp + 0x18], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 6
mov ecx, dword [ebp + 8]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
rcl byte [eax], 0x89
push es
mov byte [ebp - 4], 3
call int.00451d32
mov esi, eax
call edi
cmp eax, 0x69
ja 0x4569a8
std
jae 0x4567ae
jbe 0x45678f
mov dh, 0xab
xchg si, ax
push ecx
int1
mov gs, word [edi + ebx - 0x2f]
dec ecx
push 0xffffffffffffffe0
lahf
jmp 0x45675b
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.004013c0
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.004013c0
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004013c0
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004013c0
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x1c