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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov esi, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x14], 0xe5a09e49
mov dword [esp + 0x18], 0x1ae6ddd7
mov dword [esp + 0x1c], 0xdee6ecc0
mov dword [esp + 0x20], 0xe9d91b22
mov dword [esp + 0x24], 0xc9dbdce8
mov dword [esp + 0x28], 0xf1ccc4cf
mov dword [esp + 0x2c], 0xf809ff35
mov dword [esp + 0x30], 0xc8cdc1ca
mov dword [esp + 0x34], 0x5e6460f8
mov word [esp + 0x38], 0x535a
mov dword [esp + 0x3a], 0
mov ebx, 0x3d
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0x29]
mov edx, eax
mov edi, eax
and edx, ebx
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, ebx
add al, 0xcf
mov byte [esp + ebx - 0x29], al
inc ebx
cmp ebx, 0x67
jne 0x409550
mov dword [esp + 4], 0x394c4852
mov eax, 0xab8d1e8b
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5472e179]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
lea edx, [ecx + ecx]
and edx, 0x44180e90
mov ebx, edx
and ebx, ecx
xor edx, ecx
xor edx, 0x48
lea ecx, [edx + ebx*2]
inc cl
mov byte [esp + eax + 0x5472e179], cl
inc eax
cmp eax, 0xab8d1e8f
jne 0x4095a0
mov dword [esp + 0x40], 0x704b0d13
mov dword [esp + 0x44], 0x7b6d7f76
mov dword [esp + 0x48], 0x62423870
mov dword [esp + 0x4c], 0x687b7b75
mov dword [esp + 0x50], 0x607d6b7f
mov dword [esp + 0x54], 0x73322966
mov dword [esp + 0x58], 0x2e696d6d
mov dword [esp + 0x5c], 0x46667874
mov dword [esp + 0x60], 0x42500761
mov dword [esp + 0x64], 0xf654c57
mov dword [esp + 0x68], 0x465a4442
mov dword [esp + 0x6c], 0x5b0a6e0a
mov dword [esp + 0x70], 0x4759435f
mov dword [esp + 0x74], 0x7a5d4453
mov dword [esp + 0x78], 0x3f1e
mov edi, 0x6f363801
mov ecx, 0xfe
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x6f3637c1]
mov edx, ecx
or edx, ebx
mov ebp, edi
or ebp, ebx
mov eax, edi
xor eax, ebx
add eax, ebx
sub eax, ebp
not edx
or edx, eax
add dl, 0xfb
mov byte [esp + edi - 0x6f3637c1], dl
inc edi
dec ecx
cmp edi, 0x6f36383d
jne 0x409660
mov ebp, dword [esp + 0x90]
add ebp, dword [esp]
mov word [esp + 0xc], 0x9495
mov byte [esp + 0xe], 0x4e
mov dword [esp + 0xf], 0
mov byte [esp + 0x13], 0
mov eax, 0x12
mov ecx, 0xed
nop
nop
nop
movzx edi, byte [esp + eax - 6]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xa6
mov byte [esp + eax - 6], dl
inc eax
dec ecx
cmp eax, 0x1a
jne 0x4096c0
movzx ecx, byte [esp + 0xc]
mov eax, ebp
test cl, cl
mov edi, dword [esp + 8]
je 0x4096fb
lea edx, [esp + 0xd]
mov eax, ebp
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4096f0
mov byte [eax], 0
movzx ecx, byte [edi + 0x60]
test cl, cl
je 0x40971b
lea edx, [edi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409710
mov byte [eax], 0
movzx ecx, byte [esp + 0x40]
test cl, cl
je 0x40973b
lea edx, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409730
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40975b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409750
mov byte [eax], 0
movzx ecx, byte [esp + 4]
test cl, cl
je 0x40977b
lea edx, [esp + 5]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409770
mov byte [eax], 0
movzx ecx, byte [esp + 0x14]
test cl, cl
mov dword [esp], ebp
je 0x40979b
lea edx, [esp + 0x15]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409790
mov byte [eax], 0
mov ebx, dword [esp + 0x9c]
mov ecx, ebx
shr ecx, 2
mov ebp, dword [esp + 0x98]
mov edx, ebp
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov esi, ebx
and esi, 0xfffffffc
add ebp, esi
add esi, eax
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, ebp
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, ebx
and eax, 2
add esi, eax
test bl, 1
je 0x4097e8
movzx eax, byte [ebp + eax]
mov byte [esi], al
inc esi
mov edx, dword [esp]
mov edi, dword [esp + 8]
mov dword [esp + 0x40], 0xf090d0f
mov byte [esp + 0x44], 0x18
mov dword [esp + 0x45], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x3b
xor cl, byte [esp + eax + 0x40]
add cl, 0xd9
mov byte [esp + eax + 0x40], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 9
jb 0x409810
mov dword [esp + 0x14], 0xeae9cdcf
mov byte [esp + 0x18], 0x38
mov dword [esp + 0x19], 0
mov word [esp + 0x1d], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0x4b
xor cl, byte [esp + eax + 0x14]
add cl, 0x89
mov byte [esp + eax + 0x14], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 2
cmp eax, 0xb
jb 0x409850
movzx eax, byte [esp + 0x14]
test al, al
je 0x40989b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409890
mov byte [esi], 0
movzx eax, byte [edi + 0x60]
test al, al
je 0x4098bb
lea ecx, [edi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4098b0
mov byte [esi], 0
movzx eax, byte [esp + 0x40]
test al, al
je 0x4098db
lea ecx, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4098d0
mov byte [esi], 0
sub esi, edx
add dword [edi + 0x80], esi
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10