Function at 0x427cd0
Capabilities:
Read .ini file
Terminate process

Disassembly:
sub esp, 0x164
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
push esi
push edi
mov esi, ecx
lea ebp, [esi + 0x10]
push ebp
push 0xf
lea eax, [esp + 0x48]
push eax
push 0x460630
push 0x460638
push 0x460644
call ebx
push str.ENABLE
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
push ebp
jne 0x428277
push 0xa
lea edx, [esp + 0x48]
push edx
push 0x460658
push 0x46065c
mov ecx, 7
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
push 0x460664
mov dword [esp + 0x28], 0x1c
call ebx
cmp byte [esp + 0x40], 0x30
jne 0x427d62
pop edi
mov dword [esi + 0x14c3], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x164
ret 4
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ebp
push 0x2710
push str.SERIALBUFFER
push 0x460684
call ebx
push 0
push 0x40000080
push 3
push 0
push 3
mov edi, eax
push 0xc0000000
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x60], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, eax
cmp ecx, 0xffffffff
mov dword [esi + 0x212d], ecx
mov byte [esp + 0x44], 0x3a
mov byte [esp + 0x45], 0
jne 0x427e4f
push str.Cant_Open_Serial_Port_n_Tnc_Will_Be_IDLE__
push str.NOOPEN
push 0x4606c8
call fcn.0040d190
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0xc
xor ebx, ebx
push ebx
lea ecx, [esp + 0x44]
push ecx
push 0x466a30
push ebx
call edi
push str.Delete_All_Ports___nNext_Time_Packet_Engine_Will_Have_No_Ports__n_That_way_will_be_able_to_ReConfigure_
push str.DELETEYES
push 0x460744
call fcn.0040d190
add esp, 0xc
push 0x24
push str.OpenComm
push 0x466a30
push ebx
call edi
cmp eax, 6
jne 0x427e34
add esi, 0x1508
push esi
push 0x460758
push 0x46075c
push 0x460764
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 1
call fcn.00439b8d
pop edi
mov dword [esi + 0x14c3], ebx
mov dword [esi + 0x162c], ebx
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x164
ret 4
mov eax, edi
cdq
sub eax, edx
sar eax, 1
push eax
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_SetupComm]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
push 0xa
lea edx, [esp + 0x148]
push edx
push 0x46076c
push 0x460774
push 0x46077c
call edi
mov ecx, dword [esi + 0x212d]
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommState]
push ebp
push 0x2580
push 0x46078c
push 0x460794
call ebx
cmp eax, 0x9600
jg 0x427f07
je 0x427efd
cmp eax, 0x2580
jg 0x427edf
je 0x427f46
cmp eax, 0x960
je 0x427ed2
cmp eax, 0x12c0
jne 0x427f46
mov dword [esp + 0x14], eax
jmp 0x427f62
mov dword [esp + 0x14], 0x960
jmp 0x427f62
cmp eax, 0x3840
je 0x427ef3
cmp eax, 0x4b00
jne 0x427f46
mov dword [esp + 0x14], eax
jmp 0x427f62
mov dword [esp + 0x14], 0x3840
jmp 0x427f62
mov dword [esp + 0x14], 0x9600
jmp 0x427f62
cmp eax, 0x1c200
jg 0x427f38
je 0x427f2e
cmp eax, 0xdac0
je 0x427f24
cmp eax, 0xe100
jne 0x427f46
mov dword [esp + 0x14], eax
jmp 0x427f62
mov dword [esp + 0x14], 0xdac0
jmp 0x427f62
mov dword [esp + 0x14], 0x1c200
jmp 0x427f62
cmp eax, 0x1f400
je 0x427f5a
cmp eax, 0x3e800
je 0x427f50
mov dword [esp + 0x14], 0x2580
jmp 0x427f62
mov dword [esp + 0x14], 0x3e800
jmp 0x427f62
mov dword [esp + 0x14], 0x1f400
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x212d]
lea eax, [esp + 0x10]
and edx, 0xffffb0b5
push eax
or edx, 0x85
push ecx
mov dword [esp + 0x20], edx
mov byte [esp + 0x2a], 8
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_SetCommState]
test eax, eax
jne 0x427fce
push str.ERROR_Initialize_Serial_Port
push str.ERRORINI
push str.SERIAL
call fcn.0040d190
add esp, 0xc
push 0
lea edx, [esp + 0x44]
push edx
push 0x466a30
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov ecx, dword [esi + 0x212d]
mov eax, 0x64
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
mov edx, dword [esi + 0x212d]
push 0xc
push edx
call dword [sym.imp.KERNEL32.dll_PurgeComm]
push ebp
push 0xa
lea eax, [esp + 0x48]
push eax
push 0x4607d8
push 0x4607dc
push 0x4607e4
call edi
push 7
lea ecx, [esp + 0x44]
push 0x4607e8
push ecx
call fcn.0043a790
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0xc
test eax, eax
jne 0x4280f3
push str._r_r_r_r
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x40]
push eax
call edi
mov edx, dword [esi + 0x212d]
push eax
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.00435fc0
add esp, 0xc
push 0x96
call ebx
push 0x4607f8
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x40]
push ecx
call edi
push eax
mov eax, dword [esi + 0x212d]
lea edx, [esp + 0x44]
push edx
push eax
call fcn.00435fc0
add esp, 0xc
push 0x96
call ebx
push 0x4607fc
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x40]
push edx
call edi
mov ecx, dword [esi + 0x212d]
push eax
lea eax, [esp + 0x44]
push eax
push ecx
call fcn.00435fc0
add esp, 0xc
push 0x96
call ebx
mov edx, dword [esi + 0x212d]
push 8
push edx
call dword [sym.imp.KERNEL32.dll_PurgeComm]
push ebp
push 0x32
lea eax, [esp + 0x48]
push eax
push 0x460800
push 0x460804
push 0x460810
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x1b
lea ecx, [esp + 0x44]
push 0x5e
push ecx
call fcn.00411520
add esp, 0xc
push 0x460814
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x40]
push eax
call edi
mov edx, dword [esi + 0x212d]
push eax
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.00435fc0
add esp, 0xc
push 0x32
call ebx
mov eax, dword [esi + 0x212d]
push 8
push eax
call dword [sym.imp.KERNEL32.dll_PurgeComm]
push ebp
push 0x32
lea ecx, [esp + 0x48]
push ecx
push 0x460818
push 0x460820
push 0x46082c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x1b
lea edx, [esp + 0x44]
push 0x5e
push edx
call fcn.00411520
add esp, 0xc
push 0x460830
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x40]
push ecx
call edi
push eax
mov eax, dword [esi + 0x212d]
lea edx, [esp + 0x44]
push edx
push eax
call fcn.00435fc0
add esp, 0xc
push 0x32
call ebx
mov ecx, dword [esi + 0x212d]
push 8
push ecx
call dword [sym.imp.KERNEL32.dll_PurgeComm]
push ebp
push 0x32
lea edx, [esp + 0x48]
push edx
push 0x460834
push 0x46083c
push 0x460848
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x1b
lea eax, [esp + 0x44]
push 0x5e
push eax
call fcn.00411520
add esp, 0xc
push 0x46084c
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x40]
push edx
call edi
mov ecx, dword [esi + 0x212d]
push eax
lea eax, [esp + 0x44]
push eax
push ecx
call fcn.00435fc0
add esp, 0xc
push 0x3e8
call ebx
mov edx, dword [esi + 0x212d]
push 8
push edx
call dword [sym.imp.KERNEL32.dll_PurgeComm]
push ebp
push 0
push 0x460850
push 0x46085c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esi + 0x160c], eax
mov eax, dword [esi + 0x212d]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetCommMask]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x164
ret 4
xor edi, edi
push edi
push 0x460868
push 0x460874
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [esi + 0x1055]
mov edx, dword [ecx + eax*4 + 0x30]
lea eax, [ecx + eax*4 + 0x30]
mov ecx, dword [edx + 0x212d]
mov dword [esi + 0x212d], ecx
mov ecx, dword [esi + 0x1504]
dec ecx
mov dword [esi + 0x162c], edi
mov dword [esi + 0x1504], ecx
mov edx, dword [eax]
cmp dword [edx + 0x14c3], edi
jne 0x428265
mov dword [esi + 0x14c3], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x164
ret 4