Function at 0x435210
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x28]
push esi
push edi
mov edi, ecx
test eax, eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
je 0x435233
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x43523f
mov dword [esp + 0x30], 0x3a98
mov esi, dword [esp + 0x30]
push str.GetResponse:_Begin_n
push 2
push 1
call fcn.004048e0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [eax], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x4e0]
test eax, eax
je 0x43527a
pop edi
mov ax, 0x35
pop esi
add esp, 0x14
ret 0x14
mov ecx, dword [esp + 0x20]
push ebx
and ecx, 0xff
push ebp
push ecx
push str._Waiting_for_response_of_:_d__n
push 1
push 1
call fcn.004048e0
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x18]
cmp eax, esi
jae 0x435502
mov eax, dword [edi + 0x12c]
test eax, eax
je 0x4352d4
mov edx, dword [edi + 0xf0]
mov dword [esp + 0x20], eax
push esi
lea eax, [esp + 0x20]
push 0
push eax
push 2
mov dword [esp + 0x2c], edx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
jmp 0x4352e2
mov ecx, dword [edi + 0xf0]
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub eax, 0
je 0x435317
dec eax
je 0x4354ef
sub eax, 0x101
jne 0x4353ff
push str.GetResponse:_Timed_Out_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x4353ff
push str.GetResponse:_Wait_object_notification_n
push 1
push 1
call fcn.004048e0
lea ebx, [edi + 0xc0]
add esp, 0xc
mov ecx, ebx
call fcn.00450db0
mov ecx, ebx
call fcn.00450da0
mov ecx, ebx
call fcn.00450cd0
mov esi, eax
xor ebp, ebp
test esi, esi
je 0x4353ec
test ebp, ebp
jne 0x4353ec
mov edx, dword [esp + 0x14]
mov edi, dword [esi]
mov eax, dword [edx + 0xec]
test eax, eax
jne 0x4354a5
xor ecx, ecx
mov cl, byte [edi]
add ecx, 0xffffffed
cmp ecx, 0x34
ja case.0x435383.24
xor edx, edx
mov dl, byte [ecx + 0x435550]
jmp dword [edx*4 + 0x435538]
push str.Diag_Bad_Cmd_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov esi, 2
mov al, byte [esp + 0x28]
mov cl, byte [edi + 1]
cmp al, cl
jne 0x4353d7
push str._Bad_Packet_found__n
push 1
push 1
call fcn.004048e0
mov al, byte [edi + 1]
add esp, 0xc
cmp al, 0x10
jne 0x4353ce
mov cx, word [esp + 0x34]
cmp cx, word [edi + 7]
jne 0x4353d7
mov dword [esp + 0x10], esi
mov ebp, 1
mov ecx, ebx
call fcn.00450cd0
mov edi, dword [esp + 0x14]
mov esi, eax
test esi, esi
jne 0x43534f
mov ecx, ebx
call fcn.00450dc0
test ebp, ebp
jne 0x43550a
mov esi, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x43550a
jmp 0x435298
push str.Diag_Bad_Param_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov esi, 3
jmp 0x4353a0
push str.Diag_Bad_Length_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov esi, 4
jmp 0x4353a0
push str.Diag_Bad_Security_Mode_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov esi, 5
jmp 0x4353a0
push str.Diag_Bad_SPC_Mode_n
push 1
push 1
call fcn.004048e0
add esp, 0xc
mov esi, 0x15
jmp 0x4353a0
test eax, eax
jne 0x4354a5
mov cl, byte [esp + 0x28]
mov dl, byte [edi]
cmp cl, dl
jne 0x4353d7
test eax, eax
jne 0x4354a5
mov al, cl
cmp al, 0x10
jne 0x4354a5
mov dx, word [esp + 0x34]
cmp dx, word [edi + 6]
jne 0x4353d7
mov eax, dword [esi + 4]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edx, dword [esp + 0x2c]
test eax, eax
mov dword [edx], eax
je 0x4353d7
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 4]
mov ebp, 1
mov dword [esp + 0x10], 0
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov edi, dword [edx]
mov esi, dword [esi]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4353d7
push str.GetResponse:_Exit_Signaled_._n
push 2
push 1
call fcn.004048e0
add esp, 0xc
jmp 0x43550a
mov dword [esp + 0x10], 7
mov esi, dword [esp + 0x10]
mov edx, esi
and edx, 0xffff
push edx
push str.GetResponse:_End:_RetVal:__d_n
push 1
push 1
call fcn.004048e0
add esp, 0x10
mov ax, si
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x14
ret 0x14