Function at 0x40a520
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov esi, dword [esp + 0x68]
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x18], eax
mov word [esp + 4], 0x4543
mov byte [esp + 6], 0x4e
mov dword [esp + 7], 0
mov byte [esp + 0xb], 0
xor edi, edi
movzx edx, byte [esp + edi + 4]
lea eax, [edi + 0x496948d]
xor eax, edx
mov edx, eax
not edx
and edx, 0xc2
and eax, 0x3d
sub eax, edx
inc al
mov byte [esp + edi + 4], al
mov eax, edi
or eax, 0x8d810895
and edi, 5
add edi, eax
add edi, 0x727ef76c
cmp edi, 8
jb 0x40a550
mov dword [esp + 0xc], 0x26382412
mov word [esp + 0x10], 0x3d36
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
mov edi, 0x7c8baff4
nop
nop
nop
nop
nop
nop
lea eax, [edi - 0x7c8baf00]
not eax
mov edx, edi
xor edx, 0xfd
mov ebx, edi
or ebx, 2
and ebx, edx
and eax, 0xfd
or eax, ebx
xor al, byte [esp + edi - 0x7c8bafe8]
xor al, 0xfd
add al, 0x3c
mov byte [esp + edi - 0x7c8bafe8], al
inc edi
cmp edi, 0x7c8bafff
jne 0x40a5b0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0x58b7fdff
mov dword [esp + 0x24], 0x575d4b5a
mov dword [esp + 0x28], 0x56be9048
mov dword [esp + 0x2c], 0x706f6f4d
mov dword [esp + 0x30], 0x686d776b
mov dword [esp + 0x34], 0x6fd6b16a
mov dword [esp + 0x38], 0xa2617d65
mov dword [esp + 0x3c], 0x7262706c
mov dword [esp + 0x40], 0x7678cba9
mov dword [esp + 0x44], 0xbba57c7b
mov byte [esp + 0x48], 0xe4
mov dword [esp + 0x49], 0
mov byte [esp + 0x4d], 0
mov ebx, 0x39af06d3
mov ebp, 0xc650f92d
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0x39af06b3]
mov edx, ebx
or edx, eax
mov edi, eax
not edi
lea ecx, [ebp - 1]
or edi, ecx
and edi, edx
not edi
and edi, ebx
lea edx, [edi*2]
add edx, ebp
add edi, edi
xor edx, eax
not edi
add edi, ebx
and edi, eax
add edi, edi
sub edi, edx
mov eax, edi
or eax, 0xe0
add eax, edi
not edi
or edi, 0xe0
add eax, edi
add al, 2
mov byte [esp + ebx - 0x39af06b3], al
inc ebx
mov ebp, ecx
cmp ebx, 0x39af0701
jne 0x40a660
mov ebx, dword [esp + 0x64]
add ebx, dword [esp + 0x18]
mov dword [esp], 0x326465
mov eax, 0x44000b0c
nop
nop
nop
movzx edx, byte [esp + eax - 0x44000b0c]
xor edx, eax
mov ecx, edx
and ecx, 0x43
add ecx, ecx
xor edx, 0x3c
sub ecx, edx
mov byte [esp + eax - 0x44000b0c], cl
inc eax
cmp eax, 0x44000b10
jne 0x40a6d0
movzx ecx, byte [esp]
mov edi, ebx
test cl, cl
je 0x40a71b
lea eax, [esp + 1]
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40a710
mov byte [edi], 0
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx + 0x60]
test al, al
je 0x40a73b
lea ecx, [edx + 0x61]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a730
mov byte [edi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40a75b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a750
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40a77b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40a770
mov byte [edi], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x40a79b
lea ecx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a790
mov byte [edi], 0
mov ecx, dword [esp + 0x6c]
movzx eax, byte [ecx]
test al, al
je 0x40a7bb
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a7b0
mov byte [edi], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40a7db
lea ecx, [esp + 5]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a7d0
mov byte [edi], 0
sub edi, ebx
add dword [edx + 0x80], edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0xc