Function at 0x430b40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], edi
mov eax, dword [eax + 8]
cmp eax, 5
mov dword [ebp - 4], esi
mov ebx, dword [ebp + 0x14]
jl 0x430fa3
cmp eax, 0x11
jg 0x430ea5
mov eax, dword [ebp + 0x10]
test byte [eax + 0x16d], 0x20
je 0x430bef
mov eax, dword [ebp + 8]
cmp dword [ebp + 0xc], 1
mov ecx, dword [eax]
je 0x430fb2
mov eax, dword [ebp + 0xc]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [ebp - 0x14], edx
test edx, edx
jle 0x430e96
mov esi, dword [ebp + 0xc]
xor edx, edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ecx
lea eax, [esi + ebx]
mov dword [ebp - 0x18], eax
lea edi, [esi + ecx]
xor esi, esi
mov dword [ebp - 0x1c], edi
xor eax, eax
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x20]
movzx esi, byte [edx + edi]
mov edi, dword [ebp - 0x1c]
movzx ebx, byte [eax + edi - 1]
xor esi, ebx
mov byte [edx + ecx], bl
inc edx
movzx ecx, byte [eax + edi - 1]
dec eax
mov ebx, dword [ebp - 0x18]
xor ecx, esi
mov esi, dword [ebp - 0x10]
mov byte [esi + ebx - 1], cl
dec esi
cmp edx, dword [ebp - 0x14]
jl 0x430bb7
jmp 0x430e96
cmp dword [ebp + 0xc], 1
je 0x430fbc
cmp dword [ebp + 0xc], 2
je 0x430e12
cmp dword [ebp + 0xc], 4
jne 0x430c98
mov eax, dword [ebp + 8]
mov esi, dword [eax]
mov edx, esi
and edx, 3
jne 0x430c1d
mov eax, dword [esi]
jmp 0x430c41
and esi, 0xfffffffc
test edx, edx
je 0x430c34
lea ecx, [edx*8]
neg ecx
mov eax, dword [esi + 4]
shl eax, cl
jmp 0x430c36
xor eax, eax
shl edx, 3
mov ecx, edx
mov esi, dword [esi]
shr esi, cl
or eax, esi
mov edx, ebx
and edx, 3
jne 0x430c4f
mov dword [ebx], eax
jmp 0x430e96
mov esi, 0xffffffff
lea edi, [edx*8]
mov ecx, edi
and ebx, 0xfffffffc
shl esi, cl
test edx, edx
je 0x430c87
shl edx, 3
neg edx
mov ecx, dword [ebx + 4]
and ecx, esi
mov dword [ebp - 0x20], ecx
mov ecx, edx
mov edx, eax
shr edx, cl
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x20]
or esi, edx
mov dword [ebx + 4], esi
mov esi, dword [ebp - 0x24]
not esi
mov ecx, edi
and esi, dword [ebx]
shl eax, cl
or esi, eax
mov dword [ebx], esi
jmp 0x430e96
cmp dword [ebp + 0xc], 8
jne 0x430dfc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test al, 3
jne 0x430cb8
mov edx, dword [eax]
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 4]
jmp 0x430d44
mov edx, eax
and edx, 0xfffffff8
mov dword [ebp - 0x20], edx
and eax, 7
je 0x430cfc
mov esi, edx
lea ecx, [eax*8]
neg ecx
add ecx, 0x40
mov edx, dword [esi + 8]
cmp ecx, 0x1f
mov dword [ebp - 0x24], edx
mov edx, dword [esi + 0xc]
ja 0x430cee
mov esi, dword [ebp - 0x24]
shld edx, esi, cl
shl esi, cl
mov dword [ebp - 0x10], esi
jmp 0x430d01
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0
shl edx, cl
jmp 0x430d01
xor edx, edx
mov dword [ebp - 0x10], edx
mov edi, dword [ebp - 0x20]
shl eax, 3
cmp eax, 0x1f
mov esi, dword [edi]
mov dword [ebp - 0x24], esi
mov esi, dword [edi + 4]
ja 0x430d28
mov ecx, eax
mov eax, esi
mov edi, dword [ebp - 0x24]
shrd edi, esi, cl
shr eax, cl
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], eax
jmp 0x430d38
mov ecx, eax
mov eax, esi
shr eax, cl
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
or eax, dword [ebp - 0x24]
or edx, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
test bl, 3
jne 0x430d56
mov eax, dword [ebp - 0x10]
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x430e96
mov eax, ebx
and ebx, 7
and eax, 0xfffffff8
mov dword [ebp - 0x14], eax
mov eax, 0xffffffff
lea ecx, [ebx*8]
mov dword [ebp - 0x18], ecx
shl eax, cl
test ebx, ebx
je 0x430dc9
mov ecx, dword [ebp - 0x14]
shl ebx, 3
neg ebx
add ebx, 0x40
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
and edi, eax
mov dword [ebp - 0x1c], esi
cmp ebx, 0x1f
ja 0x430da5
mov ecx, ebx
mov ebx, edx
mov esi, dword [ebp - 0x10]
shrd esi, edx, cl
shr ebx, cl
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
jmp 0x430db5
mov ecx, ebx
mov ebx, edx
shr ebx, cl
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp - 0x14]
mov ecx, edi
mov ebx, dword [ebp - 0x1c]
or ecx, dword [ebp - 0x20]
or ebx, dword [ebp - 0x24]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
mov ecx, dword [ebp - 0x14]
not eax
and eax, dword [ecx]
cmp dword [ebp - 0x18], 0x1f
ja 0x430de3
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
shld edx, ebx, cl
shl ebx, cl
jmp 0x430ded
mov ecx, dword [ebp - 0x18]
xor ebx, ebx
mov edx, dword [ebp - 0x10]
shl edx, cl
mov ecx, dword [ebp - 0x14]
or eax, ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x430e96
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
push dword [eax]
push ebx
call fcn.004b9230
add esp, 0xc
jmp 0x430e96
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov esi, edx
and esi, 0xfffffffe
and edx, 1
je 0x430e35
lea ecx, [edx*8]
neg ecx
add ecx, 0x10
movsx eax, word [esi + 2]
shl eax, cl
jmp 0x430e37
xor eax, eax
shl edx, 3
mov edi, 0xffffffff
mov ecx, edx
movzx esi, word [esi]
shr esi, cl
or eax, esi
mov esi, ebx
and ebx, 1
and esi, 0xfffffffe
lea edx, [ebx*8]
mov ecx, edx
shl edi, cl
test ebx, ebx
je 0x430e86
shl ebx, 3
neg ebx
add ebx, 0x10
movzx ecx, word [esi + 2]
and ecx, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], ecx
mov ecx, ebx
movzx edi, ax
shr edi, cl
mov ebx, dword [ebp - 0x20]
or ebx, edi
mov edi, dword [ebp - 0x24]
mov word [esi + 2], bx
not edi
mov ecx, edx
movzx ebx, word [esi]
shl eax, cl
and ebx, edi
or ebx, eax
mov word [esi], bx
xor eax, eax
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
cmp eax, 0x19
jl 0x430fa3
cmp eax, 0x1f
jle 0x430ed4
cmp eax, 0x32
jl 0x430ec2
cmp eax, 0x34
jle 0x430ed4
jmp 0x430fa3
cmp eax, 0x28
jl 0x430fa3
cmp eax, 0x30
jg 0x430fa3
mov edx, dword [eax*4 + 0x4dbd7c]
cmp edx, 0xffffffff
mov eax, dword [ebp + 0x10]
movsx esi, byte [eax + 0x158]
je 0x430fcb
mov edi, esi
lea ecx, [esi*4]
shl edi, 5
sub edi, ecx
mov eax, dword [ebp + 8]
mov edx, dword [edi + edx*4 + 0x4dbf40]
test edx, edx
mov eax, dword [eax]
je 0x430f2c
push ebx
push 0
push eax
call edx
add esp, 0xc
cmp eax, 1
je 0x430f4e
mov eax, 0x5f
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 4
mov edx, dword [eax]
mov dword [ebx], edx
je 0x430f4e
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
cmp dword [ebp + 0xc], 8
je 0x430f4e
mov edx, dword [eax + 8]
mov dword [ebx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x10]
test byte [eax + 0x16d], 0x20
je 0x430fa3
test esi, esi
je 0x430f6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
cmp eax, 0x34
je 0x430f6e
cmp eax, 0x32
jne 0x430fa3
mov edx, dword [ebp + 0xc]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jle 0x430fa3
mov edx, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0x24], eax
xor ecx, ecx
lea edi, [edx + ebx]
movzx eax, byte [ebx]
inc esi
movzx edx, byte [ecx + edi - 1]
xor eax, edx
mov byte [ebx], dl
inc ebx
xor byte [ecx + edi - 1], al
dec ecx
cmp esi, dword [ebp - 0x24]
jl 0x430f8b
xor eax, eax
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
movzx eax, byte [ecx]
mov byte [ebx], al
jmp 0x430e96
mov esi, dword [ebp + 8]
mov edi, dword [esi]
movzx eax, byte [edi]
mov byte [ebx], al
jmp 0x430e96
mov eax, 0x5f
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret