Function at 0x40d014
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
test edi, edi
push esi
jl 0x40d0a0
jne 0x40d028
push 0
jmp 0x40d09a
mov al, byte [0x48984d]
neg al
sbb eax, eax
and eax, 0x28
add eax, 0xf
cmp edi, eax
jae 0x40d099
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [esp + 0x10]
push eax
call esi
test eax, eax
je 0x40d099
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 8]
push eax
call esi
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fild qword [esp + 0x18]
fild qword [esp + 0x20]
fdivp st(1)
fmul qword [0x470338]
call fcn.00464806
cmp eax, edi
jb 0x40d057
jmp 0x40d0a0
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x411238
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push esi
xor esi, esi
inc esi
mov dword [0x4876c0], eax
push edi
mov edx, esi
mov eax, 0x4876c0
mov ecx, dword [eax]
mov edi, ecx
shr edi, 0x1e
xor edi, ecx
imul edi, edi, 0x6c078965
add edi, edx
mov dword [eax + 4], edi
add eax, 4
inc edx
cmp eax, 0x48807c
jl 0x411249
pop edi
mov dword [0x475c94], esi
mov dword [0x488090], esi
pop esi
ret

Function at 0x411277
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ecx
cmp dword [0x488090], 0
push ebx
push ebp
push esi
push edi
mov esi, 0x4876c0
jne 0x411297
push 0
call fcn.00451931
pop ecx
call fcn.00411238
mov dword [0x475c94], 0x270
mov dword [0x4876bc], esi
mov edx, 0xe3
mov ecx, bind
mov eax, 0x9908b0df
mov ebx, dword [esi]
lea edi, [esi + 4]
mov ebp, dword [edi]
xor ebx, ebp
and ebx, ecx
xor ebx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, ebp
and cl, 1
shr ebx, 1
neg cl
sbb ecx, ecx
and ecx, eax
xor ebx, ecx
xor ebx, dword [esi + 0x634]
dec edx
mov ecx, dword [esp + 0x10]
mov dword [esi], ebx
mov esi, edi
jne 0x4112b6
mov edx, 0x18c
mov ebx, dword [esi]
lea edi, [esi + 4]
mov ebp, dword [edi]
xor ebx, ebp
and ebx, ecx
xor ebx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, ebp
and cl, 1
shr ebx, 1
neg cl
sbb ecx, ecx
and ecx, eax
xor ebx, ecx
xor ebx, dword [esi - 0x38c]
dec edx
mov ecx, dword [esp + 0x10]
mov dword [esi], ebx
mov esi, edi
jne 0x4112ec
mov edx, dword [0x4876c0]
mov edi, dword [esi]
xor edi, edx
and edi, ecx
xor edi, dword [esi]
and dl, 1
shr edi, 1
neg dl
sbb edx, edx
and edx, eax
xor edi, edx
xor edi, dword [esi - 0x38c]
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x411346
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
dec dword [0x475c94]
jne 0x411353
call fcn.00411277
mov eax, dword [0x4876bc]
mov ecx, dword [eax]
add dword [0x4876bc], 4
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
ret