Function at 0x423430
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
xor esi, esi
push ebx
sub esp, 0x5c
mov dword [esp + 8], 0x92a
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [esp + 4], 0x4231a9
mov dword [esp], 0x41cb50
call sym._updatecontext_f
call sym._getpid
mov ebx, dword [0x438d08]
mov edi, eax
mov ecx, 0x68db8bad
imul edi, edi, 0x1388
mov eax, ebx
imul ecx
mov ecx, ebx
sar ecx, 0x1f
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
sar edx, 0xb
sub edx, ecx
imul edx, edx, 0x1388
sub ebx, edx
lea eax, [ebx + edi]
mov dword [esp], eax
call sym._srand
mov eax, dword [0x438a54]
test eax, eax
je 0x423b98
cld
mov eax, esi
lea edi, [ebp - 0x28]
mov ecx, 3
lea ebx, [ebp - 0x28]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x28], sym._umss_signal_handler
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 2
mov dword [esp], eax
call sym._sigfillset
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 6
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 4
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 8
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0xb
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0xf
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x1e
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x1f
call sym._sigaction
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x14
call sym._sigaction
mov dword [esp + 4], 1
mov dword [esp], 0xd
call sym._signal
mov dword [esp + 4], 1
mov dword [esp], 0xe
call sym._signal
mov dword [esp + 4], 1
mov dword [esp], 1
call sym._signal
mov dword [esp + 4], 1
mov dword [esp], 0x12
call sym._signal
mov eax, dword [0x43a7a0]
test eax, eax
jne 0x423b00
mov eax, dword [0x43a79c]
test eax, eax
jne 0x423a73
mov eax, dword [0x43a7a0]
test eax, eax
jne 0x423960
call sym._geteuid
test eax, eax
je 0x423943
mov dword [esp + 0xc], 0x9a1
lea ebx, [ebp - 0x30]
mov dword [esp + 8], 0x41cb50
mov dword [esp + 4], 0x4231a9
mov dword [esp], 0x200
call sym._mycalloc2
mov dword [esp], eax
call sym._mydelete2
call sym._set_loginname
mov dword [esp + 4], ebx
mov eax, 0xff
mov dword [0x438fc0], eax
mov dword [esp], 5
call sym._getrlimit
test eax, eax
js 0x423917
mov eax, dword [ebp - 0x2c]
cmp eax, 0xff
jbe 0x4236bd
mov eax, 0xff
mov dword [ebp - 0x30], eax
mov dword [0x438fc0], eax
mov dword [esp + 4], ebx
mov dword [esp], 5
call sym._setrlimit
test eax, eax
js 0x4238e2
mov ecx, dword [0x438fc0]
cmp ecx, 0xff
mov eax, ecx
jle 0x4236f2
mov eax, 0xff
sub eax, 0x1e
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jle 0x4238c5
mov eax, dword [0x438c64]
test eax, eax
jne 0x423830
call sym._getconfig
call sym._getos
mov eax, dword [0x438b18]
test eax, eax
jne 0x423820
mov edi, dword [0x438a54]
test edi, edi
jne 0x423812
mov eax, dword [0x438abc]
test eax, eax
jne 0x423805
call sym.___getreent
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym._fflush
mov esi, dword [0x438a54]
test esi, esi
je 0x423780
mov dword [esp], 0xffffffff
xor ecx, ecx
mov dword [0x438c20], ecx
call sym._switchserver
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
call sym.___getreent
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym._fileno
mov dword [esp], eax
mov dword [esp + 4], 1
call sym._set_socket_nonblocking
test eax, eax
js 0x4237d9
call sym.___getreent
mov eax, dword [eax + 8]
mov ebx, 1
mov dword [esp], eax
call sym._fileno
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp], 0x438cc8
call sym._ir_boutput_init
mov dword [0x438cc4], ebx
jmp 0x42375f
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4231d0
mov dword [esp], 1
call sym._outerror
jmp 0x42375f
mov dword [esp], eax
call sym._writepidfile
jmp 0x423745
call sym._gobackground
jmp 0x423738
call sym._read_statefile
call sym._write_statefile
jmp 0x42372a
mov dword [esp + 4], ebx
mov dword [esp], 4
call sym._getrlimit
test eax, eax
js 0x4238a8
mov eax, dword [ebx + 4]
test eax, eax
mov dword [ebp - 0x30], eax
je 0x423892
mov dword [esp + 4], ebx
mov dword [esp], 4
call sym._setrlimit
test eax, eax
jns 0x423713
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x423210
mov dword [esp], 2
call sym._outerror
jmp 0x423713
mov dword [esp + 4], 0x423230
mov dword [esp], 2
call sym._outerror
jmp 0x42384e
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x42325a
jmp 0x423881
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x423278
mov dword [esp], 0
call sym._outerror
jmp 0x423706
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 0xc], eax
mov eax, dword [0x438fc0]
mov dword [esp + 4], 0x4232b0
mov dword [esp], 0
mov dword [esp + 8], eax
call sym._outerror
jmp 0x4236dd
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4232d4
mov dword [esp], 0
call sym._outerror
jmp 0x4236dd
mov dword [esp + 4], 0x4232f0
mov dword [esp], 0
call sym._outerror
jmp 0x423658
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x38]
xor ebx, ebx
mov dword [esp], 0x423330
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x34]
mov dword [esp + 8], edx
call sym._printf
cmp ebx, dword [ebp - 0x3c]
jl 0x423a55
mov dword [esp], 0x423367
call sym._puts
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._setgid
test eax, eax
js 0x423a29
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x3c]
mov dword [esp], edx
call sym._setgroups
test eax, eax
js 0x423a00
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call sym._setuid
test eax, eax
js 0x4239d7
mov dword [esp], esi
call sym._mydelete2
jmp 0x42364b
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x42336a
mov dword [esp], 0
call sym._outerror
jmp 0x4239ca
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x423383
mov dword [esp], 0
call sym._outerror
jmp 0x4239bb
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x42339c
mov dword [esp], 0
call sym._outerror
jmp 0x4239a8
mov eax, dword [esi + ebx*4]
inc ebx
mov dword [esp], 0x4233b3
mov dword [esp + 4], eax
call sym._printf
cmp ebx, dword [ebp - 0x3c]
jl 0x423a55
jmp 0x423989
mov dword [esp + 4], eax
mov dword [esp], 0x4233d0
call sym._printf
mov eax, dword [0x43a79c]
mov dword [esp], eax
call sym._chroot
test eax, eax
js 0x423ad4
mov dword [esp], 0x4233f5
call sym._chdir
test eax, eax
jns 0x42363e
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4233f7
mov dword [esp], 0
call sym._outerror
jmp 0x42363e
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x423407
mov dword [esp], 0
call sym._outerror
jmp 0x423a94
mov dword [esp], eax
call sym._getpwnam
test eax, eax
mov ebx, eax
je 0x423b51
mov dword [ebp - 0x3c], 1
mov edx, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0xc], 0x95b
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], ebx
mov dword [esp + 8], 0x41cb50
mov dword [esp + 4], 0x4231a9
mov dword [esp], 4
call sym._mycalloc2
mov esi, eax
mov eax, dword [ebp - 0x38]
mov dword [esi], eax
jmp 0x423631
mov eax, dword [0x43a7a0]
mov dword [esp], eax
call sym._atoi
mov dword [esp], eax
call sym._getpwuid
test eax, eax
mov ebx, eax
jne 0x423b0e
call sym.___errno
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0x423418
mov dword [esp], 0
call sym._outerror
jmp 0x423b0e
mov dword [esp], 1
call sym._initscreen
call sym._gotobot
call sym._gototop
jmp 0x4234bb