Function at 0x406e80
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x90
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edx, 0x6ae69f02
lea ecx, [ebp - 0x20]
call fcn.00401170
push 0x3fc1bd8d
mov edx, 0x40d060
lea ecx, [ebp - 8]
movq xmm0, qword [eax]
movq qword [0x40d060], xmm0
mov eax, dword [eax + 8]
mov dword [0x40d068], eax
call fcn.00401640
movaps xmm0, xmmword [0x40b9d0]
add esp, 4
movups xmmword [ebp - 0x90], xmm0
mov byte [ebp - 0x70], 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 - 0x80], xmm0
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x90]
movaps xmm1, xmmword [0x40bc70]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x90], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x406f10
cmp eax, 0x21
jae 0x406f4e
nop word [eax + eax]
xor byte [ebp + eax - 0x90], 0x6c
inc eax
cmp eax, 0x21
jb 0x406f40
lea eax, [ebp - 0x90]
push eax
call ecx
mov edx, 0xf16ed7e0
lea ecx, [ebp - 0x20]
call fcn.00401170
push 0xf9c60615
mov edx, 0x40d09c
lea ecx, [ebp - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 0x18]
push ecx
push 8
push eax
call esi
test eax, eax
je 0x407066
mov eax, dword [0x40d538]
lea ecx, [ebp - 0xc]
push ecx
push 4
lea ecx, [ebp - 8]
mov dword [ebp - 0xc], 4
push ecx
push 0x14
push dword [ebp - 0x18]
add eax, 0xffffffda
xor eax, 0x44c12fd2
call eax
test eax, eax
je 0x407066
cmp dword [ebp - 8], 0
setne byte [ebp - 0x69]
jmp 0x40706c
mov al, byte [ebp - 0x69]
mov byte [ebp - 0x69], al
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x407083
push eax
mov eax, dword [0x40d4d8]
add eax, 0xfffffff2
xor eax, 0x44c12fba
call eax
cmp byte [ebp - 0x69], 0
jne 0x407095
mov byte [0x40d0a8], 0
jmp 0x40719c
push 0x553b5c78
mov edx, 0x40d060
lea ecx, [ebp - 8]
call fcn.00401640
add esp, 4
lea ecx, [ebp - 8]
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 - 0x20], xmm0
add ecx, 0xffffffe9
movaps xmm0, xmmword [str.00B0_]
add esp, 4
mov eax, dword [eax]
xorps xmm0, xmmword [0x40bc70]
xor eax, 0x44c12fc4
add eax, 0x18
mov word [ebp - 0x74], 0x5c09
mov dword [0x40d500], eax
xor ecx, 0x44c12fc3
mov byte [ebp - 0x72], 0x6c
mov eax, 0x10
movups xmmword [ebp - 0x84], xmm0
nop dword [eax + eax]
xor byte [ebp + eax - 0x84], 0x6c
inc eax
cmp eax, 0x13
jb 0x407120
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x84]
push eax
call ecx
mov esi, eax
test esi, esi
je 0x4071c1
mov ecx, dword [0x40d500]
lea eax, [ebp - 8]
push 0
push eax
push 8
lea eax, [ebp - 0x20]
add ecx, 0xffffffe8
push eax
push 0
push 0
push 0x7405c
xor ecx, 0x44c12fc4
push esi
call ecx
test eax, eax
je 0x4071b1
cmp dword [ebp - 0x1c], 0x20
jg 0x4071b1
jl 0x407185
cmp dword [ebp - 0x20], 0
jae 0x4071b1
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
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00409937
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [0x40d4d8]
add eax, 0xfffffff2
push esi
xor eax, 0x44c12fba
call eax
push 0x30601c1c
mov edx, 0x40d060
lea ecx, [ebp - 8]
call fcn.00401640
add esp, 4
mov eax, dword [eax]
xor eax, 0x44c12fd0
add eax, 0x24
mov dword [0x40d530], eax
call fcn.00401de0
test al, al
jne 0x407195
push 0xc13a7ad3
mov edx, 0x40d09c
lea ecx, [ebp - 8]
call fcn.00401640
add esp, 4
lea ecx, [ebp - 8]
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 - 8]
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.00404070
test al, al
jne 0x407195
movaps xmm0, xmmword [0x40b9d0]
mov eax, 0x10
mov ecx, dword [0x40d4a0]
xorps xmm0, xmmword [0x40bc70]
xor ecx, 0x44c12fac
mov dword [ebp - 0x80], 0x305e5f01
mov dword [ebp - 0x7c], 0x1e091f19
mov dword [ebp - 0x78], 0x8425e5f
mov word [ebp - 0x74], 0
mov byte [ebp - 0x72], 0x6c
movups xmmword [ebp - 0x90], xmm0
nop dword [eax]
xor byte [ebp + eax - 0x90], 0x6c
inc eax
cmp eax, 0x1f
jb 0x4072b0
lea eax, [ebp - 0x90]
push eax
call ecx
test eax, eax
je 0x40719c
mov edx, 0x84c05e40
lea ecx, [ebp - 0x20]
call fcn.00401170
mov edx, 0x2489aab
lea ecx, [ebp - 0x20]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
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 - 8]
add esp, 4
xor eax, 0x44c12fcb
add eax, 0x1f
mov edx, 0x40d060
mov dword [0x40d51c], eax
push 0x19e65db6
call fcn.00401640
movaps xmm0, xmmword [0x40b9d0]
add esp, 4
mov ecx, dword [0x40d4a0]
movaps xmm1, xmmword [0x40bc70]
xor ecx, 0x44c12fac
mov eax, dword [eax]
xor eax, 0x44c12fcc
mov byte [ebp - 0x70], 0x6c
add eax, 0x20
movups xmmword [ebp - 0x90], xmm0
mov dword [0x40d520], eax
xor eax, eax
movaps xmm0, xmmword [0x40b860]
movups xmmword [ebp - 0x80], xmm0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x90]
xorps xmm0, xmm1
movups xmmword [ebp + eax - 0x90], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x407710
cmp eax, 0x21
jae 0x40773e
xor byte [ebp + eax - 0x90], 0x6c
inc eax
cmp eax, 0x21
jb 0x407730
lea eax, [ebp - 0x90]
push eax
call ecx
test eax, eax
je 0x40719c
mov edx, 0xd4858824
lea ecx, [ebp - 0x20]
call fcn.00401170
push 0x32a4b9e0
mov edx, 0x40d084
lea ecx, [ebp - 8]
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 - 0x68]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ax, word [0x7ffe026a]
lea edi, [ebp - 0x66]
mov word [ebp - 0x68], ax
mov esi, 0x7ffe0274
mov ecx, 0x40
add esp, 0xc
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x7ffe03c8]
mov dword [ebp - 0x24], eax
or eax, 0xffffffff
xor edx, edx
nop word [eax + eax]
movsx ecx, byte [ebp + edx - 0x68]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x67]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x66]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x65]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x64]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
movsx ecx, byte [ebp + edx - 0x63]
add edx, 6
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x40b440]
cmp edx, 0x48
jb 0x4077d0
not eax
mov dword [0x40d0ac], eax
call fcn.00406bf0
mov esi, dword [0x40d4f0]
xor edi, edi
mov dword [0x40d0b0], eax
add esi, 0xffffffec
mov eax, dword [0x40d4ec]
xor esi, 0x44c12fc0
add eax, 0xffffffed
mov dword [ebp - 0xc], 0x288
xor eax, 0x44c12fbf
call eax
push 0x288
push edi
push eax
call esi
mov ecx, dword [0x40d4f8]
lea edx, [ebp - 0xc]
add ecx, 0xffffffea
mov dword [ebp - 0x18], eax
push edx
xor ecx, 0x44c12fc2
mov esi, eax
push eax
call ecx
cmp eax, 0x6f
jne 0x407904
mov eax, dword [0x40d4ec]
mov esi, dword [0x40d4f4]
add eax, 0xffffffed
add esi, 0xffffffeb
xor eax, 0x44c12fbf
xor esi, 0x44c12fc1
call eax
push dword [ebp - 0x18]
push edi
push eax
call esi
mov eax, dword [0x40d4ec]
mov edi, dword [0x40d4f0]
add eax, 0xffffffed
mov esi, dword [ebp - 0xc]
add edi, 0xffffffec
xor eax, 0x44c12fbf
xor edi, 0x44c12fc0
call eax
push esi
push 0
push eax
call edi
mov dword [ebp - 0x18], eax
mov esi, eax
xor edi, edi
mov eax, dword [0x40d4f8]
lea ecx, [ebp - 0xc]
add eax, 0xffffffea
push ecx
xor eax, 0x44c12fc2
push esi
call eax
test eax, eax
jne 0x40795f
test esi, esi
je 0x40795f
cmp dword [esi + 0x190], 6
je 0x407931
mov esi, dword [esi]
test esi, esi
jne 0x407920
jmp 0x40795f
or edi, 0xffffffff
xor ecx, ecx
nop word [eax + eax]
movsx eax, byte [ecx + esi + 0x194]
inc ecx
xor eax, edi
shr edi, 8
movzx eax, al
xor edi, dword [eax*4 + 0x40b440]
cmp ecx, 6
jb 0x407940
not edi
mov eax, dword [0x40d4ec]
mov esi, dword [0x40d4f4]
add eax, 0xffffffed
add esi, 0xffffffeb
xor eax, 0x44c12fbf
xor esi, 0x44c12fc1
call eax
push dword [ebp - 0x18]
push 0
push eax
call esi
mov ecx, dword [ebp - 4]
mov al, 1
mov dword [0x40d0b4], edi
xor ecx, ebp
pop edi
pop esi
call fcn.00409937
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret