Function at 0x43c8e0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
mov ebx, dword [eax]
mov eax, dword [ebx + 0x7d4]
mov byte [esi], 1
mov dword [esp], ebx
mov dword [esp + 0x5c], eax
call sym._Curl_initinfo
mov dword [esp], ebx
call sym._Curl_pgrsStartNow
movzx eax, byte [ebx + 0x4d9]
test al, al
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x130]
jne 0x43ccc8
mov eax, dword [eax]
mov eax, dword [eax + 0x12c]
mov edi, dword [eax + 8]
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp + 0x48], edi
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll__fstati64]
cmp eax, 0xffffffff
je 0x43ca40
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ecx, dword [ebx + 0x9f0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x54], edx
mov dword [ebx + 0xa6c], eax
test ecx, ecx
je 0x43cff0
cmp byte [ebx + 0x4d8], 0
je 0x43d070
cmp byte [ebx + 0x4d5], 0
je 0x43d070
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea edi, [esp + 0xc0]
mov dword [esp + 8], 0x468313
mov dword [esp + 4], 0x50
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp], edi
call sym._curl_msnprintf
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._Curl_client_write
mov esi, eax
test eax, eax
jne 0x43ca31
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.Accept_ranges:_bytes_r_n
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._Curl_client_write
mov esi, eax
test eax, eax
je 0x43d07a
add esp, 0x11c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [esp + 0x44], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x130]
mov dword [esp], eax
call sym._Curl_range
mov esi, eax
test eax, eax
jne 0x43ca31
mov eax, dword [ebx + 0x9f8]
mov edx, dword [ebx + 0x9fc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
test edx, edx
js 0x43cfb0
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
cmp edx, edi
mov eax, ecx
sbb eax, ebp
jl 0x43d190
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov edx, eax
mov dword [esp + 0x30], eax
xor eax, eax
cmp eax, edx
mov dword [esp + 0x34], ecx
sbb eax, ecx
jge 0x43cf20
cmp byte [esp + 0x44], 1
jne 0x43cec0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, edx
or eax, ecx
setne byte [esp + 0x5b]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._Curl_pgrsSetDownloadSize
mov eax, dword [ebx + 0x9f8]
mov edx, dword [ebx + 0x9fc]
mov dword [esp + 0x38], eax
movzx eax, byte [esp + 0x5b]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x44], al
mov eax, edx
or eax, ecx
jne 0x43cedd
mov dword [esp + 4], 7
mov dword [esp], ebx
call sym._Curl_pgrsTime
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x50], esi
mov esi, ebx
mov dword [esp + 0x38], 0
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x3c], 0
cmp byte [esp + 0x44], 0
mov eax, dword [esi + 0x498]
je 0x43cc40
mov edx, dword [esp + 0x34]
mov ebx, eax
sar ebx, 0x1f
cmp dword [esp + 0x30], eax
sbb edx, ebx
jl 0x43cca8
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._curlx_read
test eax, eax
jle 0x43d020
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov byte [edi + eax], 0
mov edx, ecx
or edx, ebx
je 0x43d020
mov ebx, eax
sar ebx, 0x1f
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], ebx
sub dword [esp + 0x30], eax
sbb dword [esp + 0x34], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], ebp
call sym._Curl_client_write
test eax, eax
jne 0x43d030
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._Curl_pgrsSetDownloadCounter
mov dword [esp], ebp
call sym._Curl_pgrsUpdate
test eax, eax
je 0x43cc78
mov dword [esp + 0x130], ebp
mov esi, 0x2a
mov eax, dword [esp + 0x130]
mov dword [esp], eax
call sym._Curl_pgrsUpdate
test eax, eax
mov eax, 0x2a
cmovne esi, eax
add esp, 0x11c
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
sub eax, 1
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sym._curlx_read
test eax, eax
jle 0x43d020
mov ebx, eax
mov byte [edi + eax], 0
sar ebx, 0x1f
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], ebx
jmp 0x43cbc5
call sym._Curl_now
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._Curl_speedcheck
test eax, eax
je 0x43cb58
mov dword [esp + 0x130], ebp
mov esi, eax
jmp 0x43cc15
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._curlx_sotouz
jmp 0x43cb7e
mov edi, dword [eax]
mov ebx, dword [edi + 0x12c]
mov ecx, dword [ebx]
mov dword [esp + 4], 0x5c
mov dword [esp], ecx
mov dword [esp + 0x30], ecx
call sym._strchr
mov esi, dword [edi + 0x7d4]
mov dword [esp + 0x38], esi
mov dword [edi + 0x124], esi
mov esi, 0x25
test eax, eax
je 0x43ca31
cmp byte [eax + 1], 0
je 0x43ca31
mov eax, dword [edi + 0x9f8]
mov ecx, dword [esp + 0x30]
mov edx, 0x8301
or eax, dword [edi + 0x9fc]
jne 0x43cf40
mov eax, dword [edi + 0x504]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym._open
mov dword [esp + 0x44], eax
test eax, eax
js 0x43d1a5
mov ecx, dword [edi + 0xa10]
mov edx, dword [edi + 0xa14]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x43cf50
mov esi, dword [edi + 0x9fc]
test esi, esi
js 0x43cf6e
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
lea eax, [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x498]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x130]
mov dword [esp], eax
call sym._Curl_fillreadbuffer
test eax, eax
jne 0x43ce90
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x43d040
mov eax, dword [edi + 0x9f8]
mov edx, dword [edi + 0x9fc]
mov ecx, dword [esp + 0x38]
mov esi, eax
or esi, edx
je 0x43ce01
cmp eax, ebx
mov esi, edx
mov dword [esp + 0x48], ebx
sbb esi, 0
mov dword [esp + 0x4c], 0
jl 0x43ce98
sub eax, dword [esp + 0x48]
sbb edx, dword [esp + 0x4c]
xor ebx, ebx
mov dword [edi + 0x9f8], eax
mov dword [edi + 0x9fc], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._curlx_write
cmp ebx, eax
jne 0x43d060
add dword [esp + 0x30], ebx
mov eax, dword [esp + 0x30]
adc dword [esp + 0x34], 0
mov edx, dword [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], edi
call sym._Curl_pgrsSetUploadCounter
mov eax, dword [esp + 0x130]
mov dword [esp], eax
call sym._Curl_pgrsUpdate
test eax, eax
je 0x43ce70
mov esi, 0x2a
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._close
add esp, 0x11c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._Curl_now
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._Curl_speedcheck
test eax, eax
je 0x43cd81
lea esi, [esi]
mov esi, eax
jmp 0x43ce56
mov dword [edi + 0x9f8], 0
mov esi, dword [esp + 0x38]
sub ebx, eax
mov dword [edi + 0x9fc], 0
lea ecx, [esi + eax]
jmp 0x43ce01
cmp byte [esp + 0x44], 0
jne 0x43cae0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov eax, edx
or eax, ecx
je 0x43cb27
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0x3c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.__lseeki64
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor eax, edi
xor edx, ecx
or eax, edx
je 0x43cb27
mov esi, 0x24
jmp 0x43ca31
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
sub edx, dword [esp + 0x38]
sbb ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
jmp 0x43cac4
mov edx, 0x8109
jmp 0x43cd28
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], edi
call sym._Curl_pgrsSetUploadSize
mov esi, dword [edi + 0x9fc]
test esi, esi
jns 0x43cd71
lea eax, [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__fstati64]
test eax, eax
jne 0x43d15a
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [edi + 0x9f8], eax
mov dword [edi + 0x9fc], edx
jmp 0x43cd71
cmp byte [esp + 0x44], 0
je 0x43d1bd
mov edi, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
add dword [esp + 0x38], edi
mov eax, dword [esp + 0x38]
adc dword [esp + 0x3c], ebp
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x9f8], eax
mov dword [ebx + 0x9fc], edx
jmp 0x43ca86
mov edx, dword [ebx + 0x3c8]
test edx, edx
je 0x43c98e
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._Curl_meets_timecondition
test al, al
jne 0x43c98e
mov byte [esi], 1
xor esi, esi
jmp 0x43ca31
mov dword [esp + 0x130], ebp
mov esi, dword [esp + 0x50]
jmp 0x43cc15
mov esi, eax
jmp 0x43ca31
mov esi, eax
mov eax, dword [esp + 0x130]
mov dword [esp], eax
call sym._Curl_pgrsUpdate
test eax, eax
je 0x43ce56
jmp 0x43ce51
mov esi, 0x37
jmp 0x43ce56
mov byte [esp + 0x44], 1
jmp 0x43ca55
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call sym._Curl_gmtime
mov esi, eax
test eax, eax
jne 0x43ca31
mov eax, dword [esp + 0x80]
mov ecx, 6
mov dword [esp], edi
mov dword [esp + 8], 0x468344
lea edx, [eax + 0x76c]
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], 0x50
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x78]
mov esi, dword [eax*4 + 0x465fe0]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], edx
sub eax, 1
mov dword [esp + 0x14], esi
cmovb eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [eax*4 + 0x466084]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
call sym._curl_msnprintf
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 3
mov dword [esp], eax
call sym._Curl_client_write
mov esi, eax
test eax, eax
jne 0x43ca31
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym._Curl_pgrsSetDownloadSize
jmp 0x43ca31
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._close
mov eax, dword [ebx]
mov dword [esp + 4], str.Cant_get_the_size_of__s
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._Curl_failf
mov esi, 0x17
jmp 0x43ca31
mov dword [esp + 4], str.failed_to_resume_file:___transfer
mov dword [esp], ebx
call sym._Curl_failf
jmp 0x43cf15
mov eax, dword [ebx]
mov dword [esp + 4], str.Cant_open__s_for_writing
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._Curl_failf
jmp 0x43d17c
mov dword [esp + 4], str.Cant_get_the_size_of_file.
mov esi, 0x1a
mov dword [esp], ebx
call sym._Curl_failf
jmp 0x43ca31