Function at 0x4095d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov word [esp + 0x18], 0xb3b1
mov byte [esp + 0x1a], 0xa2
mov dword [esp + 0x1f], 0
mov dword [esp + 0x1b], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 0xa
ja 0x40964c
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x18]
lea edi, [edx - 0x7420d4ba]
add edx, 0x46
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0x16
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 8]
mov edx, dword [esp + 8]
cmp edx, 0xb
jb 0x409610
mov dword [esp + 8], 0xe100cfa
mov word [esp + 0xc], 0xe5ee
mov dword [esp + 0xe], 0
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xe
ja 0x4096b9
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
lea edi, [edx + 0x32960d7c]
add edx, 0x7c
or edx, edi
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0x9c
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xf
jb 0x409680
mov dword [esp + 0x28], 0xd6d40001
mov dword [esp + 0x2c], 0xd2d20408
mov dword [esp + 0x30], 0xdfcadc01
mov dword [esp + 0x34], 0xdad7decb
mov dword [esp + 0x38], 0x32e7cbca
mov dword [esp + 0x3c], 0xf4014f4d
mov dword [esp + 0x40], 0xf9eff1f6
mov dword [esp + 0x44], 0xe60a24fc
mov dword [esp + 0x48], 0xe4e1fdfb
mov dword [esp + 0x4c], 0xe4ffe5f9
mov dword [esp + 0x50], 0xf13a2be6
mov dword [esp + 0x54], 0x32f3efeb
mov dword [esp + 0x58], 0x216fcf8
mov dword [esp + 0x5c], 0x614c1df
mov dword [esp + 0x60], 0xcdd70009
mov byte [esp + 0x64], 0xa8
mov dword [esp + 0x65], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x40
ja 0x4097a4
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x28]
lea edi, [edx + esi]
add edi, 0x9ca0e24e
add edx, 0x4e
and edx, esi
add edx, edx
mov esi, edx
xor esi, edi
not edx
and edx, edi
add edx, edx
sub edx, esi
mov dword [esp], edx
mov edx, dword [esp]
mov esi, edx
xor esi, 0xdd
and edx, 0x5d
lea edx, [esi + edx*2]
inc dl
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x41
jb 0x409750
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x28]
mov edx, eax
test bl, bl
je 0x4097cb
lea edi, [esp + 0x29]
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4097c0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x4097eb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4097e0
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40980b
lea edi, [esp + 9]
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409800
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40982b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409820
mov byte [edx], 0
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x40984b
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409840
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc