Function at 0x401280
Capabilities:
Encode data using xor
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x6c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x44], 0
xorps xmm0, xmm0
mov byte [esp + 0x47], al
movaps xmmword [esp + 0x2c], xmm0
xor ecx, ecx
movq qword [esp + 0x3c], xmm0
push esi
mov word [esp + 0x35], ax
mov word [esp + 0x38], ax
mov byte [esp + 0x3a], al
mov dword [esp + 0x3f], eax
mov dword [esp + 0x47], eax
mov dword [esp + 0x31], eax
mov dword [esp + 0x3b], eax
mov dword [esp + 0x43], eax
mov byte [esp + 0x37], 4
nop word [eax + eax]
rdtsc
mov byte [esp + ecx + 0x3b], al
inc ecx
cmp ecx, 4
jb 0x4012e0
xor esi, esi
nop
mov cl, byte [esp + esi*4 + 0x3b]
rdtsc
not cl
xor al, cl
mov byte [esp + esi + 0x43], al
inc esi
cmp esi, 4
jb 0x4012f0
movzx esi, byte [esp + 0x37]
mov eax, fcn.00401050
xor ecx, ecx
mov dword [esp + 0x20], eax
test esi, esi
je 0x40136e
test cl, 1
je 0x401323
mov dl, byte [esp + ecx*4 + 0x3b]
jmp 0x40132b
mov eax, esi
sub eax, ecx
mov dl, byte [esp + eax*4 + 0x43]
lea eax, [esp + 0x20]
not dl
xor byte [eax + ecx], dl
inc ecx
cmp ecx, esi
jl 0x401318
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x31], eax
mov dword [esp + 0x28], eax
test cl, 1
je 0x401352
mov dl, byte [esp + ecx*4 + 0x3b]
jmp 0x40135a
mov eax, esi
sub eax, ecx
mov dl, byte [esp + eax*4 + 0x43]
lea eax, [esp + 0x28]
not dl
xor byte [eax + ecx], dl
inc ecx
cmp ecx, esi
jl 0x401347
mov eax, dword [esp + 0x28]
jmp 0x401376
mov dword [esp + 0x31], eax
mov dword [esp + 0x28], eax
cmp eax, fcn.00401050
jne 0x401389
lea eax, [esp + 0x50]
push eax
call fcn.00401050
jmp 0x401390
lea ecx, [esp + 0x50]
push ecx
call eax
movzx esi, byte [esp + 0x5b]
add esp, 4
mov eax, dword [esp + 0x51]
xor ecx, ecx
mov dword [esp + 0x2c], eax
test esi, esi
je 0x4013d0
lea edx, [esp + 0x63]
lea edx, [edx + esi*4]
nop dword [eax]
test cl, 1
je 0x4013be
lea eax, [esp + 0x5b]
lea eax, [eax + ecx*4]
jmp 0x4013c0
mov eax, edx
mov al, byte [eax]
sub edx, 4
not al
xor byte [esp + ecx + 0x2c], al
inc ecx
cmp ecx, esi
jl 0x4013b0
mov dword [esp + 0x20], 0xc5d45b20
mov dword [esp + 0x24], 0xf2a506e3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], 0x699fc8c6
mov dword [esp + 0x24], 0x4b0b0ca6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0xc5de3205
mov dword [esp + 0x24], 0xf2a506e3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], 0x699fc8c6
mov dword [esp + 0x24], 0x4b0b0ca6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
movaps xmm1, xmmword [esp + 0x10]
push dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x40], ecx
xorps xmm1, xmmword [esp + 0x34]
push eax
movaps xmmword [esp + 0x18], xmm1
call fcn.00401010
push 0
call fcn.004043a8
add esp, 0xc
push eax
call fcn.00404581
mov ecx, dword [esp + 0x70]
add esp, 4
xor eax, eax
pop esi
xor ecx, esp
call fcn.00401492
mov esp, ebp
pop ebp
ret