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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 8], 0xdaa6b6b3
mov dword [esp + 0xc], 0x4e4c50ac
lea ebx, [esp + 0x10]
mov byte [esp + 0x10], 0xe4
mov word [esp + 0x11], 0
mov byte [esp + 0x13], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
mov esi, eax
xor esi, 0x8e641454
lea ecx, [eax + eax]
mov edi, ecx
and edi, 0x16
sub edi, esi
lea esi, [edi - 0x41fb7eb1]
lea ebp, [edi + 0x4f]
or esi, ebp
and esi, edx
add edx, edi
add edx, 0xbe04814f
add esi, esi
sub edx, esi
add dl, 0x19
mov byte [esp + eax + 8], dl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0xc
jb 0x40ec60
lea edi, [esp + 0x77]
lea edx, [esp + 8]
mov ecx, 2
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x7f]
xor edx, edx
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x7f], cl
mov dword [esp + 8], 0x36d0143
mov dword [esp + 0xc], 0x772056a
mov dword [esp + 0x10], 0xb64096d
mov dword [esp + 0x14], 0xf230d78
mov dword [esp + 0x18], 0x136b1144
mov dword [esp + 0x1c], 0x17731564
mov dword [esp + 0x20], 0x1b3a1922
mov dword [esp + 0x24], 0x1f6e1d7d
mov dword [esp + 0x28], 0x234e2150
mov dword [esp + 0x2c], 0x2745254d
mov dword [esp + 0x30], 0x2b5e2949
mov dword [esp + 0x34], 0x2f412d45
mov dword [esp + 0x38], 0x331d315e
mov dword [esp + 0x3c], 0x371b354c
mov dword [esp + 0x40], 0x3b4d394f
mov dword [esp + 0x44], 0x3f133d4b
mov dword [esp + 0x48], 0x432d4126
mov dword [esp + 0x4c], 0x472b4536
mov dword [esp + 0x50], 0x4b3f4965
mov dword [esp + 0x54], 0x4f224d3e
mov dword [esp + 0x58], 0x533c5135
mov dword [esp + 0x5c], 0x57395537
mov dword [esp + 0x60], 0x5b3f593c
mov dword [esp + 0x64], 0x5f535d38
mov dword [esp + 0x68], 0x6362616a
mov dword [esp + 0x6c], 0
nop
xor byte [esp + edx + 8], dl
inc edx
cmp edx, 0x68
jne 0x40eda0
mov dword [esp + 0x80], 0x19b51b6d
mov dword [esp + 0x84], 0x65d167a8
mov word [esp + 0x88], 0x6364
mov dword [esp + 0x8a], 0
mov ecx, 0xc791553a
mov ebx, 0x386eaac5
nop
movzx ebp, byte [esp + ecx + 0x386eab46]
lea edx, [ecx + 1]
lea esi, [ebx - 1]
mov edi, esi
xor edi, edx
and edi, ebp
xor edi, edx
not edi
and edi, edx
lea eax, [ebx + edi*2]
add edi, edi
xor eax, ebp
mov ebx, ecx
sub ebx, edi
and ebx, ebp
add ebx, ebx
sub ebx, eax
add bl, 0xd9
mov byte [esp + ecx + 0x386eab46], bl
mov ebx, esi
mov ecx, edx
cmp edx, 0xc7915548
jne 0x40ede0
lea eax, [esp + 4]
lea ecx, [esp + 0x80]
push 0
push eax
push 8
lea eax, [esp + 0x83]
push eax
lea eax, [esp + 0x18]
push eax
push ecx
push dword [esp + 0xbc]
call fcn.0040fa80
add esp, 0x1c
test al, al
je 0x40efb4
mov word [esp + 8], 0xcecb
mov byte [esp + 0xa], 0x36
mov dword [esp + 0xb], 0
mov byte [esp + 0xf], 0
mov edx, 0x7333fef7
mov edi, 0x8ccc0109
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx - 0x7333feef]
lea eax, [edx - 1]
xor eax, ecx
mov esi, ecx
lea ebx, [eax + eax]
not ebx
add ebx, eax
or ebx, edi
add ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x31
mov byte [esp + edx - 0x7333feef], al
inc edx
dec edi
cmp edx, 0x7333feff
jne 0x40ee80
xor ecx, ecx
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esp + ecx + 8]
test dl, dl
je 0x40eef1
inc ecx
cmp dl, dh
je 0x40eee0
mov bl, 1
cmp dl, dh
je 0x40f131
mov dword [esp], eax
mov dword [esp + 8], 0xc5dbd8c9
mov dword [esp + 0xc], 0x75ccc2cb
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
xor ecx, ecx
xor edx, edx
nop
nop
movzx edi, byte [esp + edx + 8]
mov esi, ecx
and esi, 0xa
mov ebx, edx
xor ebx, 0x687c3395
add ebx, esi
mov ebp, ebx
and ebp, edi
mov eax, ebp
or eax, 0xfd
inc eax
mov esi, ebp
and esi, 0xffffffbd
imul esi, eax
mov eax, ebp
and eax, 2
or ebp, 2
imul ebp, eax
sub esi, ebp
add ebx, edi
add ebx, esi
add bl, 0x17
mov byte [esp + edx + 8], bl
inc edx
add ecx, 2
cmp edx, 0xb
jne 0x40ef20
movzx ebx, byte [esp + 8]
mov eax, dword [esp]
mov ecx, eax
test bl, bl
lea ebp, [esp + 8]
je 0x40efbb
mov edx, ebp
mov edi, eax
mov ecx, eax
jmp 0x40ef97
movzx ebx, byte [edx]
test bl, bl
je 0x40efbb
mov bh, byte [edi]
test bh, bh
je 0x40f12f
inc edi
inc edx
lea esi, [ecx + 1]
cmp bh, bl
je 0x40efae
mov ecx, esi
mov edi, esi
je 0x40ef90
mov edx, ebp
jmp 0x40ef90
xor ebx, ebx
jmp 0x40f13a
test ecx, ecx
je 0x40f12f
mov dword [esp + 8], 0x6e671066
mov dword [esp + 0xc], 0x630fcf29
mov dword [esp + 0x10], 0xcbc8727f
mov dword [esp + 0x14], 0x6a72046a
mov dword [esp + 0x18], 0xe3c0247d
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
mov ecx, 0x8a1f84ac
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x75e07b5c]
mov eax, edx
and eax, ecx
add al, al
sub dl, al
movzx eax, dl
add eax, ecx
add al, 0xa4
mov byte [esp + ecx + 0x75e07b5c], al
inc ecx
cmp ecx, 0x8a1f84c3
jne 0x40f000
movzx edx, byte [esp + 8]
mov eax, dword [esp]
mov ecx, eax
test dl, dl
je 0x40f074
lea ebp, [esp + 8]
mov esi, ebp
mov edi, eax
mov ecx, eax
jmp 0x40f057
movzx edx, byte [esi]
test dl, dl
je 0x40f074
mov dh, byte [edi]
test dh, dh
je 0x40f12f
inc edi
inc esi
lea ebx, [ecx + 1]
cmp dh, dl
je 0x40f06e
mov ecx, ebx
mov edi, ebx
je 0x40f050
mov esi, ebp
jmp 0x40f050
test ecx, ecx
je 0x40f12f
mov word [esp + 8], 0x21c6
mov byte [esp + 0xa], 0xe6
mov word [esp + 0xb], 0
mov edx, 0x29
mov esi, 0xd6
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x21]
mov ebx, edx
xor ebx, esi
and ebx, eax
xor ebx, esi
mov al, 0x32
sub al, bl
mov byte [esp + edx - 0x21], al
inc edx
dec esi
cmp edx, 0x2e
jne 0x40f0a0
add ecx, 0x13
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40f100
lea esi, [esp + 8]
mov edi, esi
mov edx, ecx
mov dword [esp + 0x70], ecx
mov eax, dword [esp]
jmp 0x40f0e7
movzx ebx, byte [edi]
test bl, bl
je 0x40f104
mov bh, byte [ecx]
test bh, bh
je 0x40f12f
inc ecx
inc edi
lea ebp, [edx + 1]
cmp bh, bl
je 0x40f0fa
mov edx, ebp
mov ecx, ebp
je 0x40f0e0
mov edi, esi
jmp 0x40f0e0
mov edx, ecx
jmp 0x40f10c
test edx, edx
mov ecx, dword [esp + 0x70]
je 0x40f12f
mov byte [0x44f164], 1
push edx
push ecx
push 0x100
push 0x44f166
call fcn.0040e990
add esp, 0x10
mov eax, dword [esp + 4]
mov bl, 1
jmp 0x40f131
xor ebx, ebx
push eax
call fcn.0043e210
add esp, 4
mov eax, ebx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret