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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov ebp, dword [esp + 0x84]
mov esi, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x273c3e13
mov dword [esp + 0x14], 0x7a223b31
mov dword [esp + 0x18], 0x3e2a200c
mov dword [esp + 0x1c], 0x2b3f7d66
mov dword [esp + 0x20], 0xb010014
mov dword [esp + 0x24], 0x13080009
mov dword [esp + 0x28], 0x4471147
mov dword [esp + 0x2c], 0xc0b070e
mov dword [esp + 0x30], 0x7e787c04
mov word [esp + 0x34], 0x757e
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0x50
xor byte [esp + eax + 0x10], dl
inc eax
cmp eax, 0x26
jne 0x4094b0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0xa0d22
mov dword [esp + 0x36], 0xe63b5b3
mov dword [esp + 0x3a], 0xb01370c
mov dword [esp + 0x3e], 0x6c4a32
mov dword [esp + 0x42], 0x3e033b39
mov dword [esp + 0x46], 0x3e393b07
mov dword [esp + 0x4a], 0x3374493c
mov dword [esp + 0x4e], 0x74350539
mov dword [esp + 0x52], 0x3c083a3e
mov dword [esp + 0x56], 0x202e7f45
mov dword [esp + 0x5a], 0x6759262f
mov dword [esp + 0x5e], 0x2c242e20
mov dword [esp + 0x62], 0x2b6c5068
mov dword [esp + 0x66], 0xdfd52327
mov dword [esp + 0x6a], 0xa8d1ded3
mov word [esp + 0x6e], 0x7794
xor eax, eax
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
and ebx, 0x1c
mov edx, edi
xor edx, 0xce
add edx, ebx
xor dl, byte [esp + edi + 0x36]
add dl, 0x90
mov byte [esp + edi + 0x36], dl
inc edi
add eax, 2
cmp edi, 0x3a
jne 0x409550
add ebp, esi
mov dword [esp + 4], ebp
mov word [esp + 1], 0xfeff
mov byte [esp + 3], 0xd4
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, esi
and ebp, 0xfffffffe
movzx eax, byte [esp + esi + 1]
mov edx, esi
xor edx, 0x7f33ad3d
mov edi, esi
or edi, 2
and edi, edx
lea edx, [esi + edi]
sub edx, ebp
add edx, 0x80cc52c2
mov ecx, edx
xor ecx, eax
lea ebx, [ecx + ecx]
not ebx
add ebx, ecx
and ebx, edx
mov ecx, ebx
or ecx, 0xfffffffd
inc ecx
mov edx, ebx
and edx, 0xfffffffd
imul edx, ecx
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
add edi, eax
add edi, edx
sub edi, ebx
add edi, esi
sub edi, ebp
add edi, 0x7a69bcb1
mov eax, edi
and eax, 0x3f
xor edi, 0xbf
lea eax, [edi + eax*2]
add al, 0x42
mov byte [esp + esi + 1], al
inc esi
cmp esi, 3
jne 0x409590
movzx eax, byte [esp + 1]
mov ecx, dword [esp + 4]
mov esi, ecx
test al, al
je 0x40962b
lea edi, [esp + 2]
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x409620
mov byte [esi], 0
mov ebp, dword [esp + 0xc]
movzx eax, byte [ebp + 0x60]
test al, al
je 0x40965d
lea edi, [ebp + 0x61]
mov ecx, dword [esp + 0x88]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x409650
jmp 0x409664
mov ecx, dword [esp + 0x88]
mov byte [esi], 0
movzx eax, byte [esp + 0x36]
test al, al
je 0x40968b
lea edi, [esp + 0x37]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x409680
mov byte [esi], 0
movzx eax, byte [ecx]
test al, al
je 0x4096ab
inc ecx
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 0x4096a0
mov byte [esi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x4096cb
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4096c0
mov byte [esi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4096eb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4096e0
mov byte [esi], 0
mov ebx, dword [esp + 0x90]
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp + 0x8c]
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, ebx
xor ecx, 3
mov eax, ebx
or eax, 0xfffffffc
and eax, ecx
add esi, eax
add eax, edx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, eax
mov edi, esi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, ebx
and ecx, 2
add esi, ecx
test bl, 1
je 0x40973e
movzx eax, byte [eax + ecx]
mov byte [esi], al
inc esi
mov dword [esp + 0x36], 0x7a727470
mov byte [esp + 0x3a], 0x61
mov eax, 0x3bd95445
mov ecx, 0xba
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x3bd9540f]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
lea ebx, [edx + 0xd7]
not ebx
mov edi, 0x28
sub edi, edx
or ebx, edi
or edi, 1
add edi, edx
not ebx
or ebx, 1
add ebx, edi
add bl, 0xd8
mov byte [esp + eax - 0x3bd9540f], bl
inc eax
dec ecx
cmp eax, 0x3bd9544a
jne 0x409760
mov dword [esp + 0x10], 0x50517177
mov byte [esp + 0x14], 0x7e
mov edi, 0x9e522d2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi + 0x61add2e6]
mov ebx, edx
and ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edi
add al, 0xb0
mov byte [esp + edi + 0x61add2e6], al
inc edi
cmp edi, 0x9e522d2f
jne 0x4097c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40981b
lea ecx, [esp + 0x11]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409810
mov byte [esi], 0
movzx eax, byte [ebp + 0x60]
test al, al
je 0x40983b
lea ecx, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409830
mov byte [esi], 0
movzx eax, byte [esp + 0x36]
test al, al
je 0x40985b
lea ecx, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409850
mov byte [esi], 0
sub esi, dword [esp + 4]
add dword [ebp + 0x80], esi
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret 0x10