Function at 0x403e58
Capabilities:
Check http status code
Connect to http server
Create http request
Create thread
Read data from internet
Receive data
Send data
Send http request
Terminate process
Terminate thread

Disassembly:
mov eax, 0xa22c
call fcn.00406e60
push ebx
mov ebx, dword [0x409100]
push ebp
push esi
push edi
push 0x40717c
lea eax, [esp + 0x304]
push eax
mov dword [esp + 0x28], 4
call ebx
xor ebp, ebp
cmp dword [esp + 0xa244], ebp
mov edi, str.STRINGTABLECUSTOM
jne 0x403eaf
push edi
push 0xc0
call fcn.0040116f
push eax
push 0x3fc
push dword [0x409174]
call fcn.004019ea
push ebp
push ebp
push 0xf0
push 0x3fa
push dword [0x409174]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401747
cmp eax, 1
mov esi, dword [0x4090f8]
jne 0x403fb1
push 0x200
lea eax, [esp + 0x1a40]
push eax
push 0x3eb
push dword [0x409174]
call fcn.00401a4b
push 0x200
lea eax, [esp + 0x1e40]
push eax
push 0x3ea
push dword [0x409174]
call fcn.00401a4b
push 0x40717c
lea eax, [esp + 0x1640]
push eax
call ebx
lea eax, [esp + 0x1a3c]
push eax
push 0x4071d8
lea eax, [esp + 0x1e44]
push eax
lea eax, [esp + 0x1648]
push eax
call esi
push eax
call esi
push eax
call esi
push ebp
push 0x4071d4
lea eax, [esp + 0x1644]
push eax
push 3
push 0x4071cc
call dword [sym.imp.WININET.dll_InternetOpenW]
cmp eax, ebp
mov dword [0x40916c], eax
je 0x40419a
push 0x4071ac
push 0x40a1d8
mov dword [0x40b25c], 3
call fcn.004057d6
neg eax
sbb eax, eax
and eax, 0x16b
add eax, 0x50
cmp dword [0x40b244], 1
jne 0x403fda
or dword [0x40b25c], 0xffffffff
call fcn.00403cd2
jmp 0x404bb0
push ebp
push ebp
push ebp
push ebp
push 0x4071cc
call dword [sym.imp.WININET.dll_InternetOpenW]
cmp eax, ebp
mov dword [0x40916c], eax
jne 0x403f72
call fcn.00403cd2
or dword [0x40b25c], 0xffffffff
jmp 0x4041a6
push ebp
push ebp
push 3
push ebp
push ebp
push eax
push 0x409198
push dword [0x40916c]
call dword [sym.imp.WININET.dll_InternetConnectW]
cmp eax, ebp
mov dword [0x409170], eax
je 0x40419a
push ebp
push ebp
push 0xf0
push 0x3e9
push dword [0x409174]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401747
cmp eax, 1
jne 0x4040ce
push 0x208
call fcn.00406886
mov dword [esp + 0x14], eax
mov dword [esp], 0x208
call fcn.00406886
mov dword [esp], 0x104
push dword [esp + 0x14]
mov dword [esp + 0x1c], eax
push 0x3ec
push dword [0x409174]
call fcn.00401a4b
push 0x104
push dword [esp + 0x18]
push 0x3ed
push dword [0x409174]
call fcn.00401a4b
mov eax, dword [esp + 0x10]
add eax, 2
push eax
call dword [0x409104]
push eax
push dword [esp + 0x14]
push 0x2b
push dword [0x409170]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
mov eax, dword [esp + 0x14]
add eax, 2
push eax
call dword [0x409104]
push eax
push dword [esp + 0x18]
push 0x2c
push dword [0x409170]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push dword [esp + 0x10]
call fcn.0040689a
push dword [esp + 0x18]
call fcn.0040689a
pop ecx
pop ecx
cmp dword [0x40b250], ebp
mov dword [0x40b25c], 2
je 0x40413b
push 0x208
call fcn.00406886
mov dword [esp], 0x40717c
push eax
mov dword [esp + 0x18], eax
call ebx
push dword [0x40b250]
call fcn.004058ff
push eax
lea eax, [esp + 0x5c]
push eax
push dword [0x40b250]
call fcn.0040586d
push 0x40735c
lea eax, [esp + 0x5c]
push eax
push 0x407340
push dword [esp + 0x1c]
call esi
push eax
call esi
push eax
call esi
push dword [esp + 0x10]
call dword [0x409104]
jmp 0x40413f
mov dword [esp + 0x10], ebp
push 0x4093a0
lea eax, [esp + 0x704]
push eax
call ebx
push 0x4095a8
lea eax, [esp + 0x704]
push eax
call esi
push ebp
push 0x80400000
push ebp
push ebp
push ebp
lea eax, [esp + 0x714]
push eax
push 0x407338
push dword [0x409170]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
cmp eax, ebp
mov dword [0x409168], eax
je 0x40419a
push ebp
push ebp
push ebp
push dword [esp + 0x1c]
push eax
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x4041bf
or dword [0x40b25c], 0xffffffff
call fcn.00403cd2
push 0x30
push edi
push 0xbd
call fcn.0040116f
push eax
push edi
push 0xbf
jmp 0x404b9e
push dword [esp + 0x10]
call fcn.0040689a
pop ecx
push ebp
lea eax, [esp + 0x24]
push eax
push 0x40b03c
push 0xb
push dword [0x409168]
mov dword [0x40b25c], 4
mov dword [esp + 0x34], 0x208
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
push 0x40b03c
call fcn.004021b1
test eax, eax
jne 0x404275
push 0x30
push edi
push 0xa9
call fcn.0040116f
push eax
push edi
push 0xf5
call fcn.0040116f
push eax
push dword [0x409174]
call dword [0x409128]
push ebp
mov dword [0x40b250], ebp
call fcn.00403a3f
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [0x409170]
call esi
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x28]
push eax
push ebp
push ebp
push 0x404bc0
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
mov dword [0x409180], eax
call dword [sym.imp.KERNEL32.dll_ExitThread]
push ebp
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push 0x20000013
push dword [0x409168]
mov dword [esp + 0x30], 0x100
mov dword [esp + 0x34], 4
mov dword [esp + 0x38], ebp
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov eax, dword [esp + 0x2c]
cmp eax, 0xc8
je 0x40454a
cmp eax, 0xce
je 0x40457e
cmp eax, 0x12c
jbe 0x4044f1
cmp eax, 0x12e
jbe 0x404308
cmp eax, 0x191
je 0x4042e3
cmp eax, 0x197
jne 0x4044f1
or dword [0x40b25c], 0xffffffff
call fcn.00403cd2
push 0x30
push edi
push 0xb8
call fcn.0040116f
push eax
push edi
push 0xe5
jmp 0x404b9e
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x308]
push eax
push 0x21
push dword [0x409168]
mov dword [esp + 0x30], 0x100
mov dword [esp + 0x38], ebp
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea eax, [esp + 0x300]
push eax
call dword [0x409104]
push eax
push 0x4095a8
push 0x4093a0
push 0x409198
push 0x40a1d8
lea eax, [esp + 0x314]
push eax
call fcn.0040144b
test eax, eax
jne 0x40439b
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
jmp 0x404bb0
push 0x4095a8
push 0x40a200
call ebx
push str..xds
push 0x40a200
call esi
push 0x4095a8
push 0x3ef
push dword [0x409174]
call fcn.004019ea
push 0x409198
push 0x4099b8
call ebx
push 0x4093a0
push 0x409bc0
call ebx
push dword [0x40916c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [0x40916c], ebp
call fcn.00403801
push 0x4095a8
call fcn.00402d12
test eax, eax
je 0x40446e
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
push 0x34
push edi
push 0xa9
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
call fcn.0040116f
push eax
push edi
push 0xaa
call fcn.0040116f
push eax
push ebp
call dword [0x409128]
cmp eax, 7
jne 0x404bb0
push dword [0x40917c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404bb0
mov eax, dword [0x409180]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x28]
push eax
push ebp
push ebp
push 0x404bc0
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebp
mov dword [0x409180], eax
jne 0x4044e1
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
push ebp
push edi
push 0xa6
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
call fcn.0040116f
push eax
push edi
push 0xd7
call fcn.0040116f
push eax
push ebp
jmp 0x404baa
push ebp
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x40457e
push 0x40717c
lea eax, [esp + 0xe20]
push eax
call ebx
or dword [0x40b25c], 0xffffffff
call fcn.00403cd2
lea eax, [esp + 0x300]
push eax
push 0x407334
push edi
push 0xb8
call fcn.0040116f
push eax
lea eax, [esp + 0xe28]
push eax
call esi
push eax
call esi
push eax
call esi
push 0x30
lea eax, [esp + 0xe20]
push eax
push edi
push 0xba
jmp 0x404b9e
cmp dword [0x40b250], ebp
je 0x40457e
push 0x30
push edi
push 0xa9
call fcn.0040116f
push eax
push edi
push 0xbc
call fcn.0040116f
push eax
push dword [0x409174]
call dword [0x409128]
mov dword [0x40b250], ebp
push 5
pop eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x38]
push ecx
push eax
push dword [0x409168]
mov dword [0x40b25c], eax
mov dword [esp + 0x30], 0x14
mov dword [esp + 0x38], ebp
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
push 0x407330
lea eax, [esp + 0x34]
push eax
call fcn.004057d6
test eax, eax
je 0x404b5c
push 0x4071d4
lea eax, [esp + 0x34]
push eax
call fcn.004057d6
test eax, eax
je 0x404b5c
cmp dword [0x40b250], ebp
lea eax, [esp + 0x30]
push eax
je 0x4045f6
call fcn.00405844
add eax, dword [0x40b250]
jmp 0x4045fb
call fcn.00405844
mov dword [0x40b24c], eax
sub eax, dword [0x40b250]
push eax
push 0x409dc8
call fcn.00401d6b
test eax, eax
jne 0x404661
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
call fcn.00403289
push 0x30
push edi
push 0xa6
call fcn.0040116f
push eax
push edi
push 0xe8
jmp 0x404b9e
push edi
push 0xb7
mov dword [0x40b25c], 6
mov dword [esp + 0x20], 1
call fcn.0040116f
push eax
push 0x3fc
push dword [0x409174]
call fcn.004019ea
cmp dword [0x40b250], ebp
mov dword [0x40b25c], 7
jne 0x404713
cmp word [0x409dc8], bp
lea eax, [esp + 0x78]
je 0x4046d7
push 0x40717c
push eax
call ebx
push 0x4095a8
push 0x4071f0
push 0x409dc8
lea eax, [esp + 0x84]
push eax
call esi
push eax
call esi
push eax
call esi
jmp 0x4046df
push 0x4095a8
push eax
call ebx
push str..xds
lea eax, [esp + 0x7c]
push eax
call esi
push ebp
push 0x80
push 2
push ebp
push ebp
push 0x40000000
lea eax, [esp + 0x90]
push eax
call fcn.00401bc0
cmp eax, 0xffffffff
je 0x40472d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4095a8
mov edi, 0x40a200
push edi
call ebx
push str..xds
push edi
call esi
jmp 0x40486d
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
call fcn.00403289
push 0x30
push edi
push 0xa6
call fcn.0040116f
push eax
push edi
push 0xea
jmp 0x404b9e
mov dword [0x40b254], eax
xor edi, edi
jmp 0x404787
mov eax, dword [0x40b254]
cmp eax, dword [0x40b24c]
jae 0x404839
mov dword [0x40b25c], eax
lea eax, [esp + 0x18]
push eax
push 0x80
lea eax, [esp + 0x288]
push eax
push dword [0x409168]
call dword [sym.imp.WININET.dll_InternetReadFile]
cmp dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
je 0x4047c4
cmp eax, ebp
jne 0x4047c9
call fcn.00403801
cmp dword [0x40b244], 1
je 0x404a8c
mov eax, dword [esp + 0x18]
cmp eax, ebp
jne 0x4047e8
cmp dword [esp + 0x14], ebp
je 0x404ab3
add dword [0x40b254], eax
push dword [0x40b254]
call fcn.004058ff
push eax
lea eax, [esp + 0xd1c]
push eax
push dword [0x40b254]
call fcn.004058b7
push dword [esp + 0x18]
lea eax, [esp + 0x284]
push eax
lea eax, [esp + edi + 0x2244]
push eax
call fcn.004069b0
add edi, dword [esp + 0x24]
add esp, 0xc
cmp edi, 0x8000
jl 0x404782
push 1
push ebp
push edi
lea eax, [esp + 0x2248]
push eax
push 0x40a200
call fcn.0040293f
add dword [0x40b250], edi
push dword [0x40b250]
call fcn.00403a3f
cmp dword [0x40b244], 1
je 0x404aea
mov eax, dword [0x40b250]
cmp eax, dword [0x40b24c]
jb 0x404779
push dword [0x40916c]
or dword [0x40b25c], 0xffffffff
mov dword [0x40b248], 1
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [0x40b260]
cmp eax, 2
mov dword [0x40916c], ebp
je 0x4048b0
cmp eax, 3
jne 0x4048ba
push 0x40a818
call fcn.00401f5e
mov edi, 0x40717c
push edi
lea eax, [esp + 0x304]
push eax
call ebx
push 0x4099b8
push str._from
push 0x4095a8
push str.Successfully_downloaded
lea eax, [esp + 0x310]
push eax
call esi
push eax
call esi
push eax
call esi
push eax
call esi
lea eax, [esp + 0x300]
push eax
push ebp
push 0xc
push 0x3fc
push dword [0x409174]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401747
mov eax, dword [0x409184]
cmp eax, ebp
je 0x40492a
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [0x409184], ebp
mov eax, dword [0x409188]
cmp eax, ebp
je 0x404941
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [0x409188], ebp
mov eax, dword [0x409194]
cmp eax, ebp
je 0x404958
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [0x409194], ebp
mov eax, dword [0x409190]
cmp eax, ebp
je 0x40496f
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [0x409190], ebp
push edi
lea eax, [esp + 0x7c]
push eax
call ebx
push 0x409dc8
lea eax, [esp + 0x7c]
push eax
call ebx
push 0x4095a8
push 0x4071f0
lea eax, [esp + 0x80]
push eax
call esi
push eax
call esi
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x90c]
push eax
call ebx
push str..xds
lea eax, [esp + 0x90c]
push eax
call esi
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x90c]
push eax
call fcn.00401e1e
lea eax, [esp + 0xb10]
push eax
push 0x409dc8
call fcn.00401c26
test eax, eax
je 0x404a35
push edi
lea eax, [esp + 0xe20]
push eax
call ebx
push str..lnk
push 0x4095a8
push 0x4071f0
lea eax, [esp + 0xb1c]
push eax
lea eax, [esp + 0xe2c]
push eax
call esi
push eax
call esi
push eax
call esi
push eax
call esi
push dword [0x409160]
lea eax, [esp + 0xe20]
push 0x4095a8
push eax
lea eax, [esp + 0x84]
push eax
call section..text
call fcn.00403289
call fcn.00402830
push edi
lea eax, [esp + 0xe20]
push eax
call ebx
push 0x3fd
push dword [0x409174]
call dword [sym.imp.USER32.dll_GetDlgItem]
push ebp
push ebp
push 0xf0
push eax
call fcn.00401747
cmp eax, 1
jne 0x404b32
cmp dword [0x409160], ebp
lea eax, [esp + 0x78]
push eax
je 0x404b19
call fcn.00401194
jmp 0x404b1e
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [0x409168]
mov dword [0x40916c], ebp
call esi
mov dword [0x40916c], ebp
jmp 0x404bb0
push dword [0x409168]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [0x40916c]
mov dword [0x409168], ebp
call esi
xor eax, eax
cmp dword [esp + 0xa244], ebp
mov dword [0x40916c], ebp
setne al
lea eax, [eax + eax + 2]
jmp 0x404bb3
push dword [0x40b250]
or dword [0x40b25c], 0xffffffff
call fcn.00403a3f
push dword [0x40916c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [0x40916c], ebp
mov dword [0x40b244], ebp
jmp 0x404bb0
call fcn.004011f8
push dword [0x40917c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 1
push dword [0x409178]
call esi
push ebp
push dword [0x409174]
call esi
push dword [0x409178]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push 8
pop eax
jmp 0x404bb3
push dword [0x40916c]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
or dword [0x40b25c], 0xffffffff
call esi
push dword [0x409168]
call esi
call fcn.00403cd2
push 0x30
push edi
push 0xb8
mov dword [0x40916c], ebp
mov dword [0x409168], ebp
call fcn.0040116f
push eax
push edi
push 0xb9
call fcn.0040116f
push eax
push dword [0x409174]
call dword [0x409128]
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa22c
ret 8