Function at 0x429220
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x58a0e8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x5f4760]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f4760]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov ebx, ecx
xor edi, edi
lea esi, [ebx + 0xf4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
cmp esi, edi
je 0x429273
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, dword [ebx + 0xd8]
lea ecx, [ebx + 0xd8]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x14]
mov ebx, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x34], ecx
mov esi, dword [ecx + 0x14]
mov eax, dword [ecx]
mov dword [esp + 0x3c], ebx
cmp ebp, edi
je 0x4292bb
cmp ebp, eax
je 0x4292c0
call fcn.004a35f3
cmp ebx, esi
je 0x42954f
test ebp, ebp
jne 0x429408
call fcn.004a35f3
xor eax, eax
mov edi, dword [esp + 0x3c]
cmp edi, dword [eax + 0x14]
jne 0x4292e5
call fcn.004a35f3
cmp dword [edi + 0xc], 0
je 0x4293e6
test ebp, ebp
jne 0x429410
call fcn.004a35f3
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x429308
call fcn.004a35f3
cmp dword [edi + 8], 0
je 0x4293e6
test ebp, ebp
jne 0x429418
call fcn.004a35f3
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x42932b
call fcn.004a35f3
mov ebx, dword [edi + 8]
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x429340
lea eax, [ebx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov byte [esp + 0x6c], 1
test ebp, ebp
jne 0x429420
call fcn.004a35f3
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x42935e
call fcn.004a35f3
mov esi, dword [edi + 0xc]
mov dword [esp + 0x44], esi
test esi, esi
je 0x429373
lea ecx, [esi + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov byte [esp + 0x6c], 2
mov eax, dword [ebx + 0x8034]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jne 0x429396
mov edx, dword [esi + 0x8034]
cmp edx, dword [esp + 0x7c]
je 0x42942d
cmp eax, dword [esp + 0x7c]
jne 0x4293a8
cmp dword [esi + 0x8034], ecx
je 0x42942d
mov byte [esp + 0x6c], 1
test esi, esi
je 0x4293c9
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x4293c9
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov byte [esp + 0x6c], 0
lea ecx, [ebx + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x4293e6
mov edx, dword [ebx]
mov eax, dword [edx]
push 1
mov ecx, ebx
call eax
test ebp, ebp
jne 0x429428
call fcn.004a35f3
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x4293fb
call fcn.004a35f3
mov ebx, dword [edi]
mov ecx, dword [esp + 0x34]
xor edi, edi
jmp 0x4292aa
mov eax, dword [ebp]
jmp 0x4292d7
mov eax, dword [ebp]
jmp 0x4292fe
mov eax, dword [ebp]
jmp 0x429321
mov eax, dword [ebp]
jmp 0x429354
mov eax, dword [ebp]
jmp 0x4293f1
mov edi, dword [esi + 0x8094]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 8]
sub eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x19c]
imul edx, edx, 0x3e8
cmp eax, edx
jae 0x429477
mov edi, dword [ebx + 0x8094]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 8]
sub eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x19c]
imul edx, edx, 0x3e8
cmp eax, edx
jb 0x429483
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [ebx + 0x8094]
call edi
mov ecx, dword [ebx + 8]
sub eax, ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4294af
mov esi, dword [esi + 0x8094]
call edi
mov ecx, dword [esi + 8]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
push eax
push ebp
lea ebx, [esp + 0x40]
call fcn.0042cf30
mov ebx, 1
push 0x601e54
mov dword [esp + 0x34], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ecx, dword [0x601e54]
test ecx, ecx
jge 0x4294ea
mov dword [0x601e54], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x8080]
mov esi, dword [esp + 0x44]
sub eax, ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x42951a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x8080]
sub eax, ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x6c], bl
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea edx, [esi + 4]
push edx
call ebp
test eax, eax
jne 0x429537
mov eax, dword [esi]
mov edx, dword [eax]
push ebx
mov ecx, esi
call edx
mov byte [esp + 0x6c], 0
lea eax, [edi + 4]
push eax
call ebp
test eax, eax
jne 0x42954f
mov edx, dword [edi]
mov eax, dword [edx]
push ebx
mov ecx, edi
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp dword [esp + 0x30], 0
mov esi, eax
je 0x4296a3
mov ebx, dword [esp + 0x80]
test ebx, ebx
jne 0x429580
cmp dword [esp + 0x84], ebx
je 0x4296a3
mov edx, dword [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x88], ecx
jne 0x429597
mov edx, dword [esp + 0x7c]
cmp byte [esp + 0xc0], 0
mov eax, str.SOCKS_DISCON
jne 0x4295ab
mov eax, str.DISCONNECT
mov edi, dword [esp + 0xd4]
push edi
movzx edi, byte [esp + 0xd4]
push edi
mov edi, dword [esp + 0xd4]
push edi
mov edi, dword [esp + 0x28]
push edi
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0x48]
push esi
mov esi, dword [esp + 0x38]
push esi
mov esi, dword [esp + 0xe0]
push esi
mov esi, dword [esp + 0x48]
push esi
mov esi, dword [esp + 0xe4]
push esi
mov esi, dword [esp + 0xe4]
push esi
mov esi, dword [esp + 0xe0]
push esi
mov esi, dword [esp + 0xe8]
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xec]
push esi
mov esi, dword [esp + 0xec]
push esi
mov esi, dword [esp + 0xe4]
push esi
mov esi, dword [esp + 0xe4]
push esi
mov esi, dword [esp + 0xe4]
push esi
mov esi, dword [esp + 0xe4]
push esi
push edx
movzx edx, byte [esp + 0xe3]
push edx
movzx edx, byte [esp + 0xe6]
push edx
movzx edx, bh
push edx
movzx edx, bl
push edx
mov edx, dword [esp + 0xe4]
push edx
mov edx, dword [esp + 0xf8]
push eax
push str._s__reason_u__destip_d._d._d._d__remoteSk__d___errSend_u__errRecv_u__scp_u__rcp_u__tts_I64u__ttr_I64u__scnt_u__rcnt_u__f0x_X__iocp_d__timeup_d__cze_d__et_u__bt_u__tze_u__mcze_u__dco_u__dca_u__fent_d__boe_d__rms_d
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
push 7
mov ebx, 0x604408
mov dword [eax + 0xc], ecx
call fcn.00446ca0
add esp, 0x90
mov dword [esp + 0x6c], 0xffffffff
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4296ba
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.004a314d
add esp, 0x5c
ret 0x64