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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x74
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0xe], 0x565f5f8c
mov dword [esp + 0x12], 0x9b515a66
mov dword [esp + 0x16], 0x9fa9b173
mov dword [esp + 0x1a], 0xaa9c5c71
mov dword [esp + 0x1e], 0xaa9291ab
mov dword [esp + 0x22], 0xa2ab91ae
mov dword [esp + 0x26], 0xb574a068
mov dword [esp + 0x2a], 0x8d88b689
mov dword [esp + 0x2e], 0x5f5b5dbb
mov word [esp + 0x32], 0x2459
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + esi]
mov edi, eax
and edi, 0x6e
mov ebx, esi
xor ebx, 0x77
add ebx, edi
xor bl, byte [esp + esi + 0xe]
add bl, 0x48
mov byte [esp + esi + 0xe], bl
and eax, 2
xor esi, 1
add esi, eax
cmp esi, 0x26
jb 0x409610
mov dword [esp + 0xa], 0xa0d22
mov dword [esp + 0x3a], 0x48a5efe9
mov dword [esp + 0x3e], 0x454f5d46
mov dword [esp + 0x42], 0x46aa8058
mov dword [esp + 0x46], 0x405d4143
mov dword [esp + 0x4a], 0x585f415d
mov dword [esp + 0x4e], 0x5d9a8356
mov dword [esp + 0x52], 0x92534f53
mov dword [esp + 0x56], 0x62766064
mov dword [esp + 0x5a], 0x6668a5bf
mov dword [esp + 0x5e], 0xa9b76c65
mov dword [esp + 0x62], 0x6a62646a
mov dword [esp + 0x66], 0x75b2aab2
mov dword [esp + 0x6a], 0x7973797d
mov dword [esp + 0x6e], 0xa67f7479
mov word [esp + 0x72], 0xddbe
mov esi, 0x21def3c4
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi - 0x21def38a]
mov ebx, esi
or ebx, eax
lea edi, [esi - 0x21def300]
and edi, eax
sub ebx, edi
mov eax, 0x20
sub eax, ebx
not ebx
and ebx, 1
or eax, 1
sub ebx, eax
mov byte [esp + esi - 0x21def38a], bl
inc esi
cmp esi, 0x21def3fe
jne 0x4096c0
mov ecx, dword [esp + 0x88]
add ecx, edx
mov word [esp + 1], 0xbcbd
mov byte [esp + 3], 0x92
xor edx, edx
nop
nop
movzx esi, byte [esp + edx + 1]
mov ebx, esi
and ebx, 0x12
mov eax, esi
xor eax, 0xe2f36712
or esi, 0xed
and esi, eax
xor ebx, esi
and esi, 0x12
xor ebx, 0x12
or ebx, esi
xor ebx, edx
xor bl, 0x82
mov byte [esp + edx + 1], bl
inc edx
cmp edx, 3
jne 0x409710
movzx edx, byte [esp + 1]
mov esi, ecx
test dl, dl
je 0x40976b
lea edi, [esp + 2]
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x409760
mov byte [esi], 0
mov eax, dword [esp + 4]
movzx edx, byte [eax + 0x60]
test dl, dl
mov ebx, dword [esp + 0x90]
je 0x40979b
lea edi, [eax + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x409790
mov byte [esi], 0
movzx edx, byte [esp + 0x3a]
test dl, dl
je 0x4097bb
lea edi, [esp + 0x3b]
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x4097b0
mov byte [esi], 0
movzx edx, byte [ebp]
test dl, dl
mov dword [esp + 0x34], ecx
je 0x4097dc
inc ebp
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ebp]
inc ebp
test dl, dl
jne 0x4097d0
mov byte [esi], 0
movzx ecx, byte [esp + 0xa]
test cl, cl
je 0x4097fd
lea edx, [esp + 0xb]
mov ebp, ebx
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4097f0
jmp 0x4097ff
mov ebp, ebx
mov byte [esi], 0
movzx ecx, byte [esp + 0xe]
test cl, cl
je 0x40981b
lea edx, [esp + 0xf]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409810
mov byte [esi], 0
mov ebx, dword [esp + 0x94]
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
add ebp, edx
add edx, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, ebx
and ecx, 2
add edx, ecx
test bl, 1
je 0x40985f
movzx eax, byte [ebp + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x3a], 0x87818187
mov byte [esp + 0x3e], 0x8e
xor ecx, ecx
nop
nop
movzx ebx, byte [esp + ecx + 0x3a]
lea esi, [ecx + 0x3aba495a]
mov eax, 0xc545b6a5
sub eax, ecx
and eax, 0xc001949d
mov edi, esi
and edi, 0x880822
or edi, eax
xor edi, ebx
xor edi, 0xfa33d5dd
lea eax, [edi + edi]
not eax
add eax, edi
and eax, esi
add eax, eax
neg eax
add eax, ecx
add eax, 0x3aba495a
add al, bl
add al, 0x30
mov byte [esp + ecx + 0x3a], al
mov eax, ecx
not eax
or eax, 1
mov esi, ecx
and esi, 6
mov edi, ecx
xor edi, 1
add edi, eax
sub edi, esi
lea ecx, [edi + ecx*2]
inc ecx
cmp ecx, 5
jb 0x409870
mov dword [esp + 0xe], 0x76775355
mov byte [esp + 0x12], 0x5c
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xe]
mov esi, ecx
or esi, 0x98
mov ebx, 0x67
sub ebx, ecx
xor ebx, esi
and ebx, eax
xor ebx, esi
add bl, 0x40
mov byte [esp + ecx + 0xe], bl
add ecx, 0x86f1321d
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
add ecx, 0x790ecde3
cmp ecx, 5
jb 0x4098f0
movzx ecx, byte [esp + 0xe]
test cl, cl
je 0x40994d
lea esi, [esp + 0xf]
mov eax, dword [esp + 4]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409940
jmp 0x409951
mov eax, dword [esp + 4]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40996b
lea esi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409960
mov byte [edx], 0
movzx ecx, byte [esp + 0x3a]
test cl, cl
je 0x40998b
lea esi, [esp + 0x3b]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409980
mov byte [edx], 0
sub edx, dword [esp + 0x34]
add dword [eax + 0x80], edx
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret 0x10