Function at 0x406e30
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov dword [esp], 0x402281
mov dword [esp + 4], 0x406dae
mov dword [esp + 8], 0x591
call sym._updatecontext_f
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x406e6a
cmp byte [eax], 0
jne 0x406e90
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], 0x406909
mov dword [esp], eax
call sym._u_respond
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x433464]
xor edi, edi
test eax, eax
je 0x406ea9
mov eax, 0x433460
inc edi
mov ecx, dword [eax + edi*4 + 4]
test ecx, ecx
jne 0x406ea0
cmp edi, 0x64
je 0x40712b
mov dword [esp], 0xa24
mov ebx, 0x433460
mov dword [esp + 4], 0x406dae
mov dword [esp + 8], 0x402281
mov dword [esp + 0xc], 0x59f
call sym._mycalloc2
mov dword [ebx + edi*4 + 4], eax
mov dword [esp], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xc]
mov dword [esp + 8], 0x1ff
mov dword [esp + 4], eax
call sym._strncpy
mov eax, dword [ebx + edi*4 + 4]
mov dword [esp + 4], 0x40228d
mov dword [esp + 8], 0x1ff
add eax, 0x400
mov dword [esp], eax
call sym._strncpy
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call sym._getfilename
mov ecx, dword [ebx + edi*4 + 4]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1ff
add ecx, 0x200
mov dword [esp], ecx
call sym._strncpy
mov eax, dword [ebx + edi*4 + 4]
mov dword [esp + 4], 0x40228d
mov dword [esp + 8], 0x1ff
add eax, 0x600
mov dword [esp], eax
call sym._strncpy
mov eax, dword [ebx + edi*4 + 4]
mov dword [esp + 4], 0x40228d
mov dword [esp + 8], 0x1ff
add eax, 0x800
mov dword [esp], eax
call sym._strncpy
mov esi, dword [0x431290]
xor edx, edx
mov ecx, dword [ebx + edi*4 + 4]
xor ebx, ebx
mov dword [ecx + 0xa04], esi
mov dword [ecx + 0xa10], edx
mov edx, dword [0x431294]
mov dword [ecx + 0xa00], ebx
mov dword [ecx + 0xa08], edx
mov dword [esp], ecx
mov dword [esp + 4], 0x10000
call sym._open
test eax, eax
mov ebx, eax
js 0x4070be
mov dword [esp], ebx
mov esi, dword [edi*4 + 0x433464]
mov dword [esp + 4], 0
mov dword [esp + 8], 2
call sym._lseek
mov dword [esi + 0xa0c], eax
mov eax, dword [edi*4 + 0x433464]
mov eax, dword [eax + 0xa0c]
test eax, eax
jne 0x407034
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], 0x406923
mov dword [esp], eax
call sym._u_respond
mov eax, dword [edi*4 + 0x433464]
mov dword [esp], eax
call sym._mydelete2
xor edx, edx
mov dword [edi*4 + 0x433464], edx
jmp 0x406e7d
mov dword [esp], ebx
call sym._close
mov dword [esp], 0x200
mov dword [esp + 4], 0x406dae
mov dword [esp + 8], 0x402281
mov dword [esp + 0xc], 0x5cb
inc dword [0x431e1c]
call sym._mycalloc2
mov dword [esp], eax
mov ebx, eax
mov eax, dword [0x431e1c]
mov dword [esp + 4], 0x1fe
mov dword [esp + 8], 0x406dd0
mov dword [esp + 0xc], eax
mov eax, dword [edi*4 + 0x433464]
mov dword [esp + 0x10], eax
call sym._snprintf
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._u_respond
mov dword [esp], ebx
call sym._mydelete2
mov dword [ebp + 8], 0
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
jmp sym._xdccsave
mov edx, dword [0x4312e8]
test edx, edx
jne 0x4070e3
test ebx, ebx
jns 0x406fce
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], 0x406990
mov dword [esp], eax
jmp 0x407012
mov dword [esp + 0xc], edx
mov eax, dword [edi*4 + 0x433464]
mov dword [esp + 4], 0x1fe
mov dword [esp + 8], 0x4069b1
mov dword [esp], eax
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
call sym._snprintf
mov eax, dword [edi*4 + 0x433464]
mov dword [esp + 4], 0x10000
mov dword [esp], eax
call sym._open
mov ebx, eax
jmp 0x4070c8
mov ebx, dword [ebp - 0x10]
mov dword [esp + 4], 0x406e11
mov dword [esp], ebx
jmp 0x406e78