Function at 0x4069f0
Capabilities:
Encode data using xor
Execute anti-debugging instructions
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edx, 0x6ae69f02
lea ecx, [ebp - 0x18]
call fcn.00401170
push 0x3fc1bd8d
mov edx, 0x40d060
lea ecx, [ebp - 0x10]
movq xmm0, qword [eax]
movq qword [0x40d060], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d068], eax
call fcn.00401640
movaps xmm0, xmmword [0x40b9b0]
add esp, 4
movups xmmword [ebp - 0x98], xmm0
mov byte [ebp - 0x78], 0x6c
mov ecx, dword [eax]
mov eax, ecx
movaps xmm0, xmmword [0x40b870]
xor eax, 0x44c12fac
mov dword [0x40d4a0], eax
xor eax, eax
movups xmmword [ebp - 0x88], xmm0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x98]
movaps xmm1, xmmword [0x40bc40]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x98], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x406a70
cmp eax, 0x21
jae 0x406aae
nop word [eax + eax]
xor byte [ebp + eax - 0x98], 0x6c
inc eax
cmp eax, 0x21
jb 0x406aa0
lea eax, [ebp - 0x98]
push eax
call ecx
mov edx, 0xf16ed7e0
lea ecx, [ebp - 0x18]
call fcn.00401170
push 0xf9c60615
mov edx, 0x40d09c
lea ecx, [ebp - 0x10]
movq xmm0, qword [eax]
movq qword [0x40d09c], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d0a4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d09c
mov eax, dword [eax]
xor eax, 0x44c12fd1
add eax, 0x25
push 0x1655a8bd
mov dword [0x40d534], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fd2
add eax, 0x26
push 0xd0861aa4
mov dword [0x40d538], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc5
add eax, 0x19
push 0xb09315f4
mov dword [0x40d504], eax
call fcn.00401640
mov esi, dword [0x40d534]
add esp, 4
add esi, 0xffffffdb
xor esi, 0x44c12fd1
mov eax, dword [eax]
xor eax, 0x44c12fba
add eax, 0xe
mov dword [0x40d4d8], eax
mov eax, dword [0x40d504]
add eax, 0xffffffe7
xor eax, 0x44c12fc5
call eax
lea ecx, [ebp - 0x74]
push ecx
push 8
push eax
call esi
test eax, eax
je 0x406bc5
mov eax, dword [0x40d538]
lea ecx, [ebp - 0x24]
push ecx
push 4
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x24], 4
push ecx
push 0x14
push dword [ebp - 0x74]
add eax, 0xffffffda
xor eax, 0x44c12fd2
call eax
test eax, eax
je 0x406bc5
cmp dword [ebp - 0x1c], 0
setne bl
jmp 0x406bcb
mov bl, byte [ebp - 0x99]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x406be2
push eax
mov eax, dword [0x40d4d8]
add eax, 0xfffffff2
xor eax, 0x44c12fba
call eax
test bl, bl
jne 0x406bff
mov byte [0x40d0a8], bl
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00409527
mov esp, ebp
pop ebp
ret
push 0x553b5c78
mov edx, 0x40d060
lea ecx, [ebp - 0x10]
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc3
add eax, 0x17
push 0xac8fb92
mov dword [0x40d4fc], eax
call fcn.00401640
mov ecx, dword [0x40d4fc]
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
add ecx, 0xffffffe9
movaps xmm0, xmmword [str.00B0_]
add esp, 4
mov eax, dword [eax]
xorps xmm0, xmmword [0x40bc40]
xor eax, 0x44c12fc4
add eax, 0x18
mov word [ebp - 0x7c], 0x5c09
mov dword [0x40d500], eax
xor ecx, 0x44c12fc3
mov byte [ebp - 0x7a], 0x6c
mov eax, 0x10
movups xmmword [ebp - 0x8c], xmm0
xor byte [ebp + eax - 0x8c], 0x6c
inc eax
cmp eax, 0x13
jb 0x406c82
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x8c]
push eax
call ecx
mov esi, eax
test esi, esi
je 0x406d21
mov ecx, dword [0x40d500]
lea eax, [ebp - 0x10]
push 0
push eax
push 8
lea eax, [ebp - 0x28]
add ecx, 0xffffffe8
push eax
push 0
push 0
push 0x7405c
xor ecx, 0x44c12fc4
push esi
call ecx
test eax, eax
je 0x406d11
cmp dword [ebp - 0x24], 0x20
jg 0x406d11
jl 0x406ce7
cmp dword [ebp - 0x28], 0
jae 0x406d11
mov eax, dword [0x40d4d8]
add eax, 0xfffffff2
push esi
xor eax, 0x44c12fba
call eax
mov byte [0x40d0a9], 1
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00409527
mov esp, ebp
pop ebp
ret
mov eax, dword [0x40d4d8]
add eax, 0xfffffff2
push esi
xor eax, 0x44c12fba
call eax
push 0x30601c1c
mov edx, 0x40d060
lea ecx, [ebp - 0x10]
call fcn.00401640
add esp, 4
mov eax, dword [eax]
xor eax, 0x44c12fd0
add eax, 0x24
mov dword [0x40d530], eax
call fcn.00401dd0
test al, al
jne 0x406cf7
push 0xc13a7ad3
mov edx, 0x40d09c
lea ecx, [ebp - 0x10]
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d09c
mov eax, dword [eax]
xor eax, 0x44c12fcd
add eax, 0x21
push 0xa9290135
mov dword [0x40d524], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d09c
mov eax, dword [eax]
xor eax, 0x44c12fce
add eax, 0x22
push 0xb039adfe
mov dword [0x40d528], eax
call fcn.00401640
add esp, 4
mov eax, dword [eax]
xor eax, 0x44c12fcf
add eax, 0x23
mov dword [0x40d52c], eax
call fcn.00403bd0
test al, al
jne 0x406cf7
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0x64
movlpd qword [ebp - 0x18], xmm0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x74], eax
rdtsc
mov edi, eax
mov dword [ebp - 0x10], edx
mov eax, 1
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0x88]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebx + 0xc], edx
rdtsc
sub eax, edi
sbb edx, dword [ebp - 0x10]
add ecx, eax
mov eax, dword [ebp - 0x1c]
adc eax, edx
mov dword [ebp - 0x74], ecx
sub dword [ebp - 0x24], 1
mov dword [ebp - 0x1c], eax
jne 0x406de2
test eax, eax
ja 0x406cf7
jb 0x406e3a
cmp ecx, 0x49444
jae 0x406cf7
movaps xmm0, xmmword [0x40b9b0]
mov eax, 0x10
mov ecx, dword [0x40d4a0]
xorps xmm0, xmmword [0x40bc40]
xor ecx, 0x44c12fac
mov dword [ebp - 0x88], 0x305e5f01
mov dword [ebp - 0x84], 0x1e091f19
mov dword [ebp - 0x80], 0x8425e5f
mov word [ebp - 0x7c], 0
mov byte [ebp - 0x7a], 0x6c
movups xmmword [ebp - 0x98], xmm0
nop word [eax + eax]
xor byte [ebp + eax - 0x98], 0x6c
inc eax
cmp eax, 0x1f
jb 0x406e90
lea eax, [ebp - 0x98]
push eax
call ecx
test eax, eax
je 0x406cfe
mov edx, 0x84c05e40
lea ecx, [ebp - 0x18]
call fcn.00401170
mov edx, 0x2489aab
lea ecx, [ebp - 0x18]
movq xmm0, qword [eax]
movq qword [0x40d06c], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d074], eax
call fcn.00401170
push 0x10066f2f
mov edx, 0x40d060
lea ecx, [ebp - 0x10]
movq xmm0, qword [eax]
movq qword [0x40d078], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d080], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fad
inc eax
push 0x369744fb
mov dword [0x40d4a4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d06c
mov eax, dword [eax]
xor eax, 0x44c12fae
add eax, 2
push 0xd70ee2b9
mov dword [0x40d4a8], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12faf
add eax, 3
push 0x34df7bb
mov dword [0x40d4ac], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fb0
add eax, 4
push 0x390199a9
mov dword [0x40d4b0], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fb1
add eax, 5
push 0x32d79ad5
mov dword [0x40d4b4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fb2
add eax, 6
push 0x4b9c777b
mov dword [0x40d4b8], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fb3
add eax, 7
push 0x54847d
mov dword [0x40d4bc], eax
call fcn.00401640
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
add esp, 4
xor eax, 0x44c12fb4
add eax, 8
mov edx, 0x40d078
mov dword [0x40d4c0], eax
push 0x5dd9ce14
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fb5
add eax, 9
push 0xa1a4264e
mov dword [0x40d4c4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fb6
add eax, 0xa
push 0xc1f3b876
mov dword [0x40d4c8], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fb7
add eax, 0xb
push 0x267cf1a5
mov dword [0x40d4cc], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fb8
add eax, 0xc
push 0x28ed5c0
mov dword [0x40d4d0], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fb9
add eax, 0xd
push 0xebadec8a
mov dword [0x40d4d4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fbb
add eax, 0xf
push 0xaf1b123b
mov dword [0x40d4dc], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fbc
add eax, 0x10
push 0x435a600b
mov dword [0x40d4e0], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d078
mov eax, dword [eax]
xor eax, 0x44c12fbd
add eax, 0x11
push 0xc7f07f09
mov dword [0x40d4e4], eax
call fcn.00401640
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
add esp, 4
xor eax, 0x44c12fbe
add eax, 0x12
mov edx, 0x40d060
mov dword [0x40d4e8], eax
push 0x40f6426d
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d06c
mov eax, dword [eax]
xor eax, 0x44c12fbf
add eax, 0x13
push 0xa1d45974
mov dword [0x40d4ec], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d06c
mov eax, dword [eax]
xor eax, 0x44c12fc0
add eax, 0x14
push 0xaf11bc24
mov dword [0x40d4f0], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc1
add eax, 0x15
push 0xfc1fda83
mov dword [0x40d4f4], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc6
add eax, 0x1a
push 0x8436f795
mov dword [0x40d508], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d06c
mov eax, dword [eax]
xor eax, 0x44c12fc7
add eax, 0x1b
push 0xa5c44c50
mov dword [0x40d50c], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc8
add eax, 0x1c
push 0x9ce0d4a
mov dword [0x40d510], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fc9
add eax, 0x1d
push 0xcd53f5dd
mov dword [0x40d514], eax
call fcn.00401640
add esp, 4
lea ecx, [ebp - 0x10]
mov edx, 0x40d060
mov eax, dword [eax]
xor eax, 0x44c12fca
add eax, 0x1e
push 0x649eb9c1
mov dword [0x40d518], eax
call fcn.00401640
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
add esp, 4
xor eax, 0x44c12fcb
add eax, 0x1f
mov edx, 0x40d060
mov dword [0x40d51c], eax
push 0x19e65db6
call fcn.00401640
movaps xmm0, xmmword [0x40b9b0]
add esp, 4
mov ecx, dword [0x40d4a0]
movups xmmword [ebp - 0x98], xmm0
mov eax, dword [eax]
xor ecx, 0x44c12fac
movaps xmm0, xmmword [0x40b860]
xor eax, 0x44c12fcc
add eax, 0x20
mov byte [ebp - 0x78], 0x6c
mov dword [0x40d520], eax
xor eax, eax
movups xmmword [ebp - 0x88], xmm0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x98]
movaps xmm1, xmmword [0x40bc40]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x98], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x4072f0
cmp eax, 0x21
jae 0x40732e
nop word [eax + eax]
xor byte [ebp + eax - 0x98], 0x6c
inc eax
cmp eax, 0x21
jb 0x407320
lea eax, [ebp - 0x98]
push eax
call ecx
test eax, eax
je 0x406cfe
mov edx, 0xd4858824
lea ecx, [ebp - 0x18]
call fcn.00401170
push 0x32a4b9e0
mov edx, 0x40d084
lea ecx, [ebp - 0x10]
movq xmm0, qword [eax]
movq qword [0x40d084], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d08c], eax
call fcn.00401640
add esp, 4
mov eax, dword [eax]
xor eax, 0x44c12fc2
add eax, 0x16
push 0x48
mov dword [0x40d4f8], eax
lea eax, [ebp - 0x70]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ax, word [0x7ffe026a]
lea edi, [ebp - 0x6e]
mov word [ebp - 0x70], ax
mov esi, 0x7ffe0274
mov ecx, 0x40
add esp, 0xc
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x7ffe03c8]
mov dword [ebp - 0x2c], eax
or eax, 0xffffffff
xor edx, edx
nop word [eax + eax]
movsx ecx, byte [ebp + edx - 0x70]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x6f]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x6e]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x6d]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x6c]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x6b]
add edx, 6
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
cmp edx, 0x48
jb 0x4073c0
not eax
mov dword [0x40d0ac], eax
call fcn.00406750
mov esi, dword [0x40d4f0]
xor ebx, ebx
mov dword [0x40d0b0], eax
add esi, 0xffffffec
mov eax, dword [0x40d4ec]
xor esi, 0x44c12fc0
add eax, 0xffffffed
mov dword [ebp - 0x74], 0x288
xor eax, 0x44c12fbf
call eax
push 0x288
push ebx
push eax
call esi
mov ecx, dword [0x40d4f8]
mov edi, eax
lea eax, [ebp - 0x74]
add ecx, 0xffffffea
push eax
xor ecx, 0x44c12fc2
mov esi, edi
push edi
call ecx
cmp eax, 0x6f
jne 0x4074ed
mov eax, dword [0x40d4ec]
mov esi, dword [0x40d4f4]
add eax, 0xffffffed
add esi, 0xffffffeb
xor eax, 0x44c12fbf
xor esi, 0x44c12fc1
call eax
push edi
push ebx
push eax
call esi
mov eax, dword [0x40d4ec]
mov edi, dword [0x40d4f0]
add eax, 0xffffffed
mov esi, dword [ebp - 0x74]
add edi, 0xffffffec
xor eax, 0x44c12fbf
xor edi, 0x44c12fc0
call eax
push esi
push ebx
push eax
call edi
mov edi, eax
mov esi, eax
mov eax, dword [0x40d4f8]
lea ecx, [ebp - 0x74]
add eax, 0xffffffea
push ecx
xor eax, 0x44c12fc2
push esi
call eax
test eax, eax
jne 0x40754f
test esi, esi
je 0x40754f
nop dword [eax]
cmp dword [esi + 0x190], 6
je 0x407521
mov esi, dword [esi]
test esi, esi
jne 0x407510
jmp 0x40754f
or ebx, 0xffffffff
xor ecx, ecx
nop word [eax + eax]
movsx eax, byte [esi + ecx + 0x194]
inc ecx
xor eax, ebx
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x40b440]
cmp ecx, 6
jb 0x407530
not ebx
mov eax, dword [0x40d4ec]
mov esi, dword [0x40d4f4]
add eax, 0xffffffed
add esi, 0xffffffeb
xor eax, 0x44c12fbf
xor esi, 0x44c12fc1
call eax
push edi
push 0
push eax
call esi
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
mov dword [0x40d0b4], ebx
xor ecx, ebp
pop ebx
call fcn.00409527
mov esp, ebp
pop ebp
ret