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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a7aa7
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x4d6674]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0046e7df
push eax
lea ecx, [esp + 0x28]
call fcn.00401764
xor edi, edi
mov dword [esp + 0x50], edi
call fcn.0046e7df
push eax
lea ecx, [esp + 0x40]
call fcn.00401764
mov byte [esp + 0x50], 1
call fcn.0046e7df
push eax
lea ecx, [esp + 0x3c]
call fcn.00401764
mov byte [esp + 0x50], 2
call fcn.0046e7df
push eax
lea ecx, [esp + 0x38]
call fcn.00401764
mov byte [esp + 0x50], 3
call fcn.0046e7df
push eax
lea ecx, [esp + 0x14]
call fcn.00401764
mov byte [esp + 0x50], 4
call fcn.0046e7df
push eax
lea ecx, [esp + 0x34]
call fcn.00401764
mov byte [esp + 0x50], 5
call fcn.0046e7df
push eax
lea ecx, [esp + 0x30]
call fcn.00401764
mov byte [esp + 0x50], 6
call fcn.0046e7df
push eax
lea ecx, [esp + 0x2c]
call fcn.00401764
or dword [esp + 0x20], 0xffffffff
or dword [esp + 0x14], 0xffffffff
push 1
mov ecx, esi
mov byte [esp + 0x54], 7
mov dword [esp + 0x20], edi
call fcn.00444051
cmp dword [esi + 0x260], edi
je 0x43f176
call fcn.0047ad7f
mov eax, dword [esi + 0x274]
cmp dword [eax + 0x124], edi
jne 0x43f221
cmp dword [eax + 0x34], edi
je 0x43f21d
push 1
mov ecx, esi
call fcn.00444051
push edi
push 0x8e3
call fcn.0043fa3a
xor esi, esi
inc esi
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffff0
call fcn.0040174a
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.0040174a
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
jmp 0x43f1a8
mov ebx, dword [0x4db468]
call fcn.0047261a
mov eax, dword [eax + 4]
push 0x3c
push str.BusyRetryTimes
push ebx
mov ecx, eax
call fcn.00471a63
cmp dword [esi + 0x404], eax
jg 0x43f21d
lea ebx, [esi + 0x54]
push ebx
lea ecx, [esp + 0x2c]
mov dword [esi + 0x694], edi
call fcn.004018c1
mov edi, dword [0x4db468]
call fcn.0047261a
mov eax, dword [eax + 4]
push 1
push str.FMLFindFastest
push edi
mov ecx, eax
call fcn.00471a63
test eax, eax
je 0x43f3ff
and dword [esp + 0x18], 0
push dword [esp + 0x18]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 8
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
push dword [ebx]
lea ecx, [esp + 0x14]
call fcn.00403f56
test eax, eax
jne 0x43f2ce
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x10
jl 0x43f283
call fcn.00489e85
push 0xa
cdq
pop ecx
idiv ecx
mov ebx, dword [esp + 0x1c]
cmp edx, 5
jg 0x43f374
test ebx, ebx
jle 0x43f374
dec ebx
js 0x43f3ff
cmp dword [esp + 0x14], 0xffffffff
jne 0x43f502
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 9
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
lea ecx, [esp + 0x10]
call fcn.00461052
test eax, eax
jne 0x43f36c
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043ec03
test eax, eax
jne 0x43f36c
push str..torrent
lea edi, [esp + 0x14]
call fcn.004609e9
test eax, eax
pop ecx
jne 0x43f36c
mov dword [esp + 0x14], ebx
dec ebx
jns 0x43f2fc
jmp 0x43f3f4
inc ebx
cmp ebx, 0x10
jge 0x43f3ff
cmp dword [esp + 0x14], 0xffffffff
jne 0x43f502
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 0xa
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
lea ecx, [esp + 0x10]
call fcn.00461052
test eax, eax
jne 0x43f3ee
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043ec03
test eax, eax
jne 0x43f3ee
push str..torrent
lea edi, [esp + 0x14]
call fcn.004609e9
test eax, eax
pop ecx
jne 0x43f3ee
mov dword [esp + 0x14], ebx
inc ebx
cmp ebx, 0x10
jl 0x43f37e
cmp dword [esp + 0x14], 0xffffffff
jne 0x43f502
xor ebx, ebx
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 0xb
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
cmp dword [esp + 0x20], 0xffffffff
jne 0x43f45d
lea ecx, [esp + 0x10]
call fcn.00461052
test eax, eax
jne 0x43f45d
push str..torrent
lea edi, [esp + 0x14]
call fcn.004609e9
test eax, eax
pop ecx
jne 0x43f45d
mov dword [esp + 0x20], ebx
push dword [esi + 0x54]
lea ecx, [esp + 0x14]
call fcn.00403f56
test eax, eax
jne 0x43f471
mov dword [esp + 0x1c], ebx
inc ebx
cmp ebx, 0x10
jl 0x43f401
mov ebx, dword [esp + 0x1c]
inc ebx
cmp ebx, 0x10
jge 0x43f4fa
cmp dword [esp + 0x14], 0xffffffff
jne 0x43f502
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 0xc
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
lea ecx, [esp + 0x10]
call fcn.00461052
test eax, eax
jne 0x43f4ed
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043ec03
test eax, eax
jne 0x43f4ed
push str..torrent
lea edi, [esp + 0x14]
call fcn.004609e9
test eax, eax
pop ecx
jne 0x43f4ed
mov dword [esp + 0x14], ebx
inc ebx
cmp ebx, 0x10
jl 0x43f481
cmp dword [esp + 0x14], 0xffffffff
jne 0x43f502
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov edi, dword [esi + 0x274]
mov eax, edi
call fcn.0040e120
test eax, eax
je 0x43f56e
cmp dword [esp + 0x14], 0xffffffff
je 0x43f76b
push dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x54], 0xd
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
lea ecx, [esp + 0x10]
call fcn.00461052
test eax, eax
jne 0x43f569
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043ec03
test eax, eax
je 0x43f56e
or dword [esp + 0x14], 0xffffffff
cmp dword [esp + 0x14], 0xffffffff
je 0x43f76b
push dword [esp + 0x14]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040dbcb
lea ebx, [esi + 0x54]
push eax
mov ecx, ebx
mov byte [esp + 0x54], 0xe
call fcn.004018c1
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
push ebx
push dword [esi + 0x274]
call fcn.0040a628
push dword [esp + 0x14]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040dc4e
mov byte [esp + 0x50], 0xf
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b681
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
push dword [esp + 0x14]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040dcd1
mov byte [esp + 0x50], 0x10
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b704
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
cmp dword [esi + 0x27c], 0
jne 0x43f76b
cmp dword [esi + 0x260], 0
jne 0x43f774
push 0
mov ecx, esi
call fcn.00444653
test eax, eax
jne 0x43f663
push ebx
mov ecx, esi
call fcn.0043e45e
mov ecx, esi
call fcn.0043f083
mov esi, eax
jmp 0x43f1a8
lea eax, [esp + 0x40]
push 0x4b578c
push eax
call fcn.00461ac5
pop ecx
pop ecx
mov byte [esp + 0x50], 0x11
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b1cf
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
mov edi, dword [esp + 0x14]
mov ebx, dword [esi + 0x274]
lea edi, [edi*4 + 0x2e8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + edi]
xor edx, edx
mov ecx, 0x3e8
div ecx
mov ebx, dword [0x4db468]
mov dword [esp + 0x40], eax
call fcn.0047261a
mov eax, dword [eax + 4]
push 0x3c
push str.BusyPause
push ebx
mov ecx, eax
call fcn.00471a63
cmp dword [esp + 0x40], eax
jge 0x43f701
mov eax, dword [esi + 0x274]
push 0x10
lea edi, [eax + 0x2e8]
pop ecx
xor eax, eax
push eax
rep stosd dword es:[edi], eax
push eax
mov ecx, esi
call fcn.00444fa6
jmp 0x43f1a5
mov ebx, dword [esi + 0x274]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + edi], eax
inc dword [esi + 0x404]
lea eax, [esp + 0x24]
push str.Switching_to_Alternate
push eax
call fcn.00401a35
pop ecx
pop ecx
xor edi, edi
push edi
xor ebx, ebx
inc ebx
push ebx
push edi
lea ecx, [esp + 0x30]
call fcn.0043d153
cmp dword [esi + 0x260], edi
je 0x43f745
call fcn.0047ad7f
push 0x1f4
push 4
mov dword [esi + 0x144], ebx
call fcn.00429cbf
test eax, eax
jne 0x43f1a5
mov ecx, esi
call fcn.004413a1
jmp 0x43f1a5
cmp dword [esi + 0x260], 0
je 0x43f779
call fcn.0047ad7f
mov ecx, dword [esi + 0x274]
cmp dword [ecx + 0x34], 0
je 0x43f795
push 1
mov ecx, esi
call fcn.00444051
push 0
jmp 0x43f19b
mov eax, ecx
call fcn.0040e120
test eax, eax
je 0x43f21d
call fcn.0040e077
xor edi, edi
inc edi
test eax, eax
jne 0x43f7b2
mov eax, edi
xor ebx, ebx
cmp dword [esi + 0x1f4], ebx
je 0x43f7f1
mov ecx, dword [esi + 0x1f8]
mov edx, dword [esi + 0x274]
imul ecx, eax
cmp dword [edx + 0x1320], ecx
jl 0x43f7ff
cmp eax, edi
jl 0x43f7ff
push edi
mov ecx, esi
call fcn.00444051
push ebx
push 0x8e3
call fcn.0043fa3a
mov esi, edi
jmp 0x43f1a8
mov ecx, dword [esi + 0x274]
cmp dword [ecx + 0x1320], eax
jmp 0x43f7d1
push ebx
push ebx
mov ecx, esi
call fcn.00444fa6
jmp 0x43f7ea