Function at 0x96a930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x18], 0x7f10792b
mov dword [esp + 0x1c], 0x63f17deb
mov dword [esp + 0x20], 0x676661f2
mov word [esp + 0x24], 0
mov eax, 0x6369596a
mov ecx, 0x392d4d95
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x63695952]
lea esi, [edx + edx]
not esi
add esi, edx
lea edi, [ecx - 0x392d4d00]
and edi, ecx
or edi, esi
or edx, eax
and edx, edi
add dl, 0xee
mov byte [esp + eax - 0x63695952], dl
inc eax
dec ecx
cmp eax, 0x63695978
jne 0x96a970
mov dword [esp + 0x30], 0x19a61bb4
mov dword [esp + 0x34], 0xe556e7a4
mov dword [esp + 0x38], 0xe113e322
mov dword [esp + 0x3c], 0xed5aef11
mov dword [esp + 0x40], 0xe947eb5d
mov dword [esp + 0x44], 0xf542f747
mov dword [esp + 0x48], 0xf143f35c
mov dword [esp + 0x4c], 0xfd42ff4d
mov dword [esp + 0x50], 0xf9fafb3a
mov byte [esp + 0x54], 0
mov eax, 0xae82d9fb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x517d2635]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x19
mov byte [esp + eax + 0x517d2635], cl
inc eax
cmp eax, 0xae82da20
jne 0x96aa00
movzx ecx, word [esp + 0x30]
lea eax, [esp + 0x15c]
test cx, cx
je 0x96aa53
lea edx, [esp + 0x32]
mov esi, dword [ebp + 0x10]
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x96aa40
jmp 0x96aa56
mov esi, dword [ebp + 0x10]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x96aa81
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x96aa70
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x96aab1
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x96aaa0
mov word [eax], 0
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov dword [esp + 0x30], 0x4744441a
mov byte [esp + 0x34], 0x24
mov dword [esp + 0x35], 0
mov eax, 0x38c9373f
mov edi, 0x71926e7e
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x38c9370f]
mov dword [esp + 8], edx
mov ecx, eax
xor ecx, 0x9fdff087
mov ebx, edi
and ebx, 0x40000ef0
sub ebx, ecx
mov ecx, ebx
not ecx
or ecx, edx
lea esi, [ebx + ecx]
inc esi
mov edx, esi
and edx, 0xfd
mov ecx, esi
or ecx, 0xfd
inc ecx
imul ecx, edx
mov edx, esi
and edx, 2
or esi, 2
imul esi, edx
sub ecx, esi
add ecx, ebx
add cl, byte [esp + 8]
add cl, 0x68
mov byte [esp + eax - 0x38c9370f], cl
inc eax
add edi, 2
cmp eax, 0x38c93748
jne 0x96aae0
movzx eax, byte [esp + 0x30]
test al, al
je 0x96ab6d
lea ecx, [esp + 0x31]
mov edx, dword [esp + 4]
mov edi, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x96ab60
jmp 0x96ab74
mov edx, dword [esp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 4], edx
mov byte [edx], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x150]
lea edx, [esp + 0x2c]
lea esi, [esp + 0x15c]
push eax
push ecx
push edx
push esi
call fcn.0095c680
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x996f0c]
mov ecx, 0x66643982
xor ecx, dword [0x996f14]
add eax, ecx
inc eax
jmp eax