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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp + 8], 0xfffd
mov byte [esp + 0xa], 0xf6
mov word [esp + 0xb], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0x7e
xor cl, byte [esp + eax + 8]
add cl, 0x8a
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 5
jne 0x40d310
mov dword [esp + 0x10], 0x868884b2
mov word [esp + 0x14], 0xadb6
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov ebx, 0x92f145dc
mov ebp, 0x6d0eba23
nop
nop
movzx edi, byte [esp + ebx + 0x6d0eba34]
mov eax, ebx
and eax, edi
add eax, eax
mov ecx, edi
sub ecx, eax
add ecx, ebx
or ecx, ebp
not ecx
add ecx, ecx
mov eax, ecx
not eax
and eax, ebx
and ecx, ebp
sub eax, ecx
add eax, edi
mov ecx, eax
xor ecx, 0xdeb65d4c
mov edi, eax
or edi, 0x2149a2b3
and edi, ecx
mov edx, eax
and edx, 2
mov ecx, edi
or edi, 2
imul edi, edx
xor edx, 2
and ecx, 0xfd
imul ecx, edx
lea edx, [eax + eax]
and edx, 0x66
sub eax, edx
add eax, edi
add eax, ecx
add al, 0xb4
mov byte [esp + ebx + 0x6d0eba34], al
inc ebx
dec ebp
cmp ebx, 0x92f145e8
jne 0x40d350
mov dword [esp + 0x24], 0xb0db1d13
mov dword [esp + 0x28], 0x4bbdafb6
mov dword [esp + 0x2c], 0x42220850
mov dword [esp + 0x30], 0x584b4b55
mov dword [esp + 0x34], 0x404d5b4f
mov dword [esp + 0x38], 0x53f21946
mov dword [esp + 0x3c], 0x1e595d5d
mov dword [esp + 0x40], 0x26462854
mov dword [esp + 0x44], 0x2250e701
mov dword [esp + 0x48], 0xdf055c57
mov byte [esp + 0x4c], 0xfc
mov dword [esp + 0x4d], 0
mov word [esp + 0x51], 0
mov eax, 0xf9
mov ebx, 6
nop
nop
movzx ecx, byte [esp + eax - 0xd5]
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov edi, ebx
and edi, ecx
not ecx
or ecx, edx
and ecx, eax
or ecx, edi
add cl, 0x23
mov byte [esp + eax - 0xd5], cl
inc eax
dec ebx
cmp eax, 0x128
jne 0x40d430
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x1c]
mov word [esp], 0xc4c5
mov byte [esp + 2], 0x12
mov word [esp + 3], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xc4
xor cl, byte [esp + eax]
add cl, 0x2c
mov byte [esp + eax], cl
inc eax
cmp eax, 5
jne 0x40d480
movzx eax, byte [esp]
mov edi, ebp
test al, al
je 0x40d4bb
lea ebx, [esp + 1]
mov edi, ebp
nop
nop
nop
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 0x40d4b0
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 0x60]
test al, al
mov edx, dword [esp + 0x70]
je 0x40d4eb
lea ebx, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
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 0x40d4e0
mov byte [edi], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40d50b
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 0x40d500
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40d52b
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 0x40d520
mov byte [edi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40d54b
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 0x40d540
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40d56b
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 0x40d560
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40d58b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d580
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