Function at 0x6ac4b3d0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbc
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
test edx, edx
jle 0x6ac4b43a
mov ebx, dword [0x6ac59080]
test ebx, ebx
jne 0x6ac4b402
jmp 0x6ac4b40c
cmp edx, eax
je 0x6ac4b442
mov ebx, dword [ebx + 0xbc]
test ebx, ebx
je 0x6ac4b40c
mov eax, dword [ebx + 0xb8]
test eax, eax
jne 0x6ac4b3f4
lea ebx, [ebp - 0x68]
mov dword [esp + 8], edx
mov dword [esp + 4], str.No_info_known_about_the_port.__i_n
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp], ebx
call fcn.6ac488c0
mov eax, 0xffffffff
mov dword [0x6ac59a80], 9
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call sub.kernel32.dll_GetCommState
sub esp, 8
test eax, eax
je 0x6ac4b672
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [esi + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [esi + 0x14], edx
mov edx, dword [eax + 0x18]
mov dword [esi + 0x18], edx
mov edx, dword [eax + 0x1c]
mov dword [esi + 0x1c], edx
mov edx, dword [eax + 0x20]
mov dword [esi + 0x20], edx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x28]
mov dword [esi + 0x28], edx
mov edx, dword [eax + 0x2c]
mov dword [esi + 0x2c], edx
mov edx, dword [eax + 0x30]
mov dword [esi + 0x30], edx
mov edx, dword [eax + 0x34]
mov dword [esi + 0x34], edx
movzx edx, byte [ebp - 0x7c]
mov eax, dword [eax + 0x38]
test dl, 2
mov dword [esi + 0x38], eax
mov eax, ecx
je 0x6ac4b620
and eax, 0xfffffffb
or eax, 0x10
movzx ecx, byte [ebp - 0x7b]
mov edi, eax
and edi, 0xfffffbff
test cl, 1
je 0x6ac4b4e8
or ah, 4
mov edi, eax
mov eax, edi
and ah, 0xef
and ecx, 2
je 0x6ac4b4f7
mov eax, edi
or ah, 0x10
mov ecx, eax
and ah, 0xf7
or ch, 8
test dl, dl
cmovns ecx, eax
movzx eax, byte [ebp - 0x70]
mov dword [esi], ecx
lea edx, [eax - 1]
cmp dl, 1
jbe 0x6ac4b630
test al, al
mov eax, dword [esi + 8]
je 0x6ac4b640
and eax, 0xbffffcff
mov dword [esi + 8], eax
mov dword [esp], str.tcgetattr_getting_parity_n
or byte [ebp - 0x7c], 2
call fcn.6ac488c0
mov edx, dword [esi + 8]
movzx eax, byte [ebp - 0x71]
mov edi, edx
or edi, 0x100
cmp al, 3
mov dword [esi + 8], edi
je 0x6ac4b6b0
cmp al, 4
je 0x6ac4b654
cmp al, 1
je 0x6ac4b6c1
cmp al, 2
je 0x6ac4b6df
test al, al
movzx ecx, byte [ebp - 0x7c]
je 0x6ac4b665
movzx edx, byte [ebp - 0x72]
mov eax, 0x30
sub edx, 5
cmp edx, 2
ja 0x6ac4b58f
mov eax, dword [edx*4 + 0x6ac54c80]
or eax, edi
and ecx, 4
jne 0x6ac4b648
movzx edx, byte [ebp - 0x7b]
mov ecx, eax
and ecx, 0x7fffffff
and edx, 0x30
cmp dl, 0x20
je 0x6ac4b648
lea eax, [ebp - 0x98]
mov dword [esi + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call sub.kernel32.dll_GetCommTimeouts
sub esp, 8
test eax, eax
je 0x6ac4b6fd
mov edx, 0x51eb851f
mov eax, edx
mul dword [ebp - 0x90]
movzx eax, byte [ebp - 0x6f]
shr edx, 5
mov byte [esi + 0x18], al
movzx eax, byte [ebp - 0x6e]
mov byte [esi + 0x15], dl
mov byte [esi + 0x19], al
movzx eax, byte [ebp - 0x6c]
mov byte [esi + 0x14], al
mov eax, dword [ebp - 0x80]
mov dword [esp], eax
call fcn.6ac48cc0
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
and eax, 0x300f
or dword [esi + 8], eax
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
and eax, 0xffffffef
or eax, 4
jmp 0x6ac4b4d2
mov eax, dword [esi + 8]
or eax, 0x40
jmp 0x6ac4b521
and eax, 0xffffffbf
jmp 0x6ac4b521
or eax, 0x80000000
mov ecx, eax
jmp 0x6ac4b5b2
mov edi, edx
movzx ecx, byte [ebp - 0x7c]
or edi, 0x40000100
jmp 0x6ac4b577
mov edi, edx
and edi, 0xbffffcff
jmp 0x6ac4b577
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [ebp - 0x68], 0x43746547
mov dword [ebp - 0x64], 0x536d6d6f
mov dword [ebp - 0x60], 0x65746174
mov dword [ebp - 0x5c], 0x69616620
mov dword [ebp - 0x58], 0xa64656c
mov byte [ebp - 0x54], 0
call fcn.6ac488c0
mov eax, 0xffffffff
jmp 0x6ac4b43a
mov edi, edx
movzx ecx, byte [ebp - 0x7c]
or edi, 0x40000300
jmp 0x6ac4b577
mov dword [esp], str.ODDPARITY_n
call fcn.6ac488c0
mov edi, dword [esi + 8]
movzx ecx, byte [ebp - 0x7c]
or edi, 0x200
jmp 0x6ac4b577
mov dword [esp], str.EVENPARITY_n
call fcn.6ac488c0
mov edi, dword [esi + 8]
movzx ecx, byte [ebp - 0x7c]
and edi, 0xfffffdff
jmp 0x6ac4b577
call sub.kernel32.dll_GetLastError
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0xc], 0x400
mov dword [esp + 4], 0
mov dword [esp], 0x1100
mov ebx, eax
lea eax, [ebp - 0x9c]
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
call sub.kernel32.dll_FormatMessageA
mov eax, dword [ebp - 0x9c]
sub esp, 0x1c
mov dword [esp + 0xc], ebx
lea ebx, [ebp - 0x68]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0x881
mov dword [esp + 0x10], str.src_windows_termios.c
mov dword [esp + 8], str.Error_0x_x_at__s__d_:__s_n
mov dword [esp + 4], 0x50
mov dword [esp], ebx
call fcn.6ac4d6f0
mov dword [esp], ebx
mov byte [ebp - 0x19], 0
call fcn.6ac488a0
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call sub.kernel32.dll_LocalFree
sub esp, 4
mov dword [esp], 1
call sub.kernel32.dll_Sleep
sub esp, 4
mov dword [esp], str.GetCommTimeouts_n
call fcn.6ac488c0
mov eax, 0xffffffff
jmp 0x6ac4b43a