Function at 0x423760
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
mov edi, edx
push esi
mov esi, ecx
push ebx
mov ebx, eax
sub esp, 0x23c
mov dword [esp + 8], ecx
mov dword [esp + 0xc], str._5_4
mov dword [esp + 4], str._s_s
mov dword [esp], eax
call sym.fennel_bin.exe_lua_pushfstring
mov dword [esp], eax
call sym._getenv
mov ebp, eax
test eax, eax
je 0x423980
mov dword [esp + 8], str.LUA_NOENV
mov dword [esp + 4], 0xfff0b9d8
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_getfield
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_toboolean
mov dword [esp + 4], 0xfffffffe
mov dword [esp], ebx
mov esi, eax
call sym.fennel_bin.exe_lua_settop
test esi, esi
je 0x4238d0
mov eax, dword [esp + 0x250]
mov dword [esp], ebx
lea esi, [esp + 0x20]
mov dword [esp + 4], eax
call sym.fennel_bin.exe_lua_pushstring
mov dword [esp + 8], 0x105
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
sub esp, 0xc
test eax, eax
je 0x423890
cmp eax, 0x105
je 0x423890
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call sym._strrchr
test eax, eax
je 0x423890
mov byte [eax], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_tolstring
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x47330d
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.fennel_bin.exe_luaL_gsub
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xfffffffe
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_rotate
mov dword [esp + 4], 0xfffffffe
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_settop
jmp 0x4238a0
mov dword [esp + 4], str.unable_to_get_ModuleFileName
mov dword [esp], ebx
call sym.fennel_bin.exe_luaL_error
mov dword [esp + 8], edi
mov dword [esp], ebx
mov dword [esp + 4], 0xfffffffd
call sym.fennel_bin.exe_lua_setfield
mov dword [esp], ebx
mov dword [esp + 4], 0xfffffffe
call sym.fennel_bin.exe_lua_settop
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x4732ed
mov dword [esp], ebp
call sym._strstr
test eax, eax
je 0x4239e0
mov dword [esp], ebp
lea esi, [esp + 0x20]
mov dword [esp + 0x1c], eax
call sym._strlen
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x18], eax
call sym.fennel_bin.exe_luaL_buffinit
mov ecx, dword [esp + 0x1c]
cmp ecx, ebp
ja 0x4239a0
mov eax, dword [esp + 0x250]
mov dword [esp], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], eax
call sym.fennel_bin.exe_luaL_addstring
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebp, [ebp + eax - 2]
cmp ebp, ecx
jbe 0x42396d
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
jae 0x4239f5
lea edx, [eax + 1]
sub ebp, ecx
add ecx, 2
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
mov byte [edx + eax], 0x3b
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], esi
call sym.fennel_bin.exe_luaL_addlstring
mov dword [esp], esi
call sym.fennel_bin.exe_luaL_pushresult
jmp 0x4237f7
mov dword [esp], esi
call sym._getenv
mov ebp, eax
test eax, eax
je 0x4237e0
jmp 0x42379e
mov eax, ecx
mov dword [esp + 4], ebp
sub eax, ebp
mov dword [esp], esi
mov dword [esp + 8], eax
call sym.fennel_bin.exe_luaL_addlstring
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
jae 0x423a20
lea eax, [edx + 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov byte [eax + edx], 0x3b
jmp 0x423914
mov dword [esp + 4], ebp
lea esi, [esp + 0x20]
mov dword [esp], ebx
call sym.fennel_bin.exe_lua_pushstring
jmp 0x4237f7
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [esp + 0x18], ecx
call sym.fennel_bin.exe_luaL_prepbuffsize
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
jmp 0x423949
mov dword [esp + 4], 1
mov dword [esp], esi
call sym.fennel_bin.exe_luaL_prepbuffsize
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
jmp 0x4239c2