Function at 0x1009851
Capabilities:
Download url
Read file on windows
Receive data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
xor edi, edi
or eax, 0xffffffff
mov ecx, 0x1012680
mov dword [0x1012e58], edi
mov dword [0x1012278], edi
mov dword [0x1012e54], eax
mov dword [0x1012e50], 0x1012280
mov dword [0x1012e5c], ecx
xor esi, esi
mov word [0x1012280], di
jmp 0x1009898
mov ecx, dword [0x1012e5c]
push 4
pop ebx
movsx edx, word [esi*2 + 0x100e2d0]
cmp edx, edi
jne 0x1009982
cmp eax, edi
jge 0x10098ca
call fcn.0100c00c
cmp eax, edi
mov ecx, dword [0x1012e5c]
mov dword [0x1012e54], eax
jge 0x10098ca
xor eax, eax
mov dword [0x1012e54], eax
movsx edx, word [esi*2 + 0x100e4e8]
cmp edx, edi
je 0x1009943
add edx, eax
js 0x1009943
cmp edx, 0x11d
jg 0x1009943
add edx, edx
movsx ebx, word [edx + 0x100eaf0]
cmp ebx, eax
jne 0x1009943
mov eax, dword [0x1012e50]
cmp eax, 0x1012666
jae 0x100a4e2
movsx esi, word [edx + 0x100e8b0]
inc eax
inc eax
mov dword [0x1012e50], eax
mov word [eax], si
add dword [0x1012e5c], 4
mov eax, dword [0x1012668]
mov ecx, dword [0x1012e5c]
mov dword [ecx], eax
or eax, 0xffffffff
cmp dword [0x1012278], edi
mov dword [0x1012e54], eax
jle 0x1009892
dec dword [0x1012278]
jmp 0x1009892
movsx edx, word [esi*2 + 0x100e698]
cmp edx, edi
je 0x100a36f
add edx, eax
js 0x100a36f
cmp edx, 0x11d
jg 0x100a36f
add edx, edx
movsx ebx, word [edx + 0x100eaf0]
cmp ebx, eax
jne 0x100a36f
movsx edx, word [edx + 0x100e8b0]
push 4
pop ebx
lea eax, [edx + edx]
mov dword [ebp - 0x1c], eax
movsx eax, word [eax + 0x100e220]
mov dword [ebp - 0x14], eax
shl eax, 2
mov esi, ecx
sub esi, eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 4]
add edx, 0xfffffff7
cmp edx, 0x4e
mov dword [0x101266c], eax
ja case.0x10099b0.11
jmp dword [edx*4 + 0x100a4f4]
xor eax, eax
inc eax
mov dword [0x1012e6c], eax
jmp 0x10099c9
xor eax, eax
inc eax
mov dword [0x1012e70], eax
mov dword [0x1012e68], eax
mov dword [0x1012e80], eax
jmp case.0x10099b0.11
mov eax, dword [ecx]
mov dword [0x101266c], eax
jmp 0x10099e7
mov dword [0x101266c], edi
mov dword [0x1012e6c], ebx
mov dword [0x1012e68], ebx
mov dword [0x1012e80], 2
jmp case.0x10099b0.11
push 5
pop eax
mov dword [0x1012e6c], eax
mov dword [0x1012e68], eax
mov dword [0x1012e80], 3
push dword [ecx]
call fcn.010062c2
jmp 0x100a291
push dword [ecx]
call fcn.010065fa
jmp 0x100a291
push 0xffffffffffffffff
push dword [ecx - 4]
push dword [ecx - 0x1c]
call fcn.010061a1
mov dword [0x101266c], eax
jmp 0x1009a74
lea eax, [ebp - 4]
push eax
push dword [ecx - 4]
call fcn.0100c12a
push dword [ebp - 4]
push eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x1c]
call fcn.010061a1
mov dword [0x101266c], eax
mov eax, dword [0x1012e5c]
push dword [eax - 4]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax - 0x1c]
jmp 0x100a28c
push edi
push edi
mov esi, 0x1011fb0
push esi
push dword [ecx - 4]
push edi
call sub.urlmon.dll_URLDownloadToFileW
test eax, eax
je 0x1009aa4
push edi
push edi
push edi
push 0x700
call dword [sym.imp.KERNEL32.dll_RaiseException]
push 0x100157c
push esi
call dword [sym.imp.msvcrt.dll__wfopen]
cmp eax, edi
pop ecx
pop ecx
mov dword [0x10121b8], eax
jne 0x1009ace
push edi
push edi
push edi
push 0x700
call dword [sym.imp.KERNEL32.dll_RaiseException]
push dword [eax + 0x10]
call dword [sym.imp.msvcrt.dll__filelength]
mov esi, eax
cmp esi, 0xffffffff
pop ecx
jne 0x1009aed
push edi
push edi
push edi
push 0x700
call dword [sym.imp.KERNEL32.dll_RaiseException]
push esi
call fcn.0100c5a4
push dword [0x10121b8]
mov ebx, eax
push esi
push 1
push ebx
call dword [sym.imp.msvcrt.dll_fread]
add esp, 0x10
inc eax
cmp eax, esi
jge 0x1009b1b
push edi
push edi
push edi
push 0x700
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, dword [0x10121b8]
mov eax, dword [eax + 0xc]
test al, 0x10
jne 0x1009b39
test al, 0x20
je 0x1009b39
push edi
push edi
push edi
push 0x700
call dword [sym.imp.KERNEL32.dll_RaiseException]
push dword [0x10121b8]
call dword [sym.imp.msvcrt.dll_fclose]
mov eax, dword [0x1012e5c]
pop ecx
push esi
push ebx
mov dword [0x10121b8], edi
push dword [eax - 0x1c]
call fcn.010061a1
mov dword [0x101266c], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x1c]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax - 4]
call fcn.0100c41a
push 4
pop ebx
jmp 0x100a291
push 0xffffffffffffffff
push 0x1001b7c
push dword [ecx - 0xc]
call fcn.010061a1
mov dword [0x101266c], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0xc]
jmp 0x100a28c
mov dword [0x100e014], 1
jmp case.0x10099b0.11
mov dword [0x100e014], 0x10
jmp case.0x10099b0.11
mov dword [0x100e014], 2
jmp case.0x10099b0.11
mov dword [0x100e014], 3
jmp case.0x10099b0.11
mov dword [0x100e014], 5
jmp case.0x10099b0.11
mov dword [0x100e014], 7
jmp case.0x10099b0.11
mov dword [0x100e014], 0xa
jmp case.0x10099b0.11
mov dword [0x100e014], 0xe
jmp case.0x10099b0.11
push 0x10
call fcn.0100c5a4
xor esi, esi
inc esi
push esi
mov dword [0x101266c], eax
call fcn.010079d3
mov ecx, dword [0x101266c]
mov dword [ecx], eax
mov eax, dword [0x101266c]
push edi
push dword [eax]
call fcn.01006411
mov ecx, dword [0x1012e5c]
xor eax, eax
cmp dword [ecx - 0xc], edi
mov ecx, dword [0x101266c]
setne al
lea eax, [eax*4 + 1]
mov dword [ecx + 4], eax
mov dword [0x1012e6c], 6
mov dword [0x1012e68], 3
mov dword [0x1012e80], esi
jmp 0x100a291
push 0x10
call fcn.0100c5a4
push 2
mov dword [0x101266c], eax
call fcn.010079d3
mov ecx, dword [0x101266c]
mov dword [ecx], eax
mov eax, dword [0x101266c]
push edi
push dword [eax]
call fcn.01006411
mov ecx, dword [0x1012e5c]
xor eax, eax
cmp dword [ecx - 4], edi
mov ecx, dword [0x101266c]
setne al
lea eax, [eax*4 + 1]
mov dword [ecx + 4], eax
mov dword [0x1012e6c], 6
mov dword [0x1012e68], 3
mov dword [0x1012e80], 1
jmp 0x100a291
push 0x10
call fcn.0100c5a4
mov edx, dword [0x1012e5c]
xor ecx, ecx
mov dword [0x101266c], eax
cmp dword [edx - 4], edi
setne cl
lea ecx, [ecx*4 + 2]
mov dword [eax + 4], ecx
mov dword [0x1012e6c], 7
jmp 0x1009f09
mov eax, dword [ecx]
mov dword [0x1012e6c], 8
jmp 0x1009daf
mov eax, dword [ecx - 8]
push dword [eax]
mov esi, dword [sym.imp.msvcrt.dll_wcslen]
call esi
mov ecx, dword [0x1012e5c]
push dword [ecx]
mov dword [ebp - 8], eax
call esi
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
add ecx, eax
lea eax, [ecx + ecx + 0x14]
push eax
call fcn.0100c5a4
mov esi, eax
mov eax, dword [0x1012e5c]
push dword [eax]
mov eax, dword [eax - 8]
push dword [eax]
push 0x1001cd0
push esi
call dword [sym.imp.ntdll.dll_swprintf]
mov eax, dword [0x1012e5c]
mov eax, dword [eax - 8]
add esp, 0x10
push dword [eax]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
mov eax, dword [eax - 8]
mov dword [eax], esi
mov ecx, dword [0x1012e5c]
mov eax, dword [ecx - 8]
mov dword [0x1012e6c], 9
mov dword [0x101266c], eax
mov dword [0x1012e68], 6
mov dword [0x1012e80], ebx
jmp case.0x10099b0.11
push 0x10
call fcn.0100c5a4
mov edx, dword [0x1012e5c]
mov dword [0x101266c], eax
xor ecx, ecx
cmp dword [edx - 0x10], edi
setne cl
lea ecx, [ecx*4 + 3]
mov dword [eax + 4], ecx
mov eax, dword [0x1012e5c]
mov eax, dword [eax]
mov ecx, dword [0x101266c]
mov dword [ecx + 8], eax
mov eax, dword [0x1012e5c]
mov eax, dword [eax - 8]
mov ecx, dword [0x101266c]
mov dword [ecx], eax
jmp 0x100a291
mov eax, dword [ecx - 4]
jmp 0x1009fd6
push dword [ecx]
call fcn.0100c632
mov dword [0x101266c], eax
mov eax, dword [0x1012e5c]
push dword [eax]
jmp 0x100a28c
push dword [ecx]
call fcn.0100c632
mov dword [0x101266c], eax
jmp 0x100a291
cmp dword [0x1012224], 0x64
jne 0x1009ea9
mov eax, dword [0x1012228]
add eax, 4
push eax
push dword [0x101221c]
call fcn.0100c5d4
cmp eax, edi
mov dword [0x101221c], eax
jne 0x1009e75
push 0x1001cb0
call dword [sym.imp.msvcrt.dll_perror]
pop ecx
push dword [0x101221c]
call fcn.0100c436
mov dword [0x1012228], eax
mov eax, dword [0x101222c]
imul eax, eax, 0x190
add eax, dword [0x101221c]
inc dword [0x101222c]
mov dword [0x1012220], eax
mov dword [0x1012224], edi
jmp 0x1009eae
mov eax, dword [0x1012220]
push 0x10
mov dword [eax], edi
call fcn.0100c5a4
mov edx, dword [0x1012e5c]
mov dword [0x101266c], eax
xor ecx, ecx
cmp dword [edx - 0xc], edi
setne cl
lea ecx, [ecx*4 + 4]
mov dword [eax + 4], ecx
mov eax, dword [0x101221c]
mov ecx, dword [0x101266c]
mov dword [ecx], eax
mov dword [0x1012224], edi
mov dword [0x101222c], edi
mov dword [0x101221c], edi
mov dword [0x1012220], edi
mov dword [0x1012228], edi
mov dword [0x1012e6c], 0xa
mov dword [0x1012e68], 6
mov dword [0x1012e80], ebx
jmp 0x100a291
cmp dword [0x1012224], 0x64
jne 0x1009f9c
add eax, 0x190
push eax
push dword [0x101221c]
call fcn.0100c5d4
push eax
mov dword [0x101221c], eax
call fcn.0100c436
mov dword [0x1012228], eax
mov eax, dword [0x101222c]
imul eax, eax, 0x190
add eax, dword [0x101221c]
mov dword [0x1012224], edi
inc dword [0x101222c]
mov ecx, dword [0x1012e5c]
mov dword [0x1012220], eax
jmp 0x1009fa1
mov eax, dword [0x1012228]
cmp eax, edi
jne 0x1009f1e
push 0x190
call fcn.0100c5a4
push eax
mov dword [0x101221c], eax
call fcn.0100c436
mov dword [0x1012228], eax
mov eax, dword [0x101221c]
jmp 0x1009f5f
mov eax, dword [0x1012220]
mov ecx, dword [ecx]
mov dword [eax], ecx
add dword [0x1012220], ebx
inc dword [0x1012224]
mov dword [0x1012e6c], 0xb
mov dword [0x1012e68], 7
mov dword [0x1012e80], 5
jmp 0x100a291
mov eax, dword [ecx]
mov dword [0x101266c], eax
jmp case.0x10099b0.11
push 1
call fcn.010079d3
mov esi, eax
mov eax, dword [esi]
mov dword [0x101266c], eax
cmp dword [esi + 4], edi
je 0x100a003
push edi
push edi
push edi
push 0x800
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, dword [0x101266c]
push dword [eax + 4]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax - 0x1c]
call fcn.0100c632
mov ecx, dword [0x101266c]
mov dword [ecx + 4], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x1c]
call fcn.0100c41a
push 0xc
call fcn.0100c5a4
push 0x1001ca4
mov dword [esi], eax
call fcn.0100c632
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esi]
push ebx
mov dword [eax], edi
call fcn.0100c5a4
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
push esi
mov dword [eax], edi
call fcn.0100632e
jmp 0x100a291
cmp dword [ecx - 0x10], edi
je 0x100a0fe
push 1
call fcn.010079d3
mov esi, eax
mov eax, dword [esi]
mov dword [0x101266c], eax
cmp dword [esi + 4], edi
je 0x100a098
push edi
push edi
push edi
push 0x800
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, dword [0x101266c]
push dword [eax + 4]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c632
mov ecx, dword [0x101266c]
mov dword [ecx + 4], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c41a
push 0xc
call fcn.0100c5a4
push 0x1001ca4
mov dword [esi], eax
call fcn.0100c632
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esi]
push ebx
mov dword [eax], edi
call fcn.0100c5a4
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
push esi
mov dword [eax], edi
call fcn.0100632e
jmp 0x100a137
push 0xc
call fcn.0100c5a4
mov dword [0x101266c], eax
mov dword [eax + 8], edi
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c632
mov ecx, dword [0x101266c]
mov dword [ecx + 4], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c41a
mov eax, dword [0x101266c]
mov dword [eax], edi
mov eax, dword [0x101266c]
or dword [eax], 1
jmp 0x100a291
cmp dword [ecx - 0x10], edi
je 0x100a1d6
push 1
call fcn.010079d3
mov esi, eax
mov eax, dword [esi]
mov dword [0x101266c], eax
cmp dword [esi + 4], edi
je 0x100a170
push edi
push edi
push edi
push 0x800
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, dword [0x101266c]
push dword [eax + 4]
call fcn.0100c41a
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c632
mov ecx, dword [0x101266c]
mov dword [ecx + 4], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c41a
push 0xc
call fcn.0100c5a4
push 0x1001ca4
mov dword [esi], eax
call fcn.0100c632
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esi]
push ebx
mov dword [eax], edi
call fcn.0100c5a4
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
push esi
mov dword [eax], edi
call fcn.0100632e
jmp 0x100a20f
push 0xc
call fcn.0100c5a4
mov dword [0x101266c], eax
mov dword [eax + 8], edi
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c632
mov ecx, dword [0x101266c]
mov dword [ecx + 4], eax
mov eax, dword [0x1012e5c]
push dword [eax - 0x18]
call fcn.0100c41a
mov eax, dword [0x101266c]
mov dword [eax], edi
mov eax, dword [0x101266c]
or dword [eax], 2
jmp 0x100a291
mov dword [0x101266c], edi
jmp case.0x10099b0.11
mov dword [0x101266c], 1
jmp case.0x10099b0.11
push edi
push edi
push edi
push 0x601
call dword [sym.imp.KERNEL32.dll_RaiseException]
push dword [ecx - 4]
call fcn.0100c632
jmp 0x100a27f
lea eax, [ebp - 0xc]
push eax
push dword [ecx - 4]
call fcn.0100c12a
mov esi, eax
cmp esi, edi
jne 0x100a265
push 0x1001c88
call dword [sym.imp.msvcrt.dll_perror]
pop ecx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xc]
push esi
call fcn.01009555
push esi
call fcn.0100c41a
mov eax, dword [ebp - 0x10]
mov dword [0x101266c], eax
mov eax, dword [0x1012e5c]
push dword [eax - 4]
call fcn.0100c41a
mov ecx, dword [0x1012e5c]
mov eax, dword [ebp - 0x14]
mov edx, dword [0x1012e50]
sub ecx, dword [ebp - 0x18]
neg eax
lea eax, [edx + eax*2]
mov dword [0x1012e50], eax
movsx edx, word [eax]
cmp edx, edi
mov dword [0x1012e5c], ecx
mov ecx, dword [ebp - 0x1c]
movsx ecx, word [ecx + 0x100e170]
jne 0x100a319
cmp ecx, edi
jne 0x100a319
push 2
pop esi
add eax, esi
mov dword [0x1012e50], eax
mov word [eax], si
add dword [0x1012e5c], ebx
mov eax, dword [0x101266c]
mov ecx, dword [0x1012e5c]
mov dword [ecx], eax
mov eax, dword [0x1012e54]
cmp eax, edi
jge 0x100a308
call fcn.0100c00c
cmp eax, edi
mov dword [0x1012e54], eax
jge 0x100a308
xor eax, eax
mov dword [0x1012e54], eax
cmp eax, edi
je 0x100a4de
mov ecx, dword [0x1012e5c]
jmp 0x100989b
lea esi, [ecx + ecx]
movsx ecx, word [esi + 0x100e848]
cmp ecx, edi
je 0x100a349
add ecx, edx
js 0x100a349
cmp ecx, 0x11d
jg 0x100a349
add ecx, ecx
movsx ebx, word [ecx + 0x100eaf0]
cmp ebx, edx
jne 0x100a349
movsx esi, word [ecx + 0x100e8b0]
jmp 0x100a350
movsx esi, word [esi + 0x100e480]
cmp eax, 0x1012666
jae 0x100a4e2
inc eax
inc eax
mov dword [0x1012e50], eax
mov word [eax], si
mov eax, dword [0x101266c]
jmp 0x100a419
cmp dword [0x1012278], edi
jne 0x100a392
push 0x1001c78
call fcn.0100ab65
inc dword [0x1012e58]
mov eax, dword [0x1012e54]
mov ecx, dword [0x1012e5c]
push 3
pop edx
cmp dword [0x1012278], edx
jge 0x100a432
mov dword [0x1012278], edx
mov edx, dword [0x1012e50]
mov esi, 0x100
movsx eax, word [edx]
movsx eax, word [eax*2 + 0x100e4e8]
cmp eax, edi
je 0x100a3d6
add eax, esi
js 0x100a3d6
cmp eax, 0x11d
jg 0x100a3d6
cmp word [eax*2 + 0x100eaf0], si
je 0x100a3f5
cmp edx, 0x1012280
jbe 0x100a4ec
dec edx
dec edx
sub ecx, 4
mov dword [0x1012e50], edx
mov dword [0x1012e5c], ecx
jmp 0x100a3b2
cmp edx, 0x1012666
jae 0x100a4e2
movsx esi, word [eax*2 + 0x100e8b0]
inc edx
inc edx
mov dword [0x1012e50], edx
mov word [edx], si
mov eax, dword [0x1012668]
add dword [0x1012e5c], 4
mov ecx, dword [0x1012e5c]
mov dword [ecx], eax
mov eax, dword [0x1012e54]
jmp 0x1009892
cmp eax, edi
je 0x100a4ec
or eax, 0xffffffff
mov dword [0x1012e54], eax
jmp 0x1009898
xor ebx, ebx
inc ebx
push ebx
call fcn.010079d3
push edi
push eax
mov dword [0x1012e78], eax
call fcn.01006411
mov eax, dword [0x1012e5c]
mov eax, dword [eax - 8]
mov dword [0x1012e7c], eax
mov eax, dword [0x1012e84]
cmp eax, edi
push 2
pop esi
mov dword [0x1012e6c], esi
mov dword [0x1012e68], esi
mov dword [0x1012e80], ebx
jne 0x100a48f
mov dword [0x1012e84], ebx
jmp 0x100a4da
cmp eax, esi
jmp 0x100a4ca
mov eax, dword [ecx - 8]
xor ecx, ecx
mov dword [0x1012e7c], eax
mov eax, dword [0x1012e84]
push 3
pop esi
inc ecx
cmp eax, edi
mov dword [0x1012e6c], esi
mov dword [0x1012e68], esi
mov dword [0x1012e80], ecx
jne 0x100a4c8
mov dword [0x1012e84], 2
jmp 0x100a4da
cmp eax, ecx
jne 0x100a4da
push edi
push edi
push edi
push 0xd00
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, esi
jmp 0x100a4ef
xor eax, eax
jmp 0x100a4ef
push 0x1001c64
call fcn.0100ab65
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret