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

Disassembly:
sub esp, 0x12c
mov eax, dword [0x34234fcc]
xor eax, esp
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x13c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x144]
push edi
mov edi, ecx
push 0
push 0x6b39dac7
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], eax
call fcn.341f6350
mov ebx, dword [edi + 4]
push 0x1000
push 0
push ebx
call sub.MSVCR90.dll_memset
mov ebp, dword [esp + 0x14c]
mov eax, 0x100
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
lea edi, [ebx + 0xe00]
mov ecx, 0x80
rep stosd dword es:[edi], eax
xor ecx, ecx
mov eax, 0x100
mov word [ebx + 2], cx
mov word [ebx], ax
mov edx, dword [ebp + 4]
mov dword [ebx + 0x14], edx
mov eax, dword [ebp + 4]
mov ecx, eax
and ecx, 0xff
add esp, 0xc
cmp ecx, 2
jge 0x34260b56
mov eax, dword [ebp]
cmp eax, 1
jne 0x341fa6c3
mov edx, dword [0x341f6320]
mov dword [ebx + 4], edx
mov eax, dword [0x341f6324]
mov dword [ebx + 8], eax
mov ecx, dword [0x341f6328]
mov dword [ebx + 0xc], ecx
mov edx, dword [0x341f632c]
mov dword [ebx + 0x10], edx
mov edx, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebx + 0x18]
mov dword [esp + 0x20], eax
mov dword [eax], edx
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp]
cmp eax, 3
je 0x341fa6f3
cmp eax, 4
je 0x341fa6f3
mov dword [ebx + 0x3e], 0
cmp dword [ebp], 3
mov ecx, dword [ebx + 0x3e]
mov dword [esp + 0x18], ecx
je 0x341f6202
mov eax, dword [ebp + 4]
mov edx, eax
and edx, 0xff
cmp edx, 2
jge 0x34260b9b
mov eax, dword [ebp + 4]
mov ecx, eax
and ecx, 0xff
cmp ecx, 2
jge 0x342ae15d
xor eax, eax
xor edx, edx
test eax, eax
sete dl
xor eax, eax
test esi, esi
sete al
cmp edx, eax
jne 0x342ae172
test esi, esi
jne 0x342ae189
mov esi, dword [esp + 0x144]
test esi, esi
je 0x341f624b
lea edi, [ebx + 0x42]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x6a], 0x11a6
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x6e], eax
mov cx, word [ebp + 0x14]
lea edx, [esp + 0x24]
push edx
mov word [ebx + 0x3c], cx
call fcn.341f63d1
fldz
fld qword [esp + 0x24]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x342ae1c1
mov edi, dword [sym.imp.MSVCR90.dll_strncpy_s]
fstp qword [ebx + 0x72]
lea ebp, [ebx + 0x9c]
xor esi, esi
mov eax, dword [esi + 0x341f6330]
push 0xffffffffffffffff
lea ecx, [esi + 0x341f6334]
push ecx
push 0xc
push ebp
mov dword [ebp - 4], eax
call edi
add esp, 0x10
cmp dword [esi + 0x341f6330], 0
je 0x341f62be
add esi, 0x10
add ebp, 0x10
cmp esi, 0x20
jb 0x341f6290
fld qword [ebx + 0x72]
add ebx, 0x42
call fcn.341f64c1
mov edx, 4
mov ecx, ebx
sub edx, ebx
xor dword [ecx], eax
add ecx, 4
lea esi, [edx + ecx]
cmp esi, 0x28
jle 0x341f62d2
mov edx, dword [esp + 0x20]
push 0x80
push edx
lea ecx, [esp + 0x34]
call fcn.341f64e1
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x342ae1ce
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x138]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.341f1dd1
add esp, 0x12c
ret 0x10
cmp eax, 4
jne 0x3426e504
mov eax, dword [0x34227ed0]
mov dword [ebx + 4], eax
mov ecx, dword [0x34227ed4]
mov dword [ebx + 8], ecx
mov edx, dword [0x34227ed8]
mov dword [ebx + 0xc], edx
mov eax, dword [0x34227edc]
mov dword [ebx + 0x10], eax
jmp 0x341f61ad
call fcn.341f37b8
call edi
or eax, 0xa0a00000
mov dword [ebx + 0x3e], eax
jmp 0x341f61e1
cmp eax, 0xfffe
jge 0x341f617e
mov eax, dword [ebp]
cmp eax, 1
je 0x342ae10e
cmp eax, 4
je 0x342ae136
mov ecx, dword [0x34227ec0]
mov dword [ebx + 4], ecx
mov edx, dword [0x34227ec4]
mov dword [ebx + 8], edx
mov eax, dword [0x34227ec8]
mov dword [ebx + 0xc], eax
mov ecx, dword [0x34227ecc]
jmp 0x34261292
cmp eax, 0xfffe
jl 0x341f624b
jmp 0x341f6202
mov dword [ebx + 0x10], ecx
jmp 0x341f61ad
mov ecx, dword [0x34227ee0]
mov dword [ebx + 4], ecx
mov edx, dword [0x34227ee4]
mov dword [ebx + 8], edx
mov eax, dword [0x34227ee8]
mov dword [ebx + 0xc], eax
mov ecx, dword [0x34227eec]
jmp 0x34261292
mov edx, dword [0x342ae1e4]
mov dword [ebx + 4], edx
mov eax, dword [0x342ae1e8]
mov dword [ebx + 8], eax
mov ecx, dword [0x342ae1ec]
mov dword [ebx + 0xc], ecx
mov edx, dword [0x342ae1f0]
mov dword [ebx + 0x10], edx
jmp 0x341f61ad
mov eax, dword [0x342d999c]
mov dword [ebx + 4], eax
mov ecx, dword [0x342d99a0]
mov dword [ebx + 8], ecx
mov edx, dword [0x342d99a4]
mov dword [ebx + 0xc], edx
mov eax, dword [0x342d99a8]
mov dword [ebx + 0x10], eax
jmp 0x341f61ad
cmp eax, 0xfffe
jge 0x341f6216
mov eax, 1
jmp 0x341f6218
mov ecx, dword [esp + 0x10]
push 1
push 0xfffffc15
call fcn.341f8dac
xor eax, eax
jmp 0x341f6302
call fcn.341f37b8
call edi
movzx ecx, al
mov al, cl
movzx eax, al
imul eax, eax, 0x1010101
mov dword [ebx + 0x42], eax
mov dword [ebx + 0x46], eax
mov dword [ebx + 0x4a], eax
mov dword [ebx + 0x4e], eax
mov dword [ebx + 0x52], eax
mov dword [ebx + 0x56], eax
mov dword [ebx + 0x5a], eax
mov dword [ebx + 0x5e], eax
mov dword [ebx + 0x62], eax
mov dword [ebx + 0x66], eax
jmp 0x341f624b
fstp st(0)
fld1
fst qword [esp + 0x24]
jmp 0x341f627f
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.34329e93
jmp 0x341f62fe