Function at 0x45dfb0
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6467ea
mov eax, dword fs:[0]
push eax
sub esp, 0x564
mov eax, dword [0x6bc858]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebx + 0x180], 0x10
lea eax, [ebx + 0x16c]
mov dword [ebp - 0x52c], ebx
mov dword [ebp - 0x528], eax
jb 0x45dffd
mov eax, dword [eax]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
xor esi, esi
push esi
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
mov dword [ebp - 0x520], edi
cmp edi, 0xffffffff
jne 0x45e066
push 0x683838
lea eax, [ebp - 0x534]
mov dword [ebp - 0x534], str.HTTPDownload.cpp
mov dword [ebp - 0x530], 0xa4
call fcn.0040ec50
add esp, 4
mov eax, 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005f0da0
mov esp, ebp
pop ebp
ret
mov eax, 0x3e8
push 4
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x524], eax
lea eax, [ebp - 0x524]
push eax
push 0x1005
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x45e0b7
cmp dword [ebp - 0x51c], esi
jle 0x45e0b7
push 4
lea ecx, [ebp - 0x51c]
push ecx
push 0x1006
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [ebp - 0x498], esi
push 8
mov dword [ebp - 4], esi
call fcn.005f0fe0
add esp, 4
cmp eax, esi
je 0x45e6a3
mov dword [ebp - 0x498], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x498]
lea edx, [ebp - 0x498]
mov dword [eax], edx
mov edi, 0xf
mov dword [ebp - 0x480], edi
mov dword [ebp - 0x484], esi
mov byte [ebp - 0x494], cl
push 4
push str.GET
mov ecx, edx
mov dword [ebp - 4], 1
call fcn.00412c10
mov dword [ebp - 0x438], esi
push 8
mov byte [ebp - 4], 2
call fcn.005f0fe0
add esp, 4
cmp eax, esi
je 0x45e670
mov dword [ebp - 0x438], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x438]
lea ecx, [ebp - 0x438]
mov dword [edx], ecx
mov dword [ebp - 0x420], edi
mov dword [ebp - 0x424], esi
mov byte [ebp - 0x434], 0
mov dword [ebp - 0x458], esi
push 8
mov byte [ebp - 4], 4
call fcn.005f0fe0
add esp, 4
cmp eax, esi
je 0x45e63d
mov dword [ebp - 0x458], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x458]
lea eax, [ebp - 0x458]
mov dword [ecx], eax
mov dword [ebp - 0x440], edi
mov dword [ebp - 0x444], esi
mov byte [ebp - 0x454], dl
mov dword [ebp - 0x478], esi
push 8
mov byte [ebp - 4], 6
call fcn.005f0fe0
add esp, 4
cmp eax, esi
je 0x45e60a
xor ecx, ecx
mov dword [ebp - 0x478], eax
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x478]
lea edx, [ebp - 0x478]
mov dword [eax], edx
mov dword [ebp - 0x460], edi
mov dword [ebp - 0x464], esi
mov byte [ebp - 0x474], cl
mov byte [ebp - 4], 7
mov dword [ebp - 0x51c], esi
mov dword [ebp - 0x524], esi
jmp 0x45e216
mov ebx, dword [ebp - 0x52c]
cmp dword [ebx + 0x180], 0x10
jb 0x45e229
mov ecx, dword [ebp - 0x528]
mov eax, dword [ecx]
jmp 0x45e22f
mov eax, dword [ebp - 0x528]
push eax
lea esi, [ebp - 0x520]
call fcn.00429cd0
add esp, 4
test eax, eax
jne case.0x45e4f0.3
lea edx, [ebx + 0xe8]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x4b8]
push ecx
call fcn.0041f670
add esp, 0xc
push eax
lea edx, [ebp - 0x4d8]
push edx
mov ecx, str._HTTP_1.1_r_n
mov byte [ebp - 4], 8
call fcn.0041f780
add esp, 8
mov esi, eax
lea edi, [ebp - 0x438]
mov byte [ebp - 4], 9
call fcn.00419940
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 8
call fcn.00412410
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 7
call fcn.00412410
lea eax, [ebx + 0xc8]
push eax
lea ecx, [ebp - 0x4d8]
push str.Host:
push ecx
call fcn.00460d00
add esp, 0xc
push eax
lea edx, [ebp - 0x4b8]
push edx
mov ecx, 0x683888
mov byte [ebp - 4], 0xa
call fcn.0041f780
add esp, 8
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.004129f0
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 0xa
call fcn.00412410
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 7
call fcn.00412410
push str.Accept:___r_n
mov ecx, edi
call fcn.004124f0
push str.Pragma:_no_cache_r_n
mov ecx, edi
call fcn.004124f0
push str.Cache_Control:_no_cache_r_n
mov ecx, edi
call fcn.004124f0
cmp dword [ebx + 0x11c], 0
je 0x45e39c
add ebx, 0x108
push ebx
lea eax, [ebp - 0x4f8]
push str.Referer:
push eax
call fcn.00460d00
add esp, 0xc
push eax
lea ecx, [ebp - 0x518]
push ecx
mov bl, 0xc
mov ecx, 0x683888
mov byte [ebp - 4], bl
call fcn.0041f780
add esp, 8
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.004129f0
lea ecx, [ebp - 0x518]
mov byte [ebp - 4], bl
call fcn.00412410
lea ecx, [ebp - 0x4f8]
mov byte [ebp - 4], 7
call fcn.00412410
push str.Connection:_close_r_n
lea ecx, [ebp - 0x438]
call fcn.004124f0
push str.Range:_bytes100__r_n
lea ecx, [ebp - 0x478]
call fcn.004124a0
push 0xffffffffffffffff
push 0
lea edx, [ebp - 0x478]
push edx
lea ecx, [ebp - 0x438]
call fcn.004129f0
push 0x683888
lea ecx, [ebp - 0x438]
call fcn.004124f0
cmp dword [ebp - 0x420], 0x10
mov eax, dword [ebp - 0x434]
jae 0x45e3f7
lea eax, [ebp - 0x434]
mov edi, dword [ebp - 0x424]
push eax
lea ebx, [ebp - 0x520]
call fcn.00429ee0
add esp, 4
push 0x6745b6
lea ecx, [ebp - 0x438]
call fcn.004124a0
push 0x6745b6
lea ecx, [ebp - 0x458]
call fcn.004124a0
push 0x401
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.005ff630
lea ecx, [ebp - 0x418]
add esp, 0xc
push ecx
mov eax, ebx
call fcn.00429d50
add esp, 4
cmp byte [ebp - 0x418], 0
je 0x45e4b6
lea esp, [esp]
lea edx, [ebp - 0x418]
push edx
lea ecx, [ebp - 0x458]
call fcn.004124f0
push 0x683888
lea ecx, [ebp - 0x458]
call fcn.004124f0
push 0x401
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.005ff630
lea ecx, [ebp - 0x418]
add esp, 0xc
push ecx
lea eax, [ebp - 0x520]
call fcn.00429d50
add esp, 4
cmp byte [ebp - 0x418], 0
jne 0x45e460
cmp dword [ebp - 0x440], 0x10
mov edx, dword [ebp - 0x454]
jae 0x45e4cb
lea edx, [ebp - 0x454]
mov eax, dword [ebp - 0x52c]
lea esi, [ebp - 0x524]
push esi
lea esi, [ebp - 0x51c]
push esi
lea ecx, [eax + 0x148]
push eax
call fcn.0045e6f0
cmp eax, 3
ja case.0x45e4f0.3
jmp dword [eax*4 + 0x45e6d8]
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 5
call fcn.00412410
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 3
call fcn.00412410
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 1
call fcn.00412410
lea ecx, [ebp - 0x498]
mov dword [ebp - 4], 0xffffffff
call fcn.00412410
jmp 0x45e045
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 5
call fcn.00412410
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 3
call fcn.00412410
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 1
call fcn.00412410
lea ecx, [ebp - 0x498]
mov dword [ebp - 4], 0xffffffff
call fcn.00412410
mov eax, 1
jmp 0x45e04a
mov ecx, dword [ebp - 0x51c]
mov eax, dword [ebp - 0x52c]
add ecx, 0x64
cmp dword [ebp - 0x464], 0
mov dword [eax + 0x158], ecx
je 0x45e5be
cmp dword [ebp - 0x524], 0xce
jne 0x45e5b7
mov dword [eax + 4], 1
jmp 0x45e5be
mov dword [eax + 4], 0
mov dword [eax + 0x160], ecx
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 5
call fcn.00412410
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 3
call fcn.00412410
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 1
call fcn.00412410
lea ecx, [ebp - 0x498]
mov dword [ebp - 4], 0xffffffff
call fcn.00412410
xor eax, eax
jmp 0x45e04a
lea edx, [ebp - 0x540]
push edx
lea ecx, [ebp - 0x564]
mov dword [ebp - 0x540], esi
call fcn.005f41f0
push 0x6a361c
lea eax, [ebp - 0x564]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.006009e0
lea ecx, [ebp - 0x53c]
push ecx
lea ecx, [ebp - 0x54c]
mov dword [ebp - 0x53c], esi
call fcn.005f41f0
push 0x6a361c
lea edx, [ebp - 0x54c]
push edx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.006009e0
lea eax, [ebp - 0x538]
push eax
lea ecx, [ebp - 0x558]
mov dword [ebp - 0x538], esi
call fcn.005f41f0
push 0x6a361c
lea ecx, [ebp - 0x558]
push ecx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.006009e0
lea edx, [ebp - 0x530]
push edx
lea ecx, [ebp - 0x570]
mov dword [ebp - 0x530], esi
call fcn.005f41f0
push 0x6a361c
lea eax, [ebp - 0x570]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.006009e0
mov edi, edi
test ch, ah
inc ebp
add byte [ebx], bh
in eax, 0x45
add byte [eax], dl
loop 0x45e728
add bh, dh
in al, 0x45
add ah, cl
int3
invalid