你需要解析下面代码的信息，思考代码的作用，输出以下内容：1.总结每一个子进程下每一个代码的内容，将代码中重要的内容总结出来，对于没有重要功能的简单代码用很短的文字总结即可。对于重要的代码你需要进行思考并精炼，总结重要的信息并进行输出，注重代码的功能逻辑。 下面是代码内容： sub_401420 proc near  var_8 = dword ptr -8  var_4 = dword ptr -4  arg_0 = dword ptr 4  sub esp  8  mov eax  dword_5624a4  push ebx  push ebp  push esi  xor ecx  ecx  mov cl  byte_5624bc  push edi  push offset classname  push 0ffffffd7h  add eax  34h  mov edi  20h  mov esi  0ch  push ecx  mov ebp  1  mov ebx  1bh  mov [esp+24h+var_8]  eax  call sub_407730  mov edx  off_562444  push edx  push 69h  push 79h  mov byte ptr [esp+24h+var_4]  al  call sub_4094b0  mov eax  [esp+18h+var_8]  test eax  eax  jz short loc_401498  mov eax  dword_562424  test eax  eax  jz short loc_401498  mov eax  dword_56244c  push eax  push 0ffffff98h  push 69h  push esi  mov edi  84h  call sub_40f1f0  jmp short loc_40149d  loc_401498:  mov ebp  4dh  loc_40149d:  mov eax  dword_562484  test eax  eax  jz short loc_4014f7  mov eax  dword_562424  test eax  eax  jz short loc_4014f7  mov edx  dword_5624a4  xor ecx  ecx  mov cl  byte_5624c8  mov esi  0ch  sub esi  edx  push 0ffffffb6h  mov edi  esi  or edi  52h  push ecx  call sub_40ca80  mov ecx  dword_5624c0  test ecx  ecx  jz short loc_4014f7  mov edx  off_5623fc  push 21h  push edx  push 69h  push eax  sar edi  0bh  add ebp  79h  call sub_403cb0  mov off_56242c  eax  loc_4014f7:  cmp dwflags  5ch  jge short loc_40152c  mov eax  [esp+18h+arg_0]  mov ebx  1bh  sub ebx  eax  mov eax  [esp+18h+var_4]  push 0ffffff98h  push eax  call sub_40ca80  cmp esi  5eh  jle short loc_40152c  mov dword_562474  esi  call sub_404270  mov byte_562421  al  loc_40152c:  cmp locale  85h  jle short loc_4015aa  mov edx  dword_562460  push 0ddh  add ebp  edx  call sub_404c10  cmp dword_5624a8  9  jge short loc_4015a4  mov esi  dword_562470  push 9ah  sub esi  ebp  push offset apower_neighbor  mov dword_562470  esi  call sub_40f690  mov eax  dword_562470  test eax  eax  jz short loc_4015aa  mov eax  dword_56241c  test eax  eax  jz short loc_4015aa  mov edx  [esp+18h+arg_0]  push 73h  sub ebp  edx  call sub_404c10  cmp dword_562470  36h  jge short loc_4015aa  or [esp+18h+var_8]  3dh  call sub_40c090  jmp short loc_4015aa  loc_4015a4:  mov dword_56247c  esi  loc_4015aa:  mov edx  dword_5624c4  xor ecx  ecx  mov cl  byte_5623e8  xor eax  eax  mov al  byte_562414  push 0  push ecx  push edx  push eax  call sub_407ce0  test ebx  ebx  mov dword_56247c  eax  jnz short loc_4015da  mov eax  [esp+18h+var_8]  test eax  eax  jz short loc_401602  loc_4015da:  push 0ffffff90h  push ebp  push offset aimpletect_ent_  call sub_408930  mov bl  al  cmp dwflags  edi  jge short loc_4015f6  call sub_404000  loc_4015f6:  pop edi  pop esi  pop ebp  mov al  bl  pop ebx  add esp  8  retn 0ch  loc_401602:  mov al  byte ptr [esp+18h+var_4]  pop edi  pop esi  pop ebp  pop ebx  add esp  8  retn 0ch  sub_401420 endp  sub_401660 proc near  var_4 = dword ptr -4  arg_0 = dword ptr 4  push ecx  mov eax  dword_5624c4  cmp eax  dword_5624a8  push esi  push edi  mov esi  5eh  mov byte ptr [esp+0ch+var_4]  0dbh  jge short loc_4016c7  mov ecx  off_5623fc  push ebx  push offset classname  push ecx  push 6ch  push 6bh  mov esi  1bh  call sub_40da40  push 1eh  push 0ffffffdbh  mov ebx  eax  mov edi  9ah  call sub_4097a0  mov edx  off_562444  mov ecx  dword_5624a8  push edx  push ebx  push 9  sub ecx  esi  push 9  mov dword_5624a8  ecx  call sub_40da40  pop ebx  jmp short loc_4016db  loc_4016c7:  mov eax  dword_562424  sub eax  0d8h  mov edi  3fh  mov dword_562424  eax  loc_4016db:  add esi  6ch  cmp edi  1dh  jge short loc_401740  mov ecx  dword_56247c  add edi  67h  sub ecx  edi  xor eax  eax  mov al  byte_56243d  mov dword_56247c  ecx  xor ecx  ecx  mov cl  byte_562450  push offset awork_not_termi  push eax  push ecx  push offset apower_neighbor  call sub_40c260  mov byte ptr [esp+0ch+var_4]  al  mov eax  dword_562484  test eax  eax  jz short loc_401744  call sub_404870  cmp dword_5623e4  4bh  jle short loc_401744  push offset agetinputedefau  call sub_4020f0  mov byte_5624d0  al  jmp short loc_401744  loc_401740:  mov edi  [esp+0ch+arg_0]  loc_401744:  sub esi  dword_562460  call sub_40c090  mov edx  dword_562478  cmp edx  dword_56247c  jle short loc_40177b  mov eax  dword_562424  push eax  push offset a19classuninst_  push offset am_txlockslx  push offset awork_not_termi  call sub_407250  mov byte ptr [esp+0ch+var_4]  al  loc_40177b:  mov ecx  off_562438  push offset awork_not_termi  push ecx  push 1bh  push edi  mov dword_5624c4  edi  call sub_40da40  cmp dword_562424  81h  jle short loc_4017ae  push offset awork_not_termi  add esi  1bh  call sub_4020f0  loc_4017ae:  mov edx  dword_5624c0  push offset agetinputedefau  push 1eh  push 0ffffffb3h  push offset awork_adar  add esi  edx  call sub_40c260  mov edx  [esp+0ch+var_4]  push esi  push edx  push offset acollegaldsmsec  call sub_40c0c0  pop edi  mov dword_5623e4  eax  mov al  1eh  pop esi  pop ecx  retn 10h  sub_401660 endp  内容的输出需要遵循一下规则：1.输出内容以json文件的形式输出。 2. json文件中的key是子进程名称以sub开头。 2.json文件中value为总结的内容，代码内容总结为一句话即可，输出代码功能为主，输出重要的部分