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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp], 0x1b25
mov byte [esp + 2], 0x12
mov dword [esp + 3], 0
mov byte [esp + 7], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0xc4
xor bl, byte [esp + eax]
add bl, 0x2c
mov byte [esp + eax], bl
inc eax
cmp eax, 8
jne 0x40d5c0
mov dword [esp + 0x10], 0x9290946e
mov word [esp + 0x14], 0x8d92
mov dword [esp + 0x16], 0
mov byte [esp + 0x1a], 0
mov ebx, 0x4a131962
mov ebp, 0x9d
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebx - 0x4a131952]
mov ecx, ebp
or ecx, edi
lea eax, [edi + edi]
not eax
add eax, edi
or eax, ebx
and eax, ecx
mov cl, 0x15
sub cl, al
mov byte [esp + ebx - 0x4a131952], cl
inc ebx
dec ebp
cmp ebx, 0x4a13196d
jne 0x40d600
mov dword [esp + 0x24], 0x2cc18b8d
mov dword [esp + 0x28], 0x2923312a
mov dword [esp + 0x2c], 0x22cee43c
mov dword [esp + 0x30], 0x3c213d3f
mov dword [esp + 0x34], 0x3c3b2539
mov dword [esp + 0x38], 0x31f6ef3a
mov dword [esp + 0x3c], 0xf6372b37
mov dword [esp + 0x40], 0x3e2a3c38
mov dword [esp + 0x44], 0x424c819b
mov dword [esp + 0x48], 0x859b4049
mov byte [esp + 0x4c], 0xe8
mov dword [esp + 0x4d], 0
mov word [esp + 0x51], 0
xor ebp, ebp
mov ebx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp + 0x24]
mov ecx, ebp
xor ecx, 0x4fd832
mov edi, ebp
and edi, 0xd
add edi, edi
sub edi, ecx
add edi, 0xfdec26a0
mov ecx, edi
and ecx, 0xc5832
xor edi, 0x4fd832
lea ecx, [edi + ecx*2]
lea edi, [ecx + ecx]
not edi
add edi, ecx
or edi, eax
not eax
or eax, ecx
and eax, edi
mov cl, 0xdf
sub cl, al
mov byte [esp + ebp + 0x24], cl
and ebx, 1
not ebp
or ebp, 1
sub ebx, ebp
mov ebp, ebx
cmp ebx, 0x2f
jb 0x40d6a0
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x1c]
mov word [esp + 8], 0xa0a3
mov byte [esp + 0xa], 0x8e
mov word [esp + 0xb], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x5d
xor cl, byte [esp + eax + 8]
add cl, 0x2f
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 5
jne 0x40d720
movzx eax, byte [esp + 8]
mov edi, ebp
test al, al
je 0x40d75b
lea ebx, [esp + 9]
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40d750
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 0x60]
test al, al
je 0x40d77b
lea ebx, [ecx + 0x61]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40d770
mov byte [edi], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40d79b
lea ebx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40d790
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40d7bb
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 0x40d7b0
mov byte [edi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40d7db
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d7d0
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40d7fb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d7f0
mov byte [edi], 0
movzx eax, byte [esp]
test al, al
je 0x40d81b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d810
mov byte [edi], 0
sub edi, ebp
add dword [ecx + 0x80], edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc