Function at 0x45b150
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1134
call fcn.004b6e90
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x54be99]
mov byte [ebp - 0x1104], al
push 0x1ff
push 0
lea ecx, [ebp - 0x1103]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x54be9a]
mov byte [ebp - 0xf04], dl
push 0x1ff
push 0
lea eax, [ebp - 0xf03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x54be9b]
mov byte [ebp - 0x904], cl
push 0xff
push 0
lea edx, [ebp - 0x903]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x54be9c]
mov byte [ebp - 0x704], al
push 0x1ff
push 0
lea ecx, [ebp - 0x703]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x54be9d]
mov byte [ebp - 0x504], dl
push 0x1ff
push 0
lea eax, [ebp - 0x503]
push eax
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x111c], 0
movss xmm0, dword [0x4cb710]
movss dword [ebp - 0x1110], xmm0
movss xmm0, dword [0x4cb710]
movss dword [ebp - 0x1118], xmm0
movss xmm0, dword [0x4cb710]
movss dword [ebp - 0x112c], xmm0
mov dword [ebp - 0x1108], 0
mov dword [ebp - 0x110c], 0
mov cl, byte [0x54be9e]
mov byte [ebp - 0x204], cl
push 0x1ff
push 0
lea edx, [ebp - 0x203]
push edx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x1124], 0
push str.http:__dyned.net_courses
mov eax, dword [ebp + 0x10]
push eax
call fcn.004bab10
add esp, 8
test eax, eax
jne 0x45b2af
push 0x4e780c
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0x1124]
push edx
push 0x54f610
call fcn.00488010
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5e60
add esp, 8
cmp dword [ebp - 0x1124], 1
jne 0x45b301
mov edx, dword [0x54e968]
push edx
push 0x54f610
push 0x4e7840
lea eax, [ebp - 0x904]
push eax
call fcn.004b6e08
add esp, 0x10
jmp 0x45b330
mov ecx, 1
imul ecx, ecx, 0
mov dword [ebp - 0x1128], ecx
cmp dword [ebp - 0x1128], 0x100
jae 0x45b31d
jmp 0x45b322
call fcn.004b64ae
mov edx, dword [ebp - 0x1128]
mov byte [ebp + edx - 0x904], 0
lea eax, [ebp - 0x204]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x4e7848
lea edx, [ebp - 0x704]
push edx
call fcn.004b6e08
add esp, 0x10
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x804]
push ecx
call fcn.0042c3a0
add esp, 8
push 0x54be9f
lea edx, [ebp - 0x804]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x45b38d
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x804]
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0x804]
push edx
lea eax, [ebp - 0x504]
push eax
call fcn.004b5e60
add esp, 8
push 0x4e7850
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b423
push str.elective_d
lea edx, [ebp - 0x804]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b423
lea eax, [ebp - 0x504]
push eax
call fcn.004ca5db
add esp, 4
push str.Setup.exe
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b421
push str.Videodrv.exe
lea edx, [ebp - 0x204]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b421
lea eax, [ebp - 0x204]
push eax
call fcn.004ca3dc
add esp, 4
jmp 0x45b42f
mov ecx, dword [ebp - 0x1108]
mov dword [ebp - 0x1108], ecx
push 7
push str.http:__
lea edx, [ebp - 0x504]
push edx
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x45b461
lea eax, [ebp - 0x4fd]
push eax
lea ecx, [ebp - 0x1104]
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x45b477
lea edx, [ebp - 0x504]
push edx
lea eax, [ebp - 0x1104]
push eax
call fcn.004b5e60
add esp, 8
push 0x4e7884
lea ecx, [ebp - 0x1104]
push ecx
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x111c], eax
cmp dword [ebp - 0x111c], 0
je 0x45b4e3
mov edx, dword [ebp - 0x111c]
push edx
lea eax, [ebp - 0xf04]
push eax
call fcn.004b5e60
add esp, 8
push 0x4e7888
lea ecx, [ebp - 0xf04]
push ecx
call fcn.004b5e70
add esp, 8
lea edx, [ebp - 0x204]
push edx
lea eax, [ebp - 0xf04]
push eax
call fcn.004b5e70
add esp, 8
mov ecx, dword [ebp - 0x111c]
mov byte [ecx], 0
cmp dword [0x54e94c], 0
jne 0x45b566
cmp dword [0x54e950], 0
jne 0x45b566
push 0
push 0x5fffa
push 0
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [0x54e94c], eax
cmp dword [0x54e94c], 0
jne 0x45b54d
push 0x54bea0
push 0x54bea1
push 0x4e788c
push str.Error_allocating_memory_for_DownloadFile
call fcn.00458fb0
add esp, 0x10
push 0x54bea2
push 0x72a
push str.DownloadFile
call fcn.0042b120
add esp, 0xc
or eax, 0xffffffff
jmp 0x45badc
push 0x5fffa
push 0
mov edx, dword [0x54e94c]
push edx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [0x54e950], eax
push 0x4fef80
lea eax, [ebp - 0x204]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x45b629
mov cl, byte [0x54bea3]
mov byte [ebp - 0xa04], cl
push 0xfe
push 0
lea edx, [ebp - 0xa03]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x54bea4]
mov byte [ebp - 0xb04], al
push 0xfe
push 0
lea ecx, [ebp - 0xb03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x1134], 0
push 0x4fef80
push 0x4fa370
push 0x4e78d8
lea edx, [ebp - 0xa04]
push edx
call fcn.004b6e08
add esp, 0x10
push 0x4fef80
push 0x4fa370
push 0x4e78e0
lea eax, [ebp - 0xb04]
push eax
call fcn.004b6e08
add esp, 0x10
push 0
lea ecx, [ebp - 0xb04]
push ecx
lea edx, [ebp - 0xa04]
push edx
call fcn.0049b690
add esp, 0xc
mov dword [ebp - 0x1134], eax
call fcn.0049f460
fstp dword [ebp - 0x1110]
lea eax, [ebp - 0x1108]
push eax
push 0x54e950
push 0
push 0x54bea5
push 0
push 0
push 1
lea ecx, [ebp - 0x704]
push ecx
lea edx, [ebp - 0x904]
push edx
lea eax, [ebp - 0xf04]
push eax
lea ecx, [ebp - 0x1104]
push ecx
call fcn.00428d10
add esp, 0x2c
call fcn.0049f460
fstp dword [ebp - 0x1118]
push 0x4fef80
lea edx, [ebp - 0x204]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x45b74c
cmp dword [ebp - 0x1108], 1
jne 0x45b74c
mov al, byte [0x54bea6]
mov byte [ebp - 0xc04], al
push 0xfe
push 0
lea ecx, [ebp - 0xc03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x54bea7]
mov byte [ebp - 0xd04], dl
push 0xfe
push 0
lea eax, [ebp - 0xd03]
push eax
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x1130], 0
push 0x4fef80
push 0x4fa370
push 0x4e78ec
lea ecx, [ebp - 0xd04]
push ecx
call fcn.004b6e08
add esp, 0x10
push 0x4fef80
push 0x4fa370
push 0x4e78f4
lea edx, [ebp - 0xc04]
push edx
call fcn.004b6e08
add esp, 0x10
push 0
lea eax, [ebp - 0xd04]
push eax
lea ecx, [ebp - 0xc04]
push ecx
call fcn.0049b690
add esp, 0xc
mov dword [ebp - 0x1130], eax
cmp dword [ebp - 0x1108], 0
jne 0x45b75f
mov dword [ebp - 0x110c], 1
cmp dword [ebp - 0x1108], 1
jne 0x45b772
mov dword [ebp - 0x110c], 1
push 0xc
mov edx, dword [0x54e950]
push edx
lea eax, [ebp - 0x504]
push eax
call fcn.004b69f0
add esp, 0xc
mov ecx, 1
imul ecx, ecx, 0xc
mov dword [ebp - 0x1120], ecx
cmp dword [ebp - 0x1120], 0x200
jae 0x45b7a6
jmp 0x45b7ab
call fcn.004b64ae
mov edx, dword [ebp - 0x1120]
mov byte [ebp + edx - 0x504], 0
lea eax, [ebp - 0x504]
push eax
call fcn.004ca3dc
add esp, 4
push str.404_Not_Found
mov ecx, dword [0x54e950]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b8bf
push str.cannot_be_found
mov edx, dword [0x54e950]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b8bf
push str.Page_Not_Found
mov eax, dword [0x54e950]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b8bf
push str.URL_was_not_found
mov ecx, dword [0x54e950]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x45b8bf
push 0xc
push 0x4e7944
lea edx, [ebp - 0x504]
push edx
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x45b8bf
push 6
push 0x4e7954
lea eax, [ebp - 0x504]
push eax
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x45b8bf
push str..DZP
lea ecx, [ebp - 0xf04]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x45b88c
cmp dword [ebp - 0x1108], 1
je 0x45b8bf
push 0xc
push 0x4e7964
mov edx, dword [0x54e950]
push edx
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x45b8bf
push 6
push 0x4e7974
mov eax, dword [0x54e950]
push eax
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x45b8f9
mov dword [ebp - 0x110c], 1
push 0x4fef80
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x45b8f9
cmp dword [ebp - 0x1108], 1
jne 0x45b8f9
lea edx, [ebp - 0x704]
push edx
call fcn.00419360
add esp, 4
movss xmm0, dword [ebp - 0x1118]
subss xmm0, dword [ebp - 0x1110]
ucomiss xmm0, dword [0x4cb710]
lahf
test ah, 0x44
jnp 0x45b94a
cvtsi2ss xmm0, dword [ebp - 0x1108]
mulss xmm0, dword [0x4cb8b4]
divss xmm0, dword [0x4cb718]
movss xmm1, dword [ebp - 0x1118]
subss xmm1, dword [ebp - 0x1110]
divss xmm0, xmm1
movss dword [ebp - 0x112c], xmm0
cvttss2si eax, dword [ebp - 0x112c]
push eax
movss xmm0, dword [ebp - 0x1118]
subss xmm0, dword [ebp - 0x1110]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
mov ecx, dword [ebp - 0x1108]
push ecx
lea edx, [ebp - 0x704]
push edx
push str.DownloadFile:__s___Bytes_ld__Seconds:_f___Kb_sec:_d
push 1
call fcn.004417b0
add esp, 0x1c
cmp dword [ebp - 0x110c], 0
jne 0x45ba89
lea eax, [ebp - 0x704]
push eax
call fcn.004196c0
add esp, 4
cmp eax, 1
jne 0x45ba89
mov cl, byte [0x54bea8]
mov byte [ebp - 0x304], cl
push 0xfe
push 0
lea edx, [ebp - 0x303]
push edx
call fcn.004b6780
add esp, 0xc
push 0x4e79b4
lea eax, [ebp - 0x704]
push eax
call fcn.0041a470
add esp, 8
mov dword [ebp - 0x1114], eax
cmp dword [ebp - 0x1114], 0
je 0x45ba89
mov ecx, dword [ebp - 0x1114]
push ecx
push 1
push 0xc
lea edx, [ebp - 0x304]
push edx
call fcn.004b8e47
add esp, 0x10
mov eax, dword [ebp - 0x1114]
push eax
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x1114], 0
lea ecx, [ebp - 0x304]
push ecx
call fcn.004ca3dc
add esp, 4
push 0xc
push str.__DOCTYPE_HTML
lea edx, [ebp - 0x304]
push edx
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x45ba70
push 6
push 0x4e79c8
lea eax, [ebp - 0x304]
push eax
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x45ba89
lea ecx, [ebp - 0x704]
push ecx
call fcn.00419360
add esp, 4
mov dword [ebp - 0x110c], 1
lea edx, [ebp - 0x704]
push edx
call fcn.00419c20
add esp, 4
test eax, eax
jne 0x45baab
lea eax, [ebp - 0x704]
push eax
call fcn.00419360
add esp, 4
cmp dword [ebp - 0x110c], 0
jne 0x45bad6
push 0x4fef80
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x45bad6
mov dword [0x4fe96c], 1
mov eax, dword [ebp - 0x110c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret