Function at 0x4292e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], 2
mov dword [esp], ebx
call sym.fennel_bin.exe_luaL_checkinteger
mov dword [esp + 4], 3
mov dword [esp], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call sym.fennel_bin.exe_luaL_checkinteger
mov dword [esp + 4], 4
mov dword [esp], ebx
mov esi, eax
mov edi, edx
call sym.fennel_bin.exe_luaL_checkinteger
mov dword [esp + 4], 5
mov dword [esp], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
call sym.fennel_bin.exe_lua_type
xor ecx, ecx
mov edx, 1
test eax, eax
mov eax, ebx
setg cl
lea ebp, [ecx*4 + 1]
mov ecx, 1
call sym._checktab
mov ecx, 2
mov edx, ebp
mov eax, ebx
call sym._checktab
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, edi
cmp esi, edx
sbb eax, ecx
jl 0x429486
xor eax, eax
cmp eax, edx
sbb eax, ecx
jge 0x4294a0
mov eax, esi
mov edx, edi
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, 0xffffffff
sub eax, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, 0x7fffffff
sbb edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x20]
mov eax, edx
sbb eax, dword [esp + 0x24]
jl 0x429580
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, edi
cmp esi, eax
sbb ecx, edx
jl 0x4294e0
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
sbb ecx, edx
jge 0x4294e0
cmp ebp, 1
je 0x42940f
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_compare
test eax, eax
je 0x4294e0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
sbb edx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x429434
mov esi, eax
mov edi, edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_geti
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 4], ebp
add eax, esi
adc edx, edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call sym.fennel_bin.exe_lua_seti
mov eax, esi
mov ecx, dword [esp + 0x18]
mov edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
xor ecx, esi
mov esi, dword [esp + 0x1c]
xor esi, edi
or esi, ecx
jne 0x429430
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_pushvalue
add esp, 0x3c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edx
mov edx, ecx
add eax, 0xfffffffe
adc edx, 0x7fffffff
cmp eax, esi
mov eax, edx
sbb eax, edi
jge 0x42938c
mov dword [esp + 8], str.too_many_elements_to_move
mov dword [esp + 4], 3
mov dword [esp], ebx
call sym.fennel_bin.exe_luaL_argerror
jmp 0x42938c
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, esi
mov edx, edi
add eax, 1
adc edx, 0
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
sub eax, esi
sbb edx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
lea esi, [esi]
lea esi, [esi]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_geti
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 4], ebp
add eax, esi
adc edx, edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call sym.fennel_bin.exe_lua_seti
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add esi, 1
adc edi, 0
mov eax, edx
mov edx, ecx
xor eax, esi
xor edx, edi
or edx, eax
jne 0x429520
jmp 0x429486
mov dword [esp + 8], str.destination_wrap_around
mov dword [esp + 4], 4
mov dword [esp], ebx
call sym.fennel_bin.exe_luaL_argerror
jmp 0x4293c2