Function at 0x408570
Capabilities:
Check if file exists
Check internet connectivity via wininet
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42eb8b
mov eax, dword fs:[0]
push eax
sub esp, 0x654
mov eax, dword [0x436064]
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
lea eax, [ebp - 0x210]
push eax
push 0
mov ebx, ecx
push 0
push ebx
lea edi, [ebp - 0x64c]
mov dword [ebp - 0x64c], 0
call fcn.00402b30
add esp, 0x10
mov ecx, 0x43405c
lea eax, [ebp - 0x210]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4085f0
test dl, dl
je 0x4085ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4085f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4085d0
xor eax, eax
jmp 0x4085f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4086a1
push 0x20
call fcn.0041ceb7
add esp, 4
lea ecx, [ebp - 0x310]
push ecx
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
mov esi, eax
call fcn.00402b30
lea edx, [ebp - 0x110]
push edx
push 0x22
push 0x22
push ebx
call fcn.00402b30
add esp, 0x20
push 5
push 0
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x310]
push ecx
push 0x4339a8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 2
je 0x40866f
mov dx, word [0x434068]
mov word [esi], dx
mov al, byte [0x43406a]
mov byte [esi + 2], al
jmp 0x40918c
mov ecx, dword [0x43406c]
mov dword [esi], ecx
mov edx, dword [0x434070]
mov dword [esi + 4], edx
mov eax, dword [0x434074]
mov dword [esi + 8], eax
mov cx, word [0x434078]
mov word [esi + 0xc], cx
mov dl, byte [0x43407a]
mov byte [esi + 0xe], dl
jmp 0x40918c
mov ecx, 0x43407c
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4086d0
test dl, dl
je 0x4086cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4086d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4086b0
xor eax, eax
jmp 0x4086d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408781
push 0x20
call fcn.0041ceb7
add esp, 4
mov esi, eax
lea eax, [ebp - 0x110]
push eax
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
call fcn.00402b30
lea ecx, [ebp - 0x310]
push ecx
push 0x22
push 0x22
push ebx
call fcn.00402b30
add esp, 0x20
push 0
push 0
lea edx, [ebp - 0x310]
push edx
lea eax, [ebp - 0x110]
push eax
push 0x4339a8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 2
je 0x408750
mov cx, word [0x434068]
mov word [esi], cx
mov dl, byte [0x43406a]
mov byte [esi + 2], dl
jmp 0x40918c
mov eax, dword [0x43406c]
mov dword [esi], eax
mov ecx, dword [0x434070]
mov dword [esi + 4], ecx
mov edx, dword [0x434074]
mov dword [esi + 8], edx
mov ax, word [0x434078]
mov word [esi + 0xc], ax
mov cl, byte [0x43407a]
mov byte [esi + 0xe], cl
jmp 0x40918c
mov ecx, 0x434088
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4087b0
test dl, dl
je 0x4087ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4087b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408790
xor eax, eax
jmp 0x4087b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4087ee
push eax
push eax
push 0x434090
push 0x434098
push 0x4339a8
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0x20
call fcn.0041ceb7
mov ecx, 7
mov esi, 0x4340a4
mov edi, eax
add esp, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x40918e
mov ecx, 0x4340c0
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408820
test dl, dl
je 0x40881c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408820
add eax, 2
add ecx, 2
test dl, dl
jne 0x408800
xor eax, eax
jmp 0x408825
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4088b4
lea edx, [ebp - 0x110]
push edx
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
call fcn.00402b30
lea eax, [ebp - 0x310]
push eax
push 0x22
push 0x22
push ebx
call fcn.00402b30
add esp, 0x20
push 0x40
lea ecx, [ebp - 0x310]
push ecx
lea edx, [ebp - 0x110]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x4340c8]
mov dword [eax], ecx
mov edx, dword [0x4340cc]
mov dword [eax + 4], edx
mov ecx, dword [0x4340d0]
mov dword [eax + 8], ecx
mov edx, dword [0x4340d4]
mov dword [eax + 0xc], edx
mov ecx, dword [0x4340d8]
mov dword [eax + 0x10], ecx
mov dl, byte [0x4340dc]
add esp, 4
mov byte [eax + 0x14], dl
jmp 0x40918e
mov ecx, 0x4340e0
lea eax, [ebp - 0x210]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4088e0
test dl, dl
je 0x4088dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4088e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4088c0
xor eax, eax
jmp 0x4088e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408985
mov esi, dword [sym.imp.WINMM.dll_mciSendCommandA]
lea eax, [ebp - 0x660]
push eax
push 0x2000
push 0x803
push 0
mov dword [ebp - 0x658], 0x4340ec
call esi
mov eax, dword [ebp - 0x65c]
lea ecx, [ebp - 0x51c]
push ecx
push 0x100
push 0x80d
push eax
mov edi, eax
call esi
lea edx, [ebp - 0x51c]
push edx
push 1
push 0x804
push edi
call esi
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x4340f4]
mov dword [eax], ecx
mov edx, dword [0x4340f8]
mov dword [eax + 4], edx
mov ecx, dword [0x4340fc]
mov dword [eax + 8], ecx
mov edx, dword [0x434100]
mov dword [eax + 0xc], edx
mov cx, word [0x434104]
mov word [eax + 0x10], cx
mov dl, byte [0x434106]
add esp, 4
mov byte [eax + 0x12], dl
jmp 0x40918e
mov ecx, 0x434108
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4089b0
test dl, dl
je 0x4089ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4089b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408990
xor eax, eax
jmp 0x4089b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408a55
mov esi, dword [sym.imp.WINMM.dll_mciSendCommandA]
lea eax, [ebp - 0x660]
push eax
push 0x2000
push 0x803
push 0
mov dword [ebp - 0x658], 0x4340ec
call esi
mov eax, dword [ebp - 0x65c]
lea ecx, [ebp - 0x51c]
push ecx
push 0x200
push 0x80d
push eax
mov edi, eax
call esi
lea edx, [ebp - 0x51c]
push edx
push 1
push 0x804
push edi
call esi
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x434114]
mov dword [eax], ecx
mov edx, dword [0x434118]
mov dword [eax + 4], edx
mov ecx, dword [0x43411c]
mov dword [eax + 8], ecx
mov edx, dword [0x434120]
mov dword [eax + 0xc], edx
mov cx, word [0x434124]
mov word [eax + 0x10], cx
mov dl, byte [0x434126]
add esp, 4
mov byte [eax + 0x12], dl
jmp 0x40918e
mov ecx, 0x434128
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408a80
test dl, dl
je 0x408a7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408a80
add eax, 2
add ecx, 2
test dl, dl
jne 0x408a60
xor eax, eax
jmp 0x408a85
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408c5d
lea eax, [ebp - 0x110]
push eax
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
call fcn.00402b30
lea eax, [ebp - 0x110]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408ab0
sub eax, edx
cmp byte [ebp + eax - 0x111], 0x5c
je 0x408ae2
lea edi, [ebp - 0x110]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x408ad0
mov cx, word [0x43412c]
mov word [edi], cx
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x408c28
push 1
call fcn.0041e44a
mov dword [ebp - 0x518], eax
xor eax, eax
add esp, 4
mov dword [ebp - 0x514], eax
push 0x434130
lea edi, [eax + 0x10]
lea esi, [ebp - 0x518]
mov dword [ebp - 4], eax
call fcn.00402ae0
lea eax, [ebp - 0x110]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408b30
sub eax, edx
add eax, 8
push eax
call fcn.0041ceb7
mov esi, eax
add esp, 4
lea eax, [ebp - 0x110]
push eax
push 0x434144
push esi
mov dword [ebp - 0x64c], esi
call fcn.0041d6a1
add esp, 0xc
lea ecx, [ebp - 0x648]
push ecx
push esi
call fcn.0041e722
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x408bdf
cmp ebx, 0xffffffff
je 0x408bdf
lea ecx, [ecx]
lea eax, [ebp - 0x624]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408b90
sub eax, edx
lea edx, [ebp - 0x624]
push edx
mov edi, eax
lea esi, [ebp - 0x518]
call fcn.00402ae0
push 0x43414c
mov edi, 1
call fcn.00402ae0
lea eax, [ebp - 0x648]
push eax
push ebx
call fcn.0041e849
add esp, 8
test eax, eax
je 0x408b80
push ebx
call fcn.0041e977
mov esi, dword [ebp - 0x64c]
add esp, 4
push esi
call fcn.0041d848
mov edi, dword [ebp - 0x518]
mov eax, edi
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408bf3
sub eax, edx
inc eax
push eax
call fcn.0041ceb7
mov esi, eax
mov edx, esi
add esp, 4
mov eax, edi
sub edx, edi
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408c10
push edi
call fcn.0041e410
add esp, 4
jmp 0x40918c
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x434150]
mov esi, eax
mov dword [esi], ecx
mov edx, dword [0x434154]
mov dword [esi + 4], edx
mov eax, dword [0x434158]
mov dword [esi + 8], eax
mov cx, word [0x43415c]
mov word [esi + 0xc], cx
add esp, 4
jmp 0x40918c
mov ecx, 0x434160
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408c88
test dl, dl
je 0x408c84
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408c88
add eax, 2
add ecx, 2
test dl, dl
jne 0x408c68
xor eax, eax
jmp 0x408c8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408e9a
lea edx, [ebp - 0x110]
push edx
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
call fcn.00402b30
add esp, 0x10
call fcn.00401b00
mov ebx, eax
mov esi, 0x29
mov dword [ebp - 0x514], ebx
call fcn.004011a0
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408cd0
sub eax, edx
mov edi, eax
call fcn.00403870
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408ce3
sub eax, edx
mov edx, eax
lea eax, [ebp - 0x110]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408cf7
sub eax, esi
add eax, edx
lea eax, [eax + edi + 0x80]
push eax
call fcn.0041ceb7
add esp, 4
lea ecx, [ebp - 0x110]
mov esi, eax
push ecx
mov dword [ebp - 0x64c], esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x408e4b
lea eax, [ebp - 0x110]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408d38
sub eax, edx
inc eax
push eax
call fcn.0041ceb7
mov ebx, eax
lea eax, [ebp - 0x110]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408d56
sub eax, edx
inc eax
push eax
call fcn.0041ceb7
add esp, 4
mov edi, eax
push edi
push ebx
push 0
lea edx, [ebp - 0x110]
push 0
push edx
call fcn.0041f103
add esp, 0x14
push edi
push ebx
call fcn.00403870
push eax
mov esi, 0x29
call fcn.004011a0
push eax
mov eax, dword [ebp - 0x64c]
push 0x433fcc
push eax
call fcn.0041d6a1
push ebx
call fcn.0041d848
add esp, 0x1c
push edi
call fcn.0041d848
mov esi, dword [ebp - 0x64c]
mov edi, dword [ebp - 0x514]
add esp, 4
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x64c]
push ecx
mov dword [ebp - 0x64c], ebx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
je 0x408df8
lea edx, [ebp - 0x110]
push edx
push esi
lea ecx, [ebp - 0x64c]
mov edx, edi
call fcn.00402300
add esp, 8
cmp eax, ebx
jne 0x408e05
push 0x7530
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x408dc4
push edi
call fcn.0041d848
add esp, 4
push esi
call fcn.0041d848
add esp, 4
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x434168]
mov dword [eax], ecx
mov edx, dword [0x43416c]
mov dword [eax + 4], edx
mov ecx, dword [0x434170]
mov dword [eax + 8], ecx
mov dx, word [0x434174]
add esp, 4
mov word [eax + 0xc], dx
jmp 0x40918e
push ebx
call fcn.0041d848
add esp, 4
push esi
call fcn.0041d848
add esp, 4
push 0x20
call fcn.0041ceb7
mov ecx, dword [0x43406c]
mov dword [eax], ecx
mov edx, dword [0x434070]
mov dword [eax + 4], edx
mov ecx, dword [0x434074]
mov dword [eax + 8], ecx
mov dx, word [0x434078]
mov word [eax + 0xc], dx
mov cl, byte [0x43407a]
add esp, 4
mov byte [eax + 0xe], cl
jmp 0x40918e
mov ecx, 0x434178
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408ec5
test dl, dl
je 0x408ec1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408ec5
add eax, 2
add ecx, 2
test dl, dl
jne 0x408ea5
xor eax, eax
jmp 0x408eca
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408f83
push 0x20
call fcn.0041ceb7
add esp, 4
lea edx, [ebp - 0x620]
push edx
push 0x22
push 0x22
push ebx
lea edi, [ebp - 0x64c]
mov esi, eax
call fcn.00402b30
lea eax, [ebp - 0x510]
push eax
push 0x22
push 0x22
push ebx
call fcn.00402b30
lea ecx, [ebp - 0x410]
push ecx
push 0x22
push 0x22
push ebx
call fcn.00402b30
lea edx, [ebp - 0x510]
push edx
lea edx, [ebp - 0x410]
lea ecx, [ebp - 0x620]
call fcn.00402150
add esp, 0x34
test eax, eax
je 0x408f5c
mov eax, dword [0x434184]
mov dword [esi], eax
mov ecx, dword [0x434188]
mov dword [esi + 4], ecx
mov edx, dword [0x43418c]
mov dword [esi + 8], edx
mov eax, dword [0x434190]
mov dword [esi + 0xc], eax
jmp 0x40918c
mov ecx, dword [0x434194]
mov dword [esi], ecx
mov edx, dword [0x434198]
mov dword [esi + 4], edx
mov eax, dword [0x43419c]
mov dword [esi + 8], eax
mov ecx, dword [0x4341a0]
mov dword [esi + 0xc], ecx
jmp 0x40918c
mov ecx, 0x4341a4
lea eax, [ebp - 0x210]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408fb0
test dl, dl
je 0x408fac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408fb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408f90
xor eax, eax
jmp 0x408fb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40906d
push 0x20
call fcn.0041ceb7
add esp, 4
mov esi, 0x28
mov edi, eax
call fcn.004011a0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40903a
push 0x43395c
call fcn.004011a0
push eax
call fcn.0041d831
add esp, 8
test eax, eax
je 0x409018
mov dx, word [0x434068]
mov word [edi], dx
mov cl, byte [0x43406a]
push eax
mov byte [edi + 2], cl
call fcn.0041dafa
add esp, 4
mov eax, edi
jmp 0x40918e
mov edx, dword [0x4341b8]
mov dword [edi], edx
mov ax, word [0x4341bc]
mov word [edi + 4], ax
mov cl, byte [0x4341be]
mov byte [edi + 6], cl
mov eax, edi
jmp 0x40918e
mov edx, dword [0x4341c0]
mov dword [edi], edx
mov eax, dword [0x4341c4]
mov dword [edi + 4], eax
mov ecx, dword [0x4341c8]
mov dword [edi + 8], ecx
mov dx, word [0x4341cc]
mov word [edi + 0xc], dx
mov al, byte [0x4341ce]
mov byte [edi + 0xe], al
mov eax, edi
jmp 0x40918e
mov ecx, 0x4341d0
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409098
test dl, dl
je 0x409094
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409098
add eax, 2
add ecx, 2
test dl, dl
jne 0x409078
xor eax, eax
jmp 0x40909d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409118
push 0x20
call fcn.0041ceb7
add esp, 4
mov esi, 0x28
mov edi, eax
call fcn.004011a0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4090ea
call fcn.004011a0
push eax
call fcn.0041e2e4
mov cx, word [0x434068]
mov word [edi], cx
mov dl, byte [0x43406a]
add esp, 4
mov byte [edi + 2], dl
mov eax, edi
jmp 0x40918e
mov eax, dword [0x4341e4]
mov dword [edi], eax
mov ecx, dword [0x4341e8]
mov dword [edi + 4], ecx
mov edx, dword [0x4341ec]
mov dword [edi + 8], edx
mov eax, dword [0x4341f0]
mov dword [edi + 0xc], eax
mov cl, byte [0x4341f4]
mov byte [edi + 0x10], cl
mov eax, edi
jmp 0x40918e
mov ecx, 0x4341f8
lea eax, [ebp - 0x210]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409143
test dl, dl
je 0x40913f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409143
add eax, 2
add ecx, 2
test dl, dl
jne 0x409123
xor eax, eax
jmp 0x409148
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409152
push eax
call fcn.0041ee71
lea eax, [ebp - 0x210]
lea edx, [eax + 1]
jmp 0x409160
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x409160
sub eax, edx
add eax, 0x20
push eax
call fcn.0041ceb7
add esp, 4
lea edx, [ebp - 0x210]
push edx
mov esi, eax
push 0x434200
push esi
call fcn.0041d6a1
add esp, 0xc
mov eax, esi
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.0041cec2
mov esp, ebp
pop ebp
ret