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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [eax]
push esi
push edi
mov edi, dword [eax + 0x3b0]
mov dword [ebp - 4], 0
call fcn.00431820
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], edx
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], edx
cmp dword [edi], 3
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
je 0x431620
jmp 0x431340
cmp dword [ebp - 4], 0
jne 0x431620
mov ecx, dword [edi + 0x1c]
imul ecx, ecx, 0x3e8
cmp dword [ebx + 0x2d0], 0
je 0x4313ac
mov esi, dword [ebx + 0x1b8]
mov eax, dword [ebx + 0x1bc]
mov edx, esi
or edx, eax
je 0x4313f8
mov edx, dword [ebx + 0x460]
cmp dword [ebx + 0x464], eax
jl 0x4313f8
jg 0x431386
cmp edx, esi
jbe 0x4313f8
mov ecx, dword [edi + 0x154]
push ecx
mov ecx, dword [ebx + 0x464]
push ecx
push edx
push eax
mov eax, dword [ebx + 0x1b8]
push eax
or esi, 0xffffffff
call fcn.00432910
mov ecx, eax
add esp, 0x14
jmp 0x4313fb
mov esi, dword [ebx + 0x1c0]
mov eax, dword [ebx + 0x1c4]
mov edx, esi
or edx, eax
je 0x4313f8
mov edx, dword [ebx + 0x458]
cmp dword [ebx + 0x45c], eax
jl 0x4313f8
jg 0x4313d2
cmp edx, esi
jbe 0x4313f8
mov ecx, dword [edi + 0x154]
push ecx
mov ecx, dword [ebx + 0x45c]
push ecx
push edx
push eax
mov eax, dword [ebx + 0x1c0]
push eax
or esi, 0xffffffff
call fcn.00432910
mov ecx, eax
add esp, 0x14
jmp 0x4313fb
mov esi, dword [edi + 0x14]
cmp dword [ebx + 0x194], 0
je 0x43143b
mov edx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebx + 0x5c]
push edx
mov edx, dword [ebx + 0x58]
push eax
push ecx
push edx
call fcn.00431850
mov ecx, dword [ebx + 0x194]
sub ecx, eax
mov eax, dword [edi + 0x1c]
imul eax, eax, 0x3e8
add esp, 0x10
cmp ecx, eax
jle 0x431435
mov ecx, eax
jmp 0x43143b
test ecx, ecx
jns 0x43143b
xor ecx, ecx
push ecx
push 0xffffffffffffffff
push esi
call fcn.00429a50
mov esi, eax
call fcn.00431820
mov ecx, dword [ebx + 0x50]
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x54]
push eax
mov eax, dword [ebx + 0x58]
push ecx
push edx
push eax
mov dword [ebx + 0x5c], edx
call fcn.00431850
add esp, 0x1c
cmp eax, dword [ebx + 0x194]
jl 0x43148e
mov ecx, dword [ebp + 8]
push ecx
call fcn.00428120
add esp, 4
test eax, eax
jne 0x431644
mov edx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x50], edx
mov dword [ebx + 0x54], eax
cmp esi, 0xffffffff
jne 0x4314e0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.0042e3c0
push eax
push 0x48ed28
push ebx
call fcn.0042a4b0
add esp, 0x14
mov dword [edi + 0xc], 5
mov eax, dword [ebp - 4]
test eax, eax
jne 0x43163d
mov eax, dword [edi]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
mov edx, dword [edx]
xor esi, esi
cmp eax, 3
ja case.default.0x4314d9
jmp dword [eax*4 + 0x43165c]
test esi, esi
jne 0x43154d
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx + 0x5c]
mov esi, dword [edi + 0x1c]
push edx
imul esi, esi, 0x3e8
mov edx, dword [ebx + 0x58]
push eax
push ecx
push edx
call fcn.00431850
add esp, 0x10
cmp eax, esi
jle 0x431617
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x14]
mov dword [edi + 0xc], 7
mov esi, dword [eax + 0x3b0]
push ecx
call fcn.00469b40
mov edx, dword [ebp - 0x10]
add esp, 4
cmp edx, dword [esi + 0x34]
jl 0x431594
jg 0x43153b
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi + 0x30]
jbe 0x431594
mov dword [esi + 8], 0xffffff9d
mov dword [esi], 3
jmp 0x4314c4
mov ecx, dword [ebp + 8]
call fcn.004310c0
mov dword [ebp - 4], eax
test eax, eax
jne 0x431567
call fcn.00431820
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x431579
mov ecx, dword [ebx + 0x38]
mov dword [eax], ecx
mov edx, dword [ebx + 0x3c]
mov dword [eax + 4], edx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4314b9
mov ecx, dword [ebx + 0x40]
mov dword [eax], ecx
mov edx, dword [ebx + 0x44]
mov dword [eax + 4], edx
jmp 0x4314b9
mov eax, dword [esi + 0x1c]
cdq
add eax, dword [esi + 0x38]
lea ecx, [esi + 0x38]
adc edx, dword [ecx + 4]
cmp dword [ebp - 0x10], edx
jl 0x4314c4
jg 0x4315b5
cmp dword [ebp - 0x14], eax
jbe 0x4314c4
push ecx
call fcn.00469b40
add esp, 4
jmp 0x4314c4
push ecx
call fcn.00430cc0
add esp, 4
mov esi, eax
jmp 0x431614
push ecx
mov eax, edi
call fcn.00430270
add esp, 4
mov esi, eax
jmp 0x431614
mov esi, edi
call fcn.00430540
mov esi, eax
jmp 0x431614
push str.TFTP_finished
push 0x48e2bc
push edx
call fcn.0042a430
jmp 0x431611
push str.Internal_state_machine_error
push 0x48ed28
push edx
call fcn.0042a4b0
mov esi, 0x47
add esp, 0xc
mov dword [ebp - 4], esi
cmp dword [edi], 3
jne 0x431340
mov eax, dword [ebp + 8]
push 0
push 0xffffffffffffffff
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.00433ab0
mov eax, dword [ebp - 4]
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 5
mov eax, edi
call fcn.00431040
pop edi
pop esi
mov eax, 0x2a
pop ebx
mov esp, ebp
pop ebp
ret