Function at 0x4092b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x58
mov eax, dword [esp + 0x68]
add eax, dword [ecx + 0x60]
mov word [esp + 0x10], 0x3d3f
mov byte [esp + 0x12], 0xca
mov word [esp + 0x13], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 4
ja 0x40932d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x10]
lea edi, [edx + 0x33]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0x7b3dcd33
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
inc dl
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x10], dl
inc dword [esp + 8]
mov edx, dword [esp + 8]
cmp edx, 5
jb 0x4092f0
mov dword [esp + 8], 0x160c1026
mov dword [esp + 0xc], 0x30a
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 7
ja 0x40939c
nop
nop
nop
nop
mov esi, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 8]
lea edx, [esi + 1]
add esi, edi
and edx, edi
sub esi, edx
add esi, 0x8a0e1901
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edx, edx
sub edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
mov esi, edx
xor esi, 5
and edx, 0x7a
add edx, edx
sub edx, esi
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 8
jb 0x409350
mov dword [esp + 0x18], 0x9e845053
mov dword [esp + 0x1c], 0x829e6c68
mov dword [esp + 0x20], 0x858e8473
mov dword [esp + 0x24], 0x8a818689
mov dword [esp + 0x28], 0x42898586
mov dword [esp + 0x2c], 0xbc6f2927
mov dword [esp + 0x30], 0xbfb183ba
mov dword [esp + 0x34], 0xbe567c84
mov dword [esp + 0x38], 0x8cb7b789
mov dword [esp + 0x3c], 0xacb98fbb
mov dword [esp + 0x40], 0xa77e55aa
mov dword [esp + 0x44], 0x62ada9a9
mov dword [esp + 0x48], 0xb29ab4a8
mov dword [esp + 0x4c], 0xcea47355
mov dword [esp + 0x50], 0xb29d0db
mov byte [esp + 0x54], 0x68
mov word [esp + 0x55], 0
mov byte [esp + 0x57], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x3f
ja 0x40947d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x18]
lea edi, [edx + esi]
add edx, 9
and edx, esi
add edx, edx
sub edi, edx
add edi, 0xdebd7709
mov dword [esp], edi
mov edx, dword [esp]
add dl, 0xd3
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x40
jb 0x409440
mov esi, dword [esp + 0x6c]
movzx ebx, byte [esp + 0x18]
mov edx, eax
test bl, bl
je 0x4094ab
lea edi, [esp + 0x19]
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4094a0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x4094cb
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 0x4094c0
mov esi, dword [esp + 0x70]
mov byte [edx], 0
movzx ebx, byte [esp + 8]
test bl, bl
je 0x4094eb
lea edi, [esp + 9]
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4094e0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40950b
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 0x409500
mov byte [edx], 0
movzx ebx, byte [esp + 0x10]
test bl, bl
je 0x40952b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409520
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
add esp, 0x58
pop esi
pop edi
pop ebx
ret 0xc