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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, dword [ebp + 8]
mov dword [esp + 0x7c], ecx
add esi, dword [ecx + 0x60]
mov dword [esp + 0x80], 0x37383e03
mov dword [esp + 0x84], 0x622a3b25
mov dword [esp + 0x88], 0x3e222c08
mov dword [esp + 0x8c], 0x233f7116
mov dword [esp + 0x90], 0x33353c20
mov dword [esp + 0x94], 0x1b14342d
mov dword [esp + 0x98], 0x10571d57
mov dword [esp + 0x9c], 0x3170e
mov dword [esp + 0xa0], 0x7e7c7810
mov word [esp + 0xa4], 0x697e
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb1], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x34
ja 0x4094e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, eax
and edx, 0x3edf184a
xor eax, 0xbedf184a
lea edx, [eax + edx*2]
lea eax, [edx + ecx]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xfa
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x35
jb 0x4094a0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0xdbd0ccfa
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
ja 0x40957b
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add al, 0x9c
xor al, byte [esp + ecx + 0xc0]
add al, 0xbc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x20
jb 0x409550
mov dword [esp + 0x10], 0x5c5aa6d9
mov dword [esp + 0x14], 0x5858aab2
mov dword [esp + 0x18], 0x57606aa9
mov dword [esp + 0x1c], 0x506f5063
mov dword [esp + 0x20], 0xb84f7b64
mov dword [esp + 0x24], 0x7ea99795
mov dword [esp + 0x28], 0x7d477570
mov dword [esp + 0x2c], 0x7ca0ba76
mov dword [esp + 0x30], 0x4e494973
mov dword [esp + 0x34], 0x4e474941
mov dword [esp + 0x38], 0x75b09b40
mov dword [esp + 0x3c], 0x884b4743
mov dword [esp + 0x40], 0x685c6a72
mov dword [esp + 0x44], 0x6c52ad87
mov dword [esp + 0x48], 0xa18f6651
mov dword [esp + 0x4c], 0x60585e64
mov dword [esp + 0x50], 0x9d5874a4
mov dword [esp + 0x54], 0xa19ba1a1
mov dword [esp + 0x58], 0x7c97ae9d
mov word [esp + 0x5c], 0x3550
mov byte [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x56
ja 0x40968a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x10]
lea edi, [eax - 0x3d0fa141]
lea ecx, [eax + edx]
add ecx, 0xc2f05ebf
and edi, edx
add eax, 0xbf
and eax, edx
add eax, edi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
add al, 0xc7
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x57
jb 0x409640
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, esi
test cl, cl
je 0x4096ab
lea edi, [esp + 0x11]
mov edx, esi
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4096a0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4096cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4096c0
mov byte [edx], 0
movzx eax, byte [esp + 0xc0]
test al, al
je 0x4096fb
lea ecx, [esp + 0xc1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4096f0
mov edi, dword [ebp + 0x14]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0xc], esi
je 0x40972b
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409720
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
mov ecx, edi
not ecx
or ecx, 3
add ecx, edi
inc ecx
je 0x409754
cmp ecx, 2
jne 0x409766
mov ecx, edi
shr ecx, 1
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp 0x4097fd
mov ecx, edi
shr ecx, 2
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
jmp 0x4097fd
test edi, edi
je 0x4097fd
mov eax, dword [ebp + 0x14]
mov edi, eax
and edi, 7
je 0x40979f
xor ebx, ebx
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + ebx]
mov byte [edx + ebx], cl
inc ebx
cmp edi, ebx
jne 0x409780
add esi, ebx
lea ecx, [edx + ebx]
mov eax, dword [ebp + 0x14]
mov edi, eax
sub edi, ebx
cmp eax, 8
jae 0x4097a8
jmp 0x4097fd
mov ecx, edx
mov edi, eax
cmp eax, 8
jb 0x4097fd
xor ebx, ebx
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + ebx]
mov byte [ecx + ebx], al
movzx eax, byte [esi + ebx + 1]
mov byte [ecx + ebx + 1], al
movzx eax, byte [esi + ebx + 2]
mov byte [ecx + ebx + 2], al
movzx eax, byte [esi + ebx + 3]
mov byte [ecx + ebx + 3], al
movzx eax, byte [esi + ebx + 4]
mov byte [ecx + ebx + 4], al
movzx eax, byte [esi + ebx + 5]
mov byte [ecx + ebx + 5], al
movzx eax, byte [esi + ebx + 6]
mov byte [ecx + ebx + 6], al
movzx eax, byte [esi + ebx + 7]
mov byte [ecx + ebx + 7], al
add ebx, 8
cmp edi, ebx
jne 0x4097b0
mov dword [esp + 0x10], 0x8087a3a5
mov dword [esp + 0x14], 0x84f8cacc
mov dword [esp + 0x18], 0xbc87b6b2
mov dword [esp + 0x1c], 0xbab9b5ba
mov dword [esp + 0x20], 0x4d4abeb1
mov dword [esp + 0x24], 0xc9d38eb9
mov word [esp + 0x28], 0xcbcd
mov byte [esp + 0x2a], 0xdc
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x80]
cmp eax, 0x21
ja 0x4098b1
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
movzx esi, byte [esp + ecx + 0x10]
lea ecx, [eax + esi]
add ecx, 0x1d8639b9
add eax, 0x1d8639b9
and eax, esi
add eax, eax
mov esi, ecx
not esi
and esi, eax
not eax
and eax, ecx
sub eax, esi
add al, 0xf1
mov ecx, dword [esp + 0x80]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x80]
mov eax, dword [esp + 0x80]
cmp eax, 0x22
jb 0x409860
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x4098dd
lea ecx, [esp + 0x11]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4098d0
jmp 0x4098e1
mov esi, dword [esp + 0xc]
mov byte [edx], 0
mov eax, edx
not eax
and eax, esi
not esi
and esi, edx
sub esi, eax
mov eax, dword [esp + 0x7c]
add dword [eax + 0x60], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10