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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x718a8ca1
mov dword [esp + 0x14], 0xc47c8983
mov dword [esp + 0x18], 0x887c729e
mov dword [esp + 0x1c], 0x8571cfb4
mov dword [esp + 0x20], 0x7d777286
mov dword [esp + 0x24], 0x8d76727b
mov dword [esp + 0x28], 0x72318335
mov dword [esp + 0x2c], 0x6265757c
mov dword [esp + 0x30], 0x80e0e96
mov word [esp + 0x34], 0x70c
mov eax, 0x8d
mov ecx, 0x72
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x62]
mov edx, eax
xor edx, ecx
and edx, ebx
xor edx, ecx
add dl, 0x70
mov byte [esp + ecx - 0x62], dl
dec eax
inc ecx
cmp eax, 0x67
jne 0x409670
mov dword [esp + 0xc], 0xa0d22
mov dword [esp + 0x36], 0x1fecb4b0
mov dword [esp + 0x3a], 0x1a06161f
mov dword [esp + 0x3e], 0x1e3db11
mov dword [esp + 0x42], 0xf040a0a
mov dword [esp + 0x46], 0xf060a04
mov dword [esp + 0x4a], 0x12d3f80f
mov dword [esp + 0x4e], 0xf50a040a
mov dword [esp + 0x52], 0x2d3f2b2d
mov dword [esp + 0x56], 0x2131eec6
mov dword [esp + 0x5a], 0xe6ce273c
mov dword [esp + 0x5e], 0x3d3b3f23
mov dword [esp + 0x62], 0x3afbd1fb
mov dword [esp + 0x66], 0x2e3a2224
mov dword [esp + 0x6a], 0xd9362f30
mov word [esp + 0x6e], 0x96f7
mov ebx, 0xd027f585
nop
movzx ebp, byte [esp + ebx + 0x2fd80ab1]
mov edx, ebp
and edx, ebx
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, ebp
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, 0xd8
mov byte [esp + ebx + 0x2fd80ab1], al
inc ebx
cmp ebx, 0xd027f5bf
jne 0x409710
add esi, dword [esp + 4]
mov word [esp + 1], 0x3e3f
mov byte [esp + 3], 0x14
mov eax, 2
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 1]
lea ecx, [eax - 0x2ebf1d00]
or ecx, edx
and edx, eax
sub ecx, edx
mov edx, ecx
not edx
mov ebx, ecx
and ebx, 0x6f
xor ecx, 0x75f8e7ef
lea ebx, [ecx + ebx*2]
and ecx, 1
xor ebx, 1
and edx, 1
or edx, ebx
add edx, ecx
mov byte [esp + eax - 1], dl
inc eax
cmp eax, 5
jne 0x409770
movzx ecx, byte [esp + 1]
mov eax, esi
test cl, cl
je 0x4097cb
lea edx, [esp + 2]
mov eax, esi
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4097c0
mov byte [eax], 0
mov edx, dword [esp + 8]
movzx ecx, byte [edx + 0x60]
test cl, cl
je 0x4097eb
add edx, 0x61
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4097e0
mov byte [eax], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x40980b
lea edx, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409800
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x40982b
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409820
mov byte [eax], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x40984b
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409840
mov byte [eax], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
mov dword [esp + 4], esi
je 0x40986b
lea edx, [esp + 0x11]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409860
mov byte [eax], 0
mov ebp, dword [esp + 0x90]
mov ecx, ebp
shr ecx, 2
mov esi, dword [esp + 0x8c]
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ebx, ebp
and ebx, 0xfffffffc
add eax, ebx
add ebx, esi
mov ecx, ebp
not ecx
or ecx, 3
lea edx, [ecx + ebp]
inc edx
mov ecx, edx
shr ecx, 1
mov ebp, ebx
mov edi, eax
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov ecx, edx
and ecx, 0xfffffffe
add eax, ecx
test dl, 1
je 0x4098c1
movzx ecx, byte [ebx + ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 0x36], 0xeae2e4e0
mov byte [esp + 0x3a], 0xf1
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0x36]
mov ebp, ecx
and ebp, 0xa
mov edx, edi
xor edx, 0x436a2955
add edx, ebp
xor edx, ebx
mov ebx, edx
xor ebx, 0x1b514aa8
mov ebp, edx
or ebp, 0x402a2157
and ebp, ebx
xor edx, 0xe4aeb557
lea ebx, [edx + ebp*2]
and edx, 1
xor ebx, 1
lea edx, [ebx + edx*2]
mov byte [esp + edi + 0x36], dl
inc edi
add ecx, 2
cmp edi, 5
jne 0x4098e0
mov dword [esp + 0x10], 0xb9be989c
mov byte [esp + 0x14], 0x85
mov ecx, 0x49
mov edi, 0x36
nop
nop
mov ebx, edi
and ebx, 0x2d
mov edx, ecx
and edx, 0x52
or edx, ebx
xor dl, byte [esp + ecx - 0x39]
xor dl, 0xad
add dl, 0xb8
mov byte [esp + ecx - 0x39], dl
inc ecx
dec edi
cmp ecx, 0x4e
jne 0x409940
movzx ecx, byte [esp + 0x10]
test cl, cl
mov esi, dword [esp + 4]
je 0x40998d
lea edx, [esp + 0x11]
mov edi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409980
jmp 0x409991
mov edi, dword [esp + 8]
mov byte [eax], 0
movzx ecx, byte [edi + 0x60]
test cl, cl
je 0x4099ab
lea edx, [edi + 0x61]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4099a0
mov byte [eax], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x4099cb
lea edx, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4099c0
mov byte [eax], 0
mov ecx, eax
not ecx
and ecx, esi
not esi
and esi, eax
sub esi, ecx
add dword [edi + 0x80], esi
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret 0x10