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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov ebp, dword [esp + 0x9c]
mov dword [esp], ecx
mov ecx, dword [ecx + 0x80]
mov dword [esp + 0x14], 0x6d707659
mov dword [esp + 0x18], 0x8a6e757f
mov dword [esp + 0x1c], 0x464e5470
mov dword [esp + 0x20], 0x5979bb92
mov dword [esp + 0x24], 0x494b7458
mov dword [esp + 0x28], 0x41444c47
mov dword [esp + 0x2c], 0x5899479d
mov dword [esp + 0x30], 0x5855516a
mov dword [esp + 0x34], 0xb6bcb048
mov word [esp + 0x38], 0xc3ba
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov esi, 0x72c8f5d9
nop
nop
nop
movzx eax, byte [esp + esi - 0x72c8f5c5]
xor eax, esi
mov edi, eax
and edi, 0xc20032c2
xor eax, 0xc21332c2
lea eax, [eax + edi*2]
mov edi, eax
not edi
or edi, 1
add edi, eax
xor eax, 1
lea eax, [eax + edi*2]
add al, 2
mov byte [esp + esi - 0x72c8f5c5], al
inc esi
cmp esi, 0x72c8f605
jne 0x40d7f0
mov dword [esp + 0xc], 0x13182432
mov word [esp + 0x10], 0
lea esi, [esp + 0xc]
xor ebx, ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
and dl, 0xf8
add dl, bl
xor dl, byte [esi]
xor dl, 0x84
add dl, 0x6c
mov byte [esi], dl
inc esi
add eax, 2
inc bl
cmp eax, 0xc
jne 0x40d850
mov dword [esp + 0x44], 0x508bcdf3
mov dword [esp + 0x48], 0x5bad5f56
mov dword [esp + 0x4c], 0xa2829850
mov dword [esp + 0x50], 0x685b5b55
mov dword [esp + 0x54], 0x609d6b9f
mov dword [esp + 0x58], 0x93d2a966
mov dword [esp + 0x5c], 0xae696d6d
mov dword [esp + 0x60], 0x86669894
mov dword [esp + 0x64], 0x8270c7a1
mov dword [esp + 0x68], 0xcfa58c77
mov dword [esp + 0x6c], 0x867a8482
mov dword [esp + 0x70], 0x7bcaaeca
mov dword [esp + 0x74], 0x8779837f
mov dword [esp + 0x78], 0x5a7d8473
mov word [esp + 0x7c], 0x1f3e
mov dword [esp + 0x7e], 0
mov byte [esp + 0x82], 0
xor eax, eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
and edx, 0x22
mov ebx, esi
xor ebx, 0x51
add ebx, edx
xor bl, byte [esp + esi + 0x44]
add bl, 0x6b
mov byte [esp + esi + 0x44], bl
inc esi
add eax, 2
cmp esi, 0x3f
jne 0x40d900
mov eax, dword [esp + 0x98]
add eax, ecx
mov ecx, eax
mov word [esp + 4], 0xa0a3
mov byte [esp + 6], 0x8e
mov word [esp + 7], 0
mov byte [esp + 9], 0
mov eax, 0xdd
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xd9]
mov edx, eax
and edx, esi
add edx, edx
add esi, eax
add esi, 0xf999a400
mov edi, edx
xor edi, esi
not edx
and edx, esi
add edx, edx
sub edx, edi
add dl, 0xaf
mov byte [esp + eax - 0xd9], dl
inc eax
cmp eax, 0xe3
jne 0x40d950
movzx eax, byte [esp + 4]
mov edx, ecx
test al, al
je 0x40d9ab
lea esi, [esp + 5]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d9a0
mov dword [esp + 0x40], ecx
mov byte [edx], 0
mov ecx, dword [esp]
movzx eax, byte [ecx + 0x60]
test al, al
je 0x40d9cb
lea esi, [ecx + 0x61]
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d9c0
mov byte [edx], 0
movzx eax, byte [esp + 0x44]
test al, al
je 0x40d9eb
lea esi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d9e0
mov byte [edx], 0
movzx eax, byte [ebp]
test al, al
je 0x40da0c
inc ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ebp]
inc ebp
test al, al
jne 0x40da00
mov byte [edx], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x40da2b
lea ecx, [esp + 0xd]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da20
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x40da4b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da40
mov byte [edx], 0
mov eax, dword [esp + 0xa4]
mov ecx, eax
mov esi, eax
shr ecx, 2
mov ebx, dword [esp + 0xa0]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
xor ecx, 0xfffffffc
mov ebx, dword [esp + 0xa4]
or ebx, 3
and ebx, ecx
mov ecx, ebx
shr ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov ecx, dword [esp + 0xa4]
test cl, 1
je 0x40daab
and ebx, 0xfffffffe
movzx eax, byte [eax + ebx]
mov byte [esi + ebx], al
mov dword [esp + 0x44], 0x2b212523
mov byte [esp + 0x48], 0x10
mov dword [esp + 0x49], 0
mov ecx, 0x85
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x41]
lea esi, [eax + eax]
not esi
add esi, eax
and esi, 4
and eax, 0xfffffffb
or eax, esi
lea esi, [ecx - 0x80]
and esi, 4
mov ebx, ecx
and ebx, 0x9b
or ebx, esi
xor ebx, eax
xor bl, 4
add bl, 0x67
mov byte [esp + ecx - 0x41], bl
inc ecx
cmp ecx, 0x8e
jne 0x40dad0
mov dword [esp + 0x14], 0xfaf99d9f
mov byte [esp + 0x18], 0x88
mov dword [esp + 0x19], 0
mov dword [esp + 0x1c], 0
mov eax, 0x3d627223
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3d62720f]
xor ecx, eax
mov esi, ecx
not esi
and esi, 0xb0
mov edi, ecx
and edi, 0x4f
sub edi, esi
and ecx, 1
xor edi, 1
lea ecx, [edi + ecx*2]
mov byte [esp + eax - 0x3d62720f], cl
inc eax
cmp eax, 0x3d62722f
jne 0x40db30
add edx, dword [esp + 0xa4]
movzx eax, byte [esp + 0x14]
test al, al
je 0x40db8d
lea ecx, [esp + 0x15]
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40db80
jmp 0x40db90
mov esi, dword [esp]
mov byte [edx], 0
movzx eax, byte [esi + 0x60]
test al, al
je 0x40dbab
lea ecx, [esi + 0x61]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dba0
mov byte [edx], 0
movzx eax, byte [esp + 0x44]
test al, al
je 0x40dbcb
lea ecx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dbc0
mov byte [edx], 0
sub edx, dword [esp + 0x40]
add dword [esi + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10