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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
sub esp, 0x18
lea eax, [ebp + 0xc]
mov ecx, esp
push eax
call fcn.004025ee
xor ebx, ebx
lea ecx, [ebp - 0x24]
push ebx
mov dl, 0x5c
call fcn.004145a9
mov edi, dword [ebp - 0x24]
add esp, 0x1c
mov eax, dword [ebp - 0x20]
cmp edi, eax
je 0x410407
sub eax, edi
mov byte [ebp - 5], bl
push 0x18
pop ecx
cdq
idiv ecx
mov ecx, ebx
cmp eax, 6
jb 0x4103d7
push 5
mov al, 0x76
mov dword [ebp - 0xb], 0x6b765576
mov word [ebp - 7], 0x6778
pop ebx
movsx eax, al
and eax, 0x8000000f
jns 0x41000c
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa], al
inc ecx
cmp ecx, ebx
jae 0x41001a
mov al, byte [ebp - 0xb]
jmp 0x40fffd
push 0
lea eax, [ebp - 0xa]
mov byte [ebp - 5], 0
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, 0xffffffff
je 0x41007c
mov cl, 0x51
mov dword [ebp - 0xb], 0x34211e51
mov word [ebp - 7], 0x3023
xor eax, eax
mov byte [ebp - 5], 0
xor byte [ebp + eax - 0xa], cl
inc eax
cmp eax, ebx
jae 0x410054
mov cl, byte [ebp - 0xb]
jmp 0x410046
lea eax, [ebp - 0xa]
mov byte [ebp - 5], 0
mov ecx, dword [ebp + 8]
push eax
call fcn.00401a09
lea ecx, [ebp - 0x24]
call fcn.00403eea
lea ecx, [ebp + 0xc]
call fcn.00401a42
mov eax, dword [ebp + 8]
jmp 0x410430
xor edx, edx
mov dword [ebp - 0x11], 0x21f2377
push 0xb
mov cl, 0x77
mov word [ebp - 0xd], 0x1319
mov byte [ebp - 0xb], 0x12
mov eax, edx
mov byte [ebp - 0xa], bl
mov word [ebp - 9], 0x1e15
mov byte [ebp - 7], bl
mov word [ebp - 6], 0x13
pop esi
xor byte [ebp + eax - 0x10], cl
inc eax
cmp eax, esi
jae 0x4100b6
mov cl, byte [ebp - 0x11]
jmp 0x4100a8
push edx
lea eax, [ebp - 0x10]
mov byte [ebp - 5], dl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
xor ecx, ecx
cmp eax, 0xffffffff
je 0x41010c
mov al, 0x2c
mov dword [ebp - 0x11], 0x8174602c
mov dword [ebp - 0xd], 0x7e71707a
mov dword [ebp - 9], 0x707e756e
mov byte [ebp - 5], cl
movsx eax, al
and eax, 0x8000000f
jns 0x4100f6
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x10], al
inc ecx
cmp ecx, esi
jae 0x410104
mov al, byte [ebp - 0x11]
jmp 0x4100e7
lea eax, [ebp - 0x10]
jmp 0x410057
mov byte [ebp - 0xe], bl
mov eax, ecx
mov dword [ebp - 0xd], 0x60716452
mov dword [ebp - 9], 0x7d6a6377
mov byte [ebp - 5], cl
xor byte [ebp + eax - 0xd], bl
inc eax
push 8
pop ebx
cmp eax, ebx
jae 0x410133
mov bl, byte [ebp - 0xe]
jmp 0x410122
push ecx
lea eax, [ebp - 0xd]
mov byte [ebp - 5], cl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, 0xffffffff
je 0x410176
mov cl, 0x17
mov dword [ebp - 0xe], 0x63764017
mov dword [ebp - 0xa], 0x78716572
xor eax, eax
mov word [ebp - 6], 0x6f
xor byte [ebp + eax - 0xd], cl
inc eax
cmp eax, ebx
jae 0x41016e
mov cl, byte [ebp - 0xe]
jmp 0x410160
lea eax, [ebp - 0xd]
jmp 0x410057
movaps xmm0, xmmword [0x41afc0]
xor edx, edx
movups xmmword [ebp - 0x15], xmm0
mov byte [ebp - 5], dl
mov ecx, edx
mov al, byte [ebp - 0x15]
xor byte [ebp + ecx - 0x14], al
inc ecx
cmp ecx, 0xf
jb 0x410188
push edx
lea eax, [ebp - 0x14]
mov byte [ebp - 5], dl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, 0xffffffff
je 0x4101df
movaps xmm0, xmmword [0x41b4b0]
xor ecx, ecx
movups xmmword [ebp - 0x16], xmm0
mov word [ebp - 6], 0x73
movsx eax, byte [ebp - 0x16]
and eax, 0x8000000f
jns 0x4101cd
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x15], al
inc ecx
cmp ecx, 0x10
jb 0x4101bd
lea eax, [ebp - 0x15]
jmp 0x410057
xor edx, edx
mov dword [ebp - 0xf], 0x4a7a675c
mov cl, bl
mov dword [ebp - 0xb], 0x7b7f677a
mov byte [ebp - 0x10], cl
mov eax, edx
mov word [ebp - 7], 0x7a6d
mov byte [ebp - 5], dl
xor byte [ebp + eax - 0xf], cl
inc eax
cmp eax, 0xa
jae 0x41020e
mov cl, byte [ebp - 0x10]
jmp 0x4101ff
push edx
lea eax, [ebp - 0xf]
mov byte [ebp - 5], dl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, 0xffffffff
je 0x41025e
mov byte [ebp - 0x11], bl
xor ecx, ecx
mov dword [ebp - 0x10], 0x287a775c
mov dword [ebp - 0xc], 0x7f777a4a
mov dword [ebp - 8], 0x7a6d7b
movsx eax, bl
and eax, 0x8000000f
jns 0x41024c
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x10], al
inc ecx
cmp ecx, esi
jae 0x410104
mov bl, byte [ebp - 0x11]
jmp 0x41023d
movaps xmm0, xmmword [0x41b420]
xor ebx, ebx
movups xmmword [ebp - 0x18], xmm0
mov dword [ebp - 8], 0x6e7d72
mov ecx, ebx
movsx eax, byte [ebp - 0x18]
and eax, 0x8000000f
jns 0x410284
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 0x12
jb 0x410274
push ebx
lea eax, [ebp - 0x17]
mov byte [ebp - 5], bl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
or esi, 0xffffffff
cmp eax, esi
jne 0x4103c6
movaps xmm0, xmmword [str.1dppljft_trmjuf]
mov ecx, ebx
movups xmmword [ebp - 0x14], xmm0
movsx eax, byte [ebp - 0x14]
and eax, 0x8000000f
jns 0x4102c6
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 0xe
jb 0x4102b6
push ebx
lea eax, [ebp - 0x13]
mov byte [ebp - 5], bl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, esi
jne 0x4103c6
push 0xb
mov byte [ebp - 5], bl
mov ecx, ebx
mov al, 0x65
mov dword [ebp - 0x11], 0x6c747165
mov dword [ebp - 0xd], 0x3378736e
mov dword [ebp - 9], 0x7374786f
pop ebx
movsx eax, al
and eax, 0x8000000f
jns 0x410316
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x10], al
inc ecx
cmp ecx, ebx
jae 0x410324
mov al, byte [ebp - 0x11]
jmp 0x410307
push 0
lea eax, [ebp - 0x10]
mov byte [ebp - 5], 0
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, esi
jne 0x4103c6
movaps xmm0, xmmword [str._wmkrsrw2wupmxi]
xor ecx, ecx
movups xmmword [ebp - 0x14], xmm0
movsx eax, byte [ebp - 0x14]
and eax, 0x8000000f
jns 0x41035b
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 0xe
jb 0x41034b
push 0
lea eax, [ebp - 0x13]
mov byte [ebp - 5], 0
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, esi
jne 0x4103c6
xor ecx, ecx
mov byte [ebp - 0x13], bl
mov dword [ebp - 0x12], 0x686a677b
mov eax, ecx
mov dword [ebp - 0xe], 0x7825786e
mov dword [ebp - 0xa], 0x7f62677a
mov word [ebp - 6], 0x6e
xor byte [ebp + eax - 0x12], bl
inc eax
cmp eax, 0xd
jae 0x4103ac
mov bl, byte [ebp - 0x13]
jmp 0x41039d
push ecx
lea eax, [ebp - 0x12]
mov byte [ebp - 5], cl
push eax
lea ecx, [ebp + 0xc]
call fcn.00403dff
cmp eax, esi
lea eax, [edi + 0x90]
je 0x4103c9
lea eax, [edi + 0x78]
mov ecx, dword [ebp + 8]
push eax
call fcn.004025ee
jmp 0x410064
movaps xmm0, xmmword [0x41b440]
movups xmmword [ebp - 0x15], xmm0
movsx eax, byte [ebp - 0x15]
and eax, 0x8000000f
jns 0x4103f2
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x14], al
inc ecx
cmp ecx, 0xf
jb 0x4103e2
mov byte [ebp - 5], bl
lea eax, [ebp - 0x14]
jmp 0x41005b
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x24]
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], 0xf
mov byte [esi], bl
call fcn.00403eea
lea ecx, [ebp + 0xc]
call fcn.00401a42
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x1c