Function at 0x405260
Capabilities:
Check for time delay via gettickcount
Encode data using xor
Get file size

Disassembly:
sbb byte [ecx + ecx*4 + 0xd], ah
add byte [eax], al
add byte [eax], al
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x461920
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x474860]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 3
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
cmp eax, 3
ja 0x4052ce
xchg edx, eax
cwde
adc al, 0x2b
mov bl, 0x66
pop ebp
ja 0x405245
sahf
inc edi
aas
mov bl, 0xcd
popfd
inc ebx
shr dh, 0xaa
adc byte [ebp - 0x691b0f6], bh
nop
pop eax
retf 0xd6c4
mov dword [ebp - 0x14], 0
call edi
add bh, bh
xlatb
cmp eax, 9
ja 0x405341
fild word [esi - 7]
lcall 0x4d3b, 0x9123c13b
push ss
xor al, 0x1d
xchg byte [0xc7330ea4], cl
je 0x4052d4
invalid
mov esi, dword [ebp + 0x18]
test esi, esi
jne 0x405418
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov dword [ebp - 0x1c], esp
mov esi, esp
call fcn.00407420
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov dword [ebp - 0x20], esp
mov esi, esp
call fcn.00407420
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 5
mov ecx, dword [ebp + 8]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00407420
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 3
call fcn.00404e70
test eax, eax
jne 0x4053ab
mov esi, dword [ebp - 0x14]
test esi, esi
jne 0x405418
call edi
cmp eax, 8
ja 0x405580
mov esp, 0xd1b7a1d1
mov dword [0x2086e23f], eax
aaa
repne scasd eax, dword es:[edi]
fistp dword [edi + edi - 0x5fa8de71]
test dword [ebp - 0x28516893], 0xed15c880
cdq
mov al, 0xb
inc ebp
and al, 0x93
invalid
push 0
push 0x80
push 3
push 0
push 7
push SysReAllocString
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
call edi
cmp eax, 9
ja 0x4054a1
sub dword [eax], edi
mov dh, 0xaa
xor eax, 0xc896f352
xlatb
ljmp 0x5460
test ebx, ebx
je 0x405584
call edi
cmp eax, 6
ja 0x4054f7
cwde
inc edx
inc esi
in eax, 0xf7
and ch, dl
push 0x4f
cmpsd dword [esi], dword es:[edi]
imul dword [ebp + 0x1479138e]
rcr dword [edi], 1
push ss
inc eax
xchg dword [edi + 0x9d33f4d], ecx
add byte [ebx], al
xor esp, dword [edi]
xor byte [ebx], dl
pushal
retf
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x14], eax
call edi
cmp eax, 1
ja 0x40551f
fbld tbyte [ebx + 0xc]
out 0x86, eax
push es
wait
adc cl, cl
dec eax
sti
ror byte [ebx + 0x604b54cb], 0x27
int1
movsd dword es:[edi], dword [esi]
std
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp eax, 6
ja 0x405574
mov ecx, dword [edi + 0x25]
in eax, dx
test al, 0x74
mov al, byte [esi + 0x1c3c82ca]
dec eax
cmp byte [esp + ebx], 0x48
mov esp, ss
je 0x40555d
test al, 0xdd
jnp 0x40551c
inc esi
fdivr qword [eax]
mov ch, 0xc0
pop dword [eax]
add dword [edx], esi
jae 0x405536
retf 0x888b
salc
sbb al, 0xb8
dec ecx
pop edx
add eax, 0xbc2e76df
bound esi, qword [0xff482f5d]
retf
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
cmp eax, esi
jne 0x405584
mov bl, 1
jmp 0x405586
xor bl, bl
mov byte [ebp - 4], 2
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
or esi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4055a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4055c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4055e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0x14]
add edi, 0xfffffff0
lea eax, [edi + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x40560a
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00447bb9
mov esp, ebp
pop ebp
ret 0x18