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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a581c
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x4d4684]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0046c34c
push eax
lea ecx, [esp + 0x28]
call fcn.00401764
xor edi, edi
mov dword [esp + 0x50], edi
call fcn.0046c34c
push eax
lea ecx, [esp + 0x40]
call fcn.00401764
mov byte [esp + 0x50], 1
call fcn.0046c34c
push eax
lea ecx, [esp + 0x3c]
call fcn.00401764
mov byte [esp + 0x50], 2
call fcn.0046c34c
push eax
lea ecx, [esp + 0x38]
call fcn.00401764
mov byte [esp + 0x50], 3
call fcn.0046c34c
push eax
lea ecx, [esp + 0x14]
call fcn.00401764
mov byte [esp + 0x50], 4
call fcn.0046c34c
push eax
lea ecx, [esp + 0x34]
call fcn.00401764
mov byte [esp + 0x50], 5
call fcn.0046c34c
push eax
lea ecx, [esp + 0x30]
call fcn.00401764
mov byte [esp + 0x50], 6
call fcn.0046c34c
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.0044310b
cmp dword [esi + 0x260], edi
je 0x43e245
call fcn.00478318
mov eax, dword [esi + 0x274]
cmp dword [eax + 0x11c], edi
jne 0x43e2f0
cmp dword [eax + 0x30], edi
je 0x43e2ec
push 1
mov ecx, esi
call fcn.0044310b
push edi
push 0x8e3
call fcn.0043eb09
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 0x43e277
mov ebx, dword [0x4d9428]
call fcn.004701ac
mov eax, dword [eax + 4]
push 0x3c
push str.BusyRetryTimes
push ebx
mov ecx, eax
call fcn.0046f5f5
cmp dword [esi + 0x404], eax
jg 0x43e2ec
lea ebx, [esi + 0x54]
push ebx
lea ecx, [esp + 0x2c]
mov dword [esi + 0x694], edi
call fcn.004018c1
mov edi, dword [0x4d9428]
call fcn.004701ac
mov eax, dword [eax + 4]
push 1
push str.FMLFindFastest
push edi
mov ecx, eax
call fcn.0046f5f5
test eax, eax
je 0x43e4ce
and dword [esp + 0x18], 0
push dword [esp + 0x18]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.00403e83
test eax, eax
jne 0x43e39d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x10
jl 0x43e352
call fcn.00487a05
push 0xa
cdq
pop ecx
idiv ecx
mov ebx, dword [esp + 0x1c]
cmp edx, 5
jg 0x43e443
test ebx, ebx
jle 0x43e443
dec ebx
js 0x43e4ce
cmp dword [esp + 0x14], 0xffffffff
jne 0x43e5d1
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.0045ee51
test eax, eax
jne 0x43e43b
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043dcd2
test eax, eax
jne 0x43e43b
push str..torrent
lea edi, [esp + 0x14]
call fcn.0045e7e8
test eax, eax
pop ecx
jne 0x43e43b
mov dword [esp + 0x14], ebx
dec ebx
jns 0x43e3cb
jmp 0x43e4c3
inc ebx
cmp ebx, 0x10
jge 0x43e4ce
cmp dword [esp + 0x14], 0xffffffff
jne 0x43e5d1
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.0045ee51
test eax, eax
jne 0x43e4bd
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043dcd2
test eax, eax
jne 0x43e4bd
push str..torrent
lea edi, [esp + 0x14]
call fcn.0045e7e8
test eax, eax
pop ecx
jne 0x43e4bd
mov dword [esp + 0x14], ebx
inc ebx
cmp ebx, 0x10
jl 0x43e44d
cmp dword [esp + 0x14], 0xffffffff
jne 0x43e5d1
xor ebx, ebx
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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 0x43e52c
lea ecx, [esp + 0x10]
call fcn.0045ee51
test eax, eax
jne 0x43e52c
push str..torrent
lea edi, [esp + 0x14]
call fcn.0045e7e8
test eax, eax
pop ecx
jne 0x43e52c
mov dword [esp + 0x20], ebx
push dword [esi + 0x54]
lea ecx, [esp + 0x14]
call fcn.00403e83
test eax, eax
jne 0x43e540
mov dword [esp + 0x1c], ebx
inc ebx
cmp ebx, 0x10
jl 0x43e4d0
mov ebx, dword [esp + 0x1c]
inc ebx
cmp ebx, 0x10
jge 0x43e5c9
cmp dword [esp + 0x14], 0xffffffff
jne 0x43e5d1
mov edi, dword [esi + 0x274]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.0045ee51
test eax, eax
jne 0x43e5bc
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043dcd2
test eax, eax
jne 0x43e5bc
push str..torrent
lea edi, [esp + 0x14]
call fcn.0045e7e8
test eax, eax
pop ecx
jne 0x43e5bc
mov dword [esp + 0x14], ebx
inc ebx
cmp ebx, 0x10
jl 0x43e550
cmp dword [esp + 0x14], 0xffffffff
jne 0x43e5d1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov edi, dword [esi + 0x274]
mov eax, edi
call fcn.0040de6a
test eax, eax
je 0x43e63d
cmp dword [esp + 0x14], 0xffffffff
je 0x43e83a
push dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.0045ee51
test eax, eax
jne 0x43e638
lea eax, [esp + 0x10]
push eax
mov edi, esi
call fcn.0043dcd2
test eax, eax
je 0x43e63d
or dword [esp + 0x14], 0xffffffff
cmp dword [esp + 0x14], 0xffffffff
je 0x43e83a
push dword [esp + 0x14]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040d915
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.0040a4f4
push dword [esp + 0x14]
mov edi, dword [esi + 0x274]
lea eax, [esp + 0x44]
push eax
call fcn.0040d998
mov byte [esp + 0x50], 0xf
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b4c6
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.0040da1b
mov byte [esp + 0x50], 0x10
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b549
mov byte [esp + 0x50], 7
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040174a
cmp dword [esi + 0x27c], 0
jne 0x43e83a
cmp dword [esi + 0x260], 0
jne 0x43e843
push 0
mov ecx, esi
call fcn.0044370d
test eax, eax
jne 0x43e732
push ebx
mov ecx, esi
call fcn.0043d52d
mov ecx, esi
call fcn.0043e152
mov esi, eax
jmp 0x43e277
lea eax, [esp + 0x40]
push 0x4b377c
push eax
call fcn.0045f8c4
pop ecx
pop ecx
mov byte [esp + 0x50], 0x11
mov edi, dword [esi + 0x274]
push eax
call fcn.0040b017
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 + 0x2e0]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + edi]
xor edx, edx
mov ecx, 0x3e8
div ecx
mov ebx, dword [0x4d9428]
mov dword [esp + 0x40], eax
call fcn.004701ac
mov eax, dword [eax + 4]
push 0x3c
push str.BusyPause
push ebx
mov ecx, eax
call fcn.0046f5f5
cmp dword [esp + 0x40], eax
jge 0x43e7d0
mov eax, dword [esi + 0x274]
push 0x10
lea edi, [eax + 0x2e0]
pop ecx
xor eax, eax
push eax
rep stosd dword es:[edi], eax
push eax
mov ecx, esi
call fcn.00443f78
jmp 0x43e274
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.0043c222
cmp dword [esi + 0x260], edi
je 0x43e814
call fcn.00478318
push 0x1f4
push 4
mov dword [esi + 0x144], ebx
call fcn.004291f6
test eax, eax
jne 0x43e274
mov ecx, esi
call fcn.00440470
jmp 0x43e274
cmp dword [esi + 0x260], 0
je 0x43e848
call fcn.00478318
mov ecx, dword [esi + 0x274]
cmp dword [ecx + 0x30], 0
je 0x43e864
push 1
mov ecx, esi
call fcn.0044310b
push 0
jmp 0x43e26a
mov eax, ecx
call fcn.0040de6a
test eax, eax
je 0x43e2ec
call fcn.0040ddc1
xor edi, edi
inc edi
test eax, eax
jne 0x43e881
mov eax, edi
xor ebx, ebx
cmp dword [esi + 0x1f4], ebx
je 0x43e8c0
mov ecx, dword [esi + 0x1f8]
mov edx, dword [esi + 0x274]
imul ecx, eax
cmp dword [edx + 0x1318], ecx
jl 0x43e8ce
cmp eax, edi
jl 0x43e8ce
push edi
mov ecx, esi
call fcn.0044310b
push ebx
push 0x8e3
call fcn.0043eb09
mov esi, edi
jmp 0x43e277
mov ecx, dword [esi + 0x274]
cmp dword [ecx + 0x1318], eax
jmp 0x43e8a0
push ebx
push ebx
mov ecx, esi
call fcn.00443f78
jmp 0x43e8b9