Function at 0x423db4
Capabilities:
Check http status code
Link many functions at runtime
Write file on windows

Disassembly:
push ebp
mov eax, 0x297c
mov ebp, esp
push edi
push esi
push ebx
call fcn.00484d70
xor edi, edi
mov ecx, 0xe
sub esp, eax
xor eax, eax
mov dword [ebp - 0x2938], edi
lea edi, [ebp - 0x2910]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x28d8]
mov ebx, dword [ebp + 8]
cmp dword [0x520fc4], 0
mov dword [ebp - 0x2904], eax
lea eax, [ebp - 0x2898]
mov dword [ebp - 0x293c], 0x49f56c
mov dword [ebp - 0x2914], 0x3c
mov dword [ebp - 0x290c], 1
mov dword [ebp - 0x2900], 0x40
mov dword [ebp - 0x28f4], 1
mov dword [ebp - 0x28f0], eax
mov dword [ebp - 0x28ec], pe_nt_image_headers32
mov dword [ebp - 0x28e4], 1
jne 0x423eb2
call fcn.0042382a
mov dword [esp + 4], str.InternetCrackUrlA
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push esi
push esi
mov dword [0x520fc4], eax
test eax, eax
jne 0x423eb2
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.InternetCrackUrlA
mov dword [esp], 0x49f4c4
call fcn.0043d9e0
xor ebx, ebx
mov dword [ebp - 0x2950], ebx
mov dword [ebp - 0x294c], ebx
mov dword [ebp - 0x2954], ebx
mov dword [ebp - 0x2964], ebx
mov dword [ebp - 0x2960], ebx
jmp 0x4242b7
cmp dword [0x520fc0], 0
jne 0x423ef7
call fcn.0042382a
mov dword [esp + 4], str.InternetConnectA
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push ecx
push ecx
mov dword [0x520fc0], eax
test eax, eax
jne 0x423ef7
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.InternetConnectA
jmp 0x423e81
cmp dword [0x520fbc], 0
jne 0x423f3f
call fcn.0042382a
mov dword [esp + 4], str.InternetReadFile
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push edx
push edx
mov dword [0x520fbc], eax
test eax, eax
jne 0x423f3f
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.InternetReadFile
jmp 0x423e81
cmp dword [0x520fb8], 0
jne 0x423f87
call fcn.0042382a
mov dword [esp + 4], str.InternetCloseHandle
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push edi
push edi
mov dword [0x520fb8], eax
test eax, eax
jne 0x423f87
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.InternetCloseHandle
jmp 0x423e81
cmp dword [0x520fb4], 0
jne 0x423fcf
call fcn.0042382a
mov dword [esp + 4], str.HttpOpenRequestA
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push esi
push esi
mov dword [0x520fb4], eax
test eax, eax
jne 0x423fcf
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.HttpOpenRequestA
jmp 0x423e81
cmp dword [0x520fb0], 0
jne 0x424017
call fcn.0042382a
mov dword [esp + 4], str.HttpSendRequestA
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push ecx
push ecx
mov dword [0x520fb0], eax
test eax, eax
jne 0x424017
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.HttpSendRequestA
jmp 0x423e81
cmp dword [0x520fac], 0
jne 0x42405f
call fcn.0042382a
mov dword [esp + 4], str.HttpQueryInfoA
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push edx
push edx
mov dword [0x520fac], eax
test eax, eax
jne 0x42405f
call fcn.0043df77
mov dword [esp + 8], str.WinInet
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.HttpQueryInfoA
jmp 0x423e81
mov dword [0x520ee8], 0x194
xor eax, eax
cmp dword [ebp + 0x18], 0
mov dword [0x4dfd80], eax
je 0x4240a1
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov eax, dword [ebp + 0x18]
mov dword [esp], 0xffffffff
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.0044a2e0
test ebx, ebx
jne 0x4240c2
mov dword [esp + 8], 0xd3
mov dword [esp + 4], str.net.c
mov dword [esp], str.url___NULL
call dword [0x491228]
cmp dword [ebp + 0x14], 0
je 0x4240cf
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [eax], esi
cmp dword [ebp + 0xc], 0
mov eax, ebx
je 0x4240da
mov eax, dword [ebp + 0xc]
call fcn.004236bc
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x2968], eax
je 0x424127
mov eax, dword [ebp - 0x2968]
xor ecx, ecx
mov dword [esp + 0xc], 0xc0d
mov dword [esp + 8], 0x1388
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], 1
call fcn.00422f82
mov dword [esp + 4], ebx
mov dword [esp], str.Downloading__s
call fcn.0043d9e0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x2914]
mov dword [esp], ebx
mov dword [esp + 0xc], edx
xor edx, edx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call dword [0x520fc4]
sub esp, 0x10
test eax, eax
je 0x424165
cmp dword [ebp - 0x2904], 0
je 0x424165
cmp dword [ebp - 0x28e8], 0
jne 0x424177
call fcn.0043df77
mov dword [esp], str.Unable_to_decode_URL:__s
mov dword [esp + 4], eax
jmp 0x4241a5
mov eax, dword [ebp + 0x10]
mov edx, 1
mov byte [ebp - 0x2899], 0
call fcn.0042396b
mov dword [ebp - 0x2960], eax
test eax, eax
jne 0x4241af
call fcn.0043df77
mov dword [esp], str.Could_not_open_Internet_session:__s
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x423e8d
xor esi, esi
xor edi, edi
mov dword [esp + 0x14], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
movzx eax, word [ebp - 0x28fc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2904]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2960]
mov dword [esp], eax
call dword [0x520fc0]
mov dword [ebp - 0x2964], eax
sub esp, 0x20
test eax, eax
jne 0x424230
call fcn.0043df77
xor ebx, ebx
mov dword [esp + 0xc], eax
movzx eax, word [ebp - 0x28fc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2904]
mov dword [esp], str.Could_not_connect_to_server__s:_d:__s
mov dword [esp + 4], eax
call fcn.0043d9e0
mov dword [ebp - 0x2954], ebx
jmp 0x4242a9
cmp dword [ebp - 0x2908], 4
mov edx, 0x488c600
mov eax, 0x408c600
cmove eax, edx
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x293c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x28e8]
mov dword [esp + 4], 0x49f680
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2964]
mov dword [esp], eax
call dword [0x520fb4]
mov dword [ebp - 0x2954], eax
sub esp, 0x20
test eax, eax
jne 0x4242bf
call fcn.0043df77
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.Could_not_open_URL__s:__s
call fcn.0043d9e0
xor eax, eax
mov dword [ebp - 0x2950], eax
mov dword [ebp - 0x294c], eax
or ebx, 0xffffffff
jmp 0x42474b
xor eax, eax
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Accept_Encoding:_gzip__deflate
mov eax, dword [ebp - 0x2954]
mov dword [esp], eax
call dword [0x520fb0]
sub esp, 0x14
test eax, eax
jne 0x424304
call fcn.0043df77
mov dword [esp], str.Unable_to_send_request:__s
mov dword [esp + 4], eax
jmp 0x4243dd
xor eax, eax
lea esi, [ebp - 0x2948]
mov dword [ebp - 0x2948], 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x520ee8
mov dword [esp + 4], 0x20000013
mov eax, dword [ebp - 0x2954]
mov dword [esp], eax
call dword [0x520fac]
sub esp, 0x14
cmp dword [0x520ee8], 0xc8
je 0x424391
mov dword [0x520fcc], 0x2efc
mov dword [esp], 0xc0032efc
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, str.File_not_found
push eax
mov edx, dword [0x520ee8]
mov eax, str.Unable_to_access_file
cmp edx, 0x194
cmove eax, ecx
mov dword [esp + 8], edx
mov dword [esp], str._s:__d
mov dword [esp + 4], eax
jmp 0x4242a4
mov dword [ebp - 0x2948], 0x20
xor eax, eax
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x2934]
mov dword [esp + 0x10], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 5
mov eax, dword [ebp - 0x2954]
mov dword [esp], eax
call dword [0x520fac]
sub esp, 0x14
test eax, eax
jne 0x4243e7
call fcn.0043df77
mov dword [esp], str.Unable_to_retrieve_file_length:__s
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x4242a9
xor edi, edi
mov dword [esp + 8], 0xa
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00486790
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x295c], eax
mov dword [ebp - 0x2958], edx
je 0x424508
xor ecx, ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.0043e475
mov dword [esp], str.File_length:__s
mov dword [esp + 4], eax
call fcn.0043d9e0
cmp dword [0x524134], 0
je 0x42447f
mov eax, ebx
call fcn.00423c7b
mov ebx, eax
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x295c]
mov dword [esp], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 4], eax
call fcn.0043e475
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x49f712
jmp 0x4244ba
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x295c]
mov dword [esp], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 4], eax
call fcn.0043e475
mov esi, eax
mov eax, ebx
call fcn.00423c7b
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x49f71a
lea eax, [ebp - 0x2818]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__snprintf_s]
lea eax, [ebp - 0x2818]
mov byte [ebp - 0x2799], 0
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], 0xc0d
mov dword [esp + 8], 0x1388
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00422f82
cmp dword [ebp + 0xc], 0
je 0x424546
mov eax, dword [ebp + 0xc]
mov ecx, pe_nt_image_headers32
mov edx, 0xc0000000
call fcn.004237bc
mov ebx, eax
cmp eax, 0xffffffff
jne 0x424589
call fcn.0043df77
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2968]
mov dword [esp], str.Unable_to_create_file__s:__s
mov dword [esp + 4], eax
jmp 0x4242a4
cmp dword [ebp + 0x14], 0
jne 0x424555
mov dword [esp], str.No_buffer_pointer_provided_for_download
jmp 0x42457f
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x295c]
or ebx, 0xffffffff
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_calloc
mov edi, dword [ebp + 0x14]
mov dword [edi], eax
test eax, eax
jne 0x424589
mov dword [esp], str.Could_not_allocate_buffer_for_download
call fcn.0043d9e0
jmp 0x4242a9
xor eax, eax
mov dword [ebp - 0x2950], eax
mov dword [ebp - 0x294c], eax
cmp dword [0x4dfd80], 0
js 0x42474b
lea eax, [ebp - 0x2940]
mov dword [esp + 8], 0x2800
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2818]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2954]
mov dword [esp], eax
call dword [0x520fbc]
sub esp, 0x10
test eax, eax
je 0x4246f1
cmp dword [ebp - 0x2940], 0
je 0x4246f1
cmp dword [ebp + 0x18], 0
je 0x42462f
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x295c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2950]
mov edx, dword [ebp - 0x294c]
mov dword [esp + 4], 0xca9
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], 0xfffffffe
call fcn.0044a2e0
cmp dword [ebp + 0xc], 0
mov ecx, dword [ebp - 0x2940]
je 0x4246c4
lea eax, [ebp - 0x2944]
xor edi, edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2818]
mov dword [esp + 0x10], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
sub esp, 0x14
test eax, eax
jne 0x424691
call fcn.0043df77
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2968]
mov dword [esp], str.Error_writing_file__s:__s
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x42474b
mov edx, dword [ebp - 0x2940]
mov eax, dword [ebp - 0x2944]
cmp edx, eax
je 0x4246d9
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2968]
mov dword [esp], str.Error_writing_file__s:_Only__d__d_bytes_written
mov dword [esp + 4], eax
call fcn.0043d9e0
jmp 0x42474b
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2950]
lea esi, [ebp - 0x2818]
add eax, dword [edi]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x2940]
add dword [ebp - 0x2950], eax
adc dword [ebp - 0x294c], 0
jmp 0x424597
mov eax, dword [ebp - 0x2958]
cmp dword [ebp - 0x294c], eax
jne 0x42470d
mov eax, dword [ebp - 0x295c]
cmp dword [ebp - 0x2950], eax
je 0x424752
mov eax, dword [ebp - 0x295c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2950]
mov edx, dword [ebp - 0x294c]
mov dword [esp], str.Could_not_download_complete_file___read:__lld_bytes__expected:__lld_bytes
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0043d9e0
mov dword [0x4dfd80], 0xc003001d
xor esi, esi
jmp 0x4247d7
mov dword [0x520ee8], 0xc8
cmp dword [ebp + 0x18], 0
je 0x4247ba
xor esi, esi
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0x2950]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2950]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2958]
mov dword [esp + 4], 0xca9
mov dword [esp + 0xc], eax
mov dword [esp], 0xfffffffe
call fcn.0044a2e0
mov eax, dword [ebp - 0x2968]
mov dword [esp], str.Successfully_downloaded__s
mov dword [esp + 4], eax
call fcn.0043d9e0
mov eax, dword [ebp - 0x295c]
mov esi, 1
mov dword [ebp - 0x2950], eax
mov eax, dword [ebp - 0x2958]
mov dword [ebp - 0x294c], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x520fcc], eax
cmp ebx, 0xffffffff
je 0x4247fb
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
push ecx
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push ebx
test esi, esi
jne 0x424827
cmp dword [ebp + 0xc], 0
je 0x42480d
mov eax, dword [ebp + 0xc]
call fcn.00423d76
cmp dword [ebp + 0x14], 0
je 0x424827
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp + 0x14]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp - 0x2954], 0
je 0x424840
mov eax, dword [ebp - 0x2954]
mov dword [esp], eax
call dword [0x520fb8]
push edi
cmp dword [ebp - 0x2964], 0
je 0x424859
mov eax, dword [ebp - 0x2964]
mov dword [esp], eax
call dword [0x520fb8]
push ebx
cmp dword [ebp - 0x2960], 0
je 0x424872
mov eax, dword [ebp - 0x2960]
mov dword [esp], eax
call dword [0x520fb8]
push ecx
mov eax, dword [0x520fcc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push edx
test esi, esi
jne 0x424893
xor eax, eax
mov dword [ebp - 0x2950], eax
mov dword [ebp - 0x294c], eax
mov eax, dword [ebp - 0x2950]
mov edx, dword [ebp - 0x294c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret