Function at 0x45ad80
Capabilities:
Print debug messages

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
mov ebx, dword [ebp + 4]
mov edi, dword [ebp]
mov dword [esp + 0x14], ebx
cmp dword [ebx], 0
jne 0x45add9
cmp word [ebx + 4], 0x3ea
je 0x45adae
cmp dword [0x797e34], 5
je 0x45adae
inc dword [0x6b98c4]
mov al, byte [0x6b98c8]
test al, al
je 0x45ae2a
cmp word [ebx + 4], 0x3e8
jne 0x45ae2a
mov eax, dword [ebp + 4]
cmp byte [eax + 0x23], 0xa
jne 0x45ae2a
xor ecx, ecx
mov cl, byte [eax + 0x24]
mov byte [ecx + 0x6b93e0], 1
jmp 0x45aed6
mov ax, word [ebx + 4]
cmp ax, 0x3e9
jne 0x45ae12
push str.Got_ACK_in_AcceptNewMessage_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebp + 4]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
push 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call edi
push ebp
push 0
call esi
push eax
call edi
pop edi
pop esi
pop ebp
pop ebx
ret
cmp ax, 0x3ef
je 0x45ae38
cmp ax, 0x3e8
je 0x45ae3e
cmp ax, 0x3eb
je 0x45ae38
cmp ax, 0x3ec
je 0x45ae38
push ebp
call fcn.0045ac80
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
ret
cmp ax, 0x3e8
jne 0x45ae68
mov al, byte [0x6b98c8]
test al, al
je 0x45ae5b
cmp byte [ebx + 0x23], 0xa
jne 0x45ae5b
xor ecx, ecx
mov cl, byte [ebx + 0x24]
mov byte [ecx + 0x6b93e0], 1
jmp 0x45aed6
cmp word [ebx + 0x18], 0x40
jbe 0x45ae68
inc dword [0x6b98c4]
mov esi, dword [0x6b98e0]
xor al, al
test esi, esi
je 0x45ae83
cmp dword [esi], edi
je 0x45ae81
mov esi, dword [esi + 8]
test esi, esi
jne 0x45ae74
jmp 0x45ae83
mov al, 1
test al, al
jne 0x45aec0
push 0x14
call fcn.004b06e0
mov esi, eax
add esp, 4
mov dword [esi], edi
mov dword [esi + 4], 1
mov eax, dword [0x6b98e0]
mov dword [esi + 0xc], 0
mov dword [esi + 8], eax
mov byte [esi + 0x10], 0
mov eax, dword [0x6b9910]
mov dword [0x6b98e0], esi
inc eax
mov dword [0x6b9910], eax
mov ecx, dword [ebx]
push esi
push ecx
push edi
call fcn.0045ac30
mov eax, dword [ebx]
mov ecx, dword [esi + 4]
add esp, 0xc
cmp eax, ecx
jae 0x45aefa
mov edx, dword [ebp + 4]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edx
push 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call edi
push ebp
push 0
call esi
push eax
call edi
pop edi
pop esi
pop ebp
pop ebx
ret
jne 0x45af47
push ebp
call fcn.0045ac80
mov eax, dword [esi + 4]
add esp, 4
inc eax
mov dword [esi + 4], eax
mov edx, eax
mov eax, dword [esi + 0xc]
xor cl, cl
test eax, eax
je 0x45af3e
cmp dword [eax], edx
je 0x45af24
mov eax, dword [eax + 4]
test eax, eax
jne 0x45af17
jmp 0x45af3e
mov ecx, dword [eax + 4]
push eax
mov dword [esi + 0xc], ecx
call fcn.004b06f0
mov eax, dword [esi + 4]
add esp, 4
inc eax
mov cl, 1
mov dword [esi + 4], eax
mov edx, eax
test cl, cl
jne 0x45af0e
pop edi
pop esi
pop ebp
pop ebx
ret
mov edi, dword [esi + 0xc]
test edi, edi
je 0x45af84
cmp dword [edi], eax
je 0x45af5b
mov edi, dword [edi + 4]
test edi, edi
jne 0x45af4e
jmp 0x45af80
mov edx, dword [ebp + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edx
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ebp
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [esp + 0x14]
test edi, edi
jne 0x45afa4
push ebp
call fcn.0045ac80
add esp, 4
push 8
call fcn.004b06e0
mov ecx, dword [ebx]
add esp, 4
mov dword [eax], ecx
mov edx, dword [esi + 0xc]
mov dword [eax + 4], edx
mov dword [esi + 0xc], eax
pop edi
pop esi
pop ebp
pop ebx
ret