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

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x518
push esi
push edi
mov edx, 0x161ac608
xor ecx, ecx
call fcn.00404bfc
call eax
mov edx, dword [ebx + 8]
mov edi, edx
mov dword [ebp - 0x68], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], 0xf
mov byte [edx], al
mov dl, 0x41
mov byte [ebp - 1], dl
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x50]
xor eax, eax
inc eax
shl eax, cl
test dword [ebp - 0x68], eax
je 0x408cde
mov byte [ebp - 8], dl
xor ecx, ecx
mov edx, 0x7bf10552
mov word [ebp - 7], 0x5c3a
mov byte [ebp - 5], 0
call fcn.00404bfc
push 0x104
lea ecx, [ebp - 0x518]
push ecx
lea ecx, [ebp - 0x6c]
push ecx
push 0
push 0
push 0x104
lea ecx, [ebp - 0x210]
push ecx
lea ecx, [ebp - 8]
push ecx
call eax
test eax, eax
je 0x408cde
mov edx, 0xa5fd882f
xor ecx, ecx
call fcn.00404bfc
lea ecx, [ebp - 8]
push ecx
call eax
dec eax
sub eax, 1
je 0x408a58
sub eax, 1
je 0x408a14
sub eax, 1
je 0x4089d9
sub eax, 1
je 0x4089af
xor edx, edx
mov dword [ebp - 0x3d], 0x72755c77
mov al, 0x77
mov dword [ebp - 0x39], 0x757e7675
mov dword [ebp - 0x35], 0x70794b27
mov ecx, edx
mov word [ebp - 0x31], 0x6c7d
mov byte [ebp - 0x2f], dl
movsx eax, al
and eax, 0x8000000f
jns 0x408995
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0xd
jae 0x4089a4
mov al, byte [ebp - 0x3d]
jmp 0x408986
mov byte [ebp - 0x2f], dl
lea esi, [ebp - 0x3c]
jmp 0x408a87
movups xmm0, xmmword [str._8S88Q.318]
xor edx, edx
mov word [ebp - 0x52], 0x19
mov ecx, edx
movups xmmword [ebp - 0x62], xmm0
mov al, byte [ebp - 0x62]
xor byte [ebp + ecx - 0x61], al
inc ecx
cmp ecx, 0x10
jb 0x4089c4
lea esi, [ebp - 0x61]
jmp 0x408a87
xor edx, edx
mov dword [ebp - 0x4c], 0x7869420c
mov cl, 0xc
mov dword [ebp - 0x48], 0x677e637b
mov dword [ebp - 0x44], 0x657e482c
mov eax, edx
mov word [ebp - 0x40], 0x697a
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x4b], cl
inc eax
cmp eax, 0xd
jae 0x408a0c
mov cl, byte [ebp - 0x4c]
jmp 0x4089fd
mov byte [ebp - 0x3e], dl
lea esi, [ebp - 0x4b]
jmp 0x408a87
xor edx, edx
mov dword [ebp - 0x2e], 0x7b6c4953
mov al, 0x53
mov dword [ebp - 0x2a], 0x47236768
mov dword [ebp - 0x26], 0x68796c75
mov ecx, edx
mov byte [ebp - 0x22], dl
movsx eax, al
and eax, 0x8000000f
jns 0x408a41
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xb
jae 0x408a50
mov al, byte [ebp - 0x2e]
jmp 0x408a32
mov byte [ebp - 0x22], dl
lea esi, [ebp - 0x2d]
jmp 0x408a87
movups xmm0, xmmword [0x41b3e0]
xor edx, edx
mov byte [ebp - 0x51], dl
mov ecx, edx
movups xmmword [ebp - 0x61], xmm0
movsx eax, byte [ebp - 0x61]
and eax, 0x8000000f
jns 0x408a7a
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x60], al
inc ecx
cmp ecx, 0xf
jb 0x408a6a
lea esi, [ebp - 0x60]
test byte [ebp - 0x6c], 0x80
je 0x408ac4
mov al, 0x4d
mov dword [ebp - 0xe], 0x53615b4d
mov word [ebp - 0xa], 0x60
mov ecx, edx
movsx eax, al
and eax, 0x8000000f
jns 0x408aad
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xd], al
inc ecx
cmp ecx, 4
jae 0x408abc
mov al, byte [ebp - 0xe]
jmp 0x408a9e
mov byte [ebp - 9], dl
lea edi, [ebp - 0xd]
jmp 0x408aed
mov cl, 0x21
mov dword [ebp - 0x21], 0x75606721
mov word [ebp - 0x1d], 0x1312
mov eax, edx
mov byte [ebp - 0x1b], dl
xor byte [ebp + eax - 0x20], cl
inc eax
cmp eax, 5
jae 0x408ae7
mov cl, byte [ebp - 0x21]
jmp 0x408ad8
mov byte [ebp - 0x1b], dl
lea edi, [ebp - 0x20]
mov edx, 0x3df54b67
xor ecx, ecx
call fcn.00404bfc
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x78]
push ecx
lea ecx, [ebp - 0xf0]
push ecx
lea ecx, [ebp - 8]
push ecx
call eax
test eax, eax
je 0x408cde
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
call fcn.00419800
mulsd xmm0, qword [0x41ae58]
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
movsd qword [ebp - 0x88], xmm0
call fcn.00419800
mulsd xmm0, qword [0x41ae58]
mov al, 0xe
mov dword [ebp - 0x14], 0x403c330e
xor ecx, ecx
mov word [ebp - 0x10], 0x74
movsd qword [ebp - 0x90], xmm0
movsx eax, al
and eax, 0x8000000f
jns 0x408b6c
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 4
jae 0x408b7b
mov al, byte [ebp - 0x14]
jmp 0x408b5d
movsd xmm0, qword [ebp - 0x88]
lea eax, [ebp - 0x13]
push ecx
push ecx
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x104]
mov byte [ebp - 0xf], 0
push 0x14
push eax
call fcn.004077c4
add esp, 0x14
mov dword [ebp - 0x1a], 0x3b372e29
mov al, 0x29
mov word [ebp - 0x16], 0x6f
xor ecx, ecx
movsx eax, al
and eax, 0x8000000f
jns 0x408bc3
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x19], al
inc ecx
cmp ecx, 4
jae 0x408bd2
mov al, byte [ebp - 0x1a]
jmp 0x408bb4
movsd xmm0, qword [ebp - 0x90]
lea eax, [ebp - 0x19]
push ecx
push ecx
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x64]
mov byte [ebp - 0x15], 0
push 0x14
push eax
call fcn.004077c4
movups xmm0, xmmword [0x41b510]
add esp, 0x14
mov dword [ebp - 0x98], 0x532c7f31
mov dword [ebp - 0x94], 0x16194e
xor ecx, ecx
movups xmmword [ebp - 0xe8], xmm0
movups xmm0, xmmword [0x41b410]
movups xmmword [ebp - 0xd8], xmm0
movups xmm0, xmmword [0x41b090]
movups xmmword [ebp - 0xc8], xmm0
movups xmm0, xmmword [0x41b210]
movups xmmword [ebp - 0xb8], xmm0
movups xmm0, xmmword [0x41b0a0]
movups xmmword [ebp - 0xa8], xmm0
movsx eax, byte [ebp - 0xe8]
and eax, 0x8000000f
jns 0x408c66
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xe7], al
inc ecx
cmp ecx, 0x56
jb 0x408c53
lea eax, [ebp - 0x64]
mov byte [ebp - 0x91], 0
push eax
lea eax, [ebp - 0x104]
push eax
push edi
lea eax, [ebp - 0x210]
push eax
push esi
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xe7]
push eax
lea eax, [ebp - 0x410]
push 0x200
push eax
call fcn.004077c4
add esp, 0x24
test eax, eax
jle 0x408cde
cmp eax, 0x200
jae 0x408cde
lea ecx, [ebp - 0x410]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408cc1
mov esi, dword [ebx + 8]
lea eax, [ebp - 0x410]
sub ecx, edx
push ecx
push eax
mov ecx, esi
call fcn.0040266f
jmp 0x408ce1
mov esi, dword [ebx + 8]
mov al, byte [ebp - 1]
inc al
inc dword [ebp - 0x50]
mov byte [ebp - 1], al
mov dl, al
cmp al, 0x5a
jle 0x4088db
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4