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 0x43cfe0
cmp byte [ebx + 0x4d8], 0
je 0x43d060
cmp byte [ebx + 0x4d5], 0
je 0x43d060
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea edi, [esp + 0xc0]
mov dword [esp + 8], 0x465313
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 0x43d06a
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 0x43cfa0
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 0x43d180
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 eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov edi, eax
or edi, edx
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 edi, dword [esp + 0x3c]
mov byte [esp + 0x44], al
mov eax, dword [esp + 0x38]
or edi, eax
jne 0x43cedb
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 0x43d010
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov byte [edi + eax], 0
or ebx, edx
je 0x43d010
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 0x43d020
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 0x43d010
mov ebx, eax
mov byte [edi + eax], 0
sar ebx, 0x1f
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], ebx
jmp 0x43cbc1
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 0x43cb56
mov dword [esp + 0x130], ebp
mov esi, eax
jmp 0x43cc11
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._curlx_sotouz
jmp 0x43cb7c
mov edi, dword [eax]
mov ebx, dword [edi + 0x12c]
mov edx, dword [ebx]
mov dword [esp + 4], 0x5c
mov dword [esp], edx
mov dword [esp + 0x30], edx
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 + 0x9fc]
or eax, dword [edi + 0x9f8]
cmp eax, 1
mov ecx, dword [edi + 0x504]
mov edx, dword [esp + 0x30]
sbb eax, eax
and eax, 0x1f8
mov dword [esp + 8], ecx
add eax, 0x8109
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._open
mov dword [esp + 0x44], eax
test eax, eax
js 0x43d195
mov ecx, dword [edi + 0xa10]
mov edx, dword [edi + 0xa14]
mov eax, ecx
mov esi, edx
not eax
not esi
or eax, esi
jne 0x43cf40
mov esi, dword [edi + 0x9fc]
test esi, esi
js 0x43cf5e
mov dword [esp + 0x30], 0
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x34], 0
lea eax, [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x498]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_fillreadbuffer
test eax, eax
jne 0x43ce90
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x43d030
mov edx, dword [edi + 0x9fc]
mov eax, dword [edi + 0x9f8]
mov ecx, dword [esp + 0x38]
mov esi, edx
or esi, eax
je 0x43ce08
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 0x43d050
xor edx, edx
add dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x30]
adc dword [esp + 0x34], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp], edi
call sym._Curl_pgrsSetUploadCounter
mov dword [esp], ebp
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 0x43cd8f
lea esi, [esi]
mov esi, eax
jmp 0x43ce57
mov dword [edi + 0x9f8], 0
mov esi, dword [esp + 0x38]
sub ebx, eax
mov dword [edi + 0x9fc], 0
lea ecx, [esi + eax]
jmp 0x43ce08
cmp byte [esp + 0x44], 0
jne 0x43cae0
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
or edi, eax
je 0x43cb25
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], 0
mov edi, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], edi
call sym.__lseeki64
xor eax, dword [esp + 0x38]
xor edx, dword [esp + 0x3c]
or eax, edx
je 0x43cb25
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 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 0x43cd78
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 0x43d14a
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [edi + 0x9f8], eax
mov dword [edi + 0x9fc], edx
jmp 0x43cd78
cmp byte [esp + 0x44], 0
je 0x43d1ad
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 0x43cc11
mov esi, eax
jmp 0x43ca31
mov dword [esp], ebp
mov esi, eax
mov dword [esp + 0x130], ebp
call sym._Curl_pgrsUpdate
test eax, eax
je 0x43ce57
jmp 0x43ce52
mov esi, 0x37
jmp 0x43ce57
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], 0x465344
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 + 0x462fe0]
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 + 0x463084]
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 0x43cf0f
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 0x43d16c
mov dword [esp + 4], str.Cant_get_the_size_of_file.
mov esi, 0x1a
mov dword [esp], ebx
call sym._Curl_failf
jmp 0x43ca31