Function at 0x10012660
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x201c
call fcn.10110210
mov eax, dword [0x101c6270]
xor eax, esp
mov dword [esp + 0x2018], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 0x2000
mov dword [esp + 0x14], eax
mov edi, ecx
lea eax, [esp + 0x24]
push 0
push eax
call fcn.1012bf20
add edi, 4
add esp, 0xc
mov dword [esp + 0x18], edi
cmp dword [edi + 0x14], 8
jb 0x100126b2
mov eax, dword [edi]
jmp 0x100126b4
mov eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.VERSION
push dword [esp + 0x24]
call esi
test eax, eax
jne 0x100126f2
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2018]
xor ecx, esp
call fcn.1010f54f
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0xc]
cmp dword [edi + 0x14], 8
jb 0x10012708
mov eax, dword [edi]
jmp 0x1001270a
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.STATE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100126d9
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c671
add esp, 4
mov ecx, ebx
push eax
call dword [esi + 0x64]
cmp dword [edi + 0x14], 8
jb 0x10012748
mov eax, dword [edi]
jmp 0x1001274a
mov eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.ORIGINAL_URL
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100126d9
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0xc0]
cmp dword [edi + 0x14], 8
jb 0x1001278c
mov eax, dword [edi]
jmp 0x1001278e
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push 0x101a400c
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100126d9
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0xc8]
cmp dword [edi + 0x14], 8
jb 0x100127ca
mov eax, dword [edi]
jmp 0x100127cc
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.NAME
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100126d9
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x14]
cmp dword [edi + 0x14], 8
jb 0x10012805
mov eax, dword [edi]
jmp 0x10012807
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.DATE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012832
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
cmp dword [edi + 0x14], 8
jb 0x1001283c
mov eax, dword [edi]
jmp 0x1001283e
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.DEST_DIR
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100126d9
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x74]
cmp dword [edi + 0x14], 8
jb 0x10012877
mov eax, dword [edi]
jmp 0x10012879
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push 0x101a3b7c
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100128a4
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x7c]
cmp dword [edi + 0x14], 8
jb 0x100128ae
mov eax, dword [edi]
jmp 0x100128b0
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.EXE_PARAM
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100128de
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x84]
cmp dword [edi + 0x14], 8
jb 0x100128e8
mov eax, dword [edi]
jmp 0x100128ea
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.AUTO_OPEN
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012934
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
push 0x101a3bc4
call fcn.1013a498
add esp, 8
mov ecx, ebx
test eax, eax
sete al
movzx eax, al
push eax
call dword [esi + 0x8c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x1001293e
mov eax, dword [edi]
jmp 0x10012940
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.AUTH_TOKEN
push dword [esp + 0x24]
call esi
test eax, eax
je 0x1001296e
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x94]
cmp dword [edi + 0x14], 8
jb 0x10012978
mov eax, dword [edi]
jmp 0x1001297a
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.REPORTING_TOKEN
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100129a8
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0x9c]
cmp dword [edi + 0x14], 8
jb 0x100129b2
mov eax, dword [edi]
jmp 0x100129b4
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a3bc4
push str.BLOCK_COUNT
push dword [esp + 0x24]
call esi
test eax, eax
je 0x100129ee
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c671
add esp, 4
mov ecx, ebx
push eax
call dword [esi + 0x2c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
shl eax, 6
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1010fc7d
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x14], 8
jb 0x10012a23
mov ecx, dword [edi]
jmp 0x10012a25
mov ecx, edi
push ecx
push dword [esp + 0x20]
push eax
push 0x101a4228
push str.TOKENS
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012a9e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x34]
mov eax, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x1c], 0
call dword [eax + 0x30]
test eax, eax
jle 0x10012a9e
mov esi, dword [esp + 0x14]
xor edi, edi
nop
lea eax, [esp + 0x1c]
push eax
push 0x101a4238
push esi
call fcn.1013c76e
mov eax, dword [ebx]
add esp, 0xc
mov ecx, ebx
push esi
call dword [eax + 0x38]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, ebx
inc edi
lea esi, [esi + eax*2]
mov eax, dword [ebx]
add esi, 2
call dword [eax + 0x30]
cmp edi, eax
jl 0x10012a60
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push dword [esp + 0x14]
call fcn.1010fc86
mov eax, dword [ebx]
add esp, 4
mov ecx, ebx
call dword [eax + 0x30]
shl eax, 0xa
xor ecx, ecx
mov dword [esp + 0x18], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1010fc7d
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x14], 8
jb 0x10012adf
mov ecx, dword [edi]
jmp 0x10012ae1
mov ecx, edi
push ecx
push dword [esp + 0x1c]
push eax
push 0x101a4228
push str.QUERIES
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012b59
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x40]
push dword [esp + 0x14]
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x10012b59
mov esi, dword [esp + 0x14]
nop dword [eax]
lea eax, [esp + 0x18]
push eax
push 0x101a4238
push esi
call fcn.1013c76e
mov eax, dword [ebx]
add esp, 0xc
mov ecx, ebx
push esi
call dword [eax + 0x44]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2]
add esi, 2
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x10012b20
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push dword [esp + 0x14]
call fcn.1010fc86
add esp, 4
cmp dword [edi + 0x14], 8
jb 0x10012b6f
mov eax, dword [edi]
jmp 0x10012b71
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.COMPRESSED_SIZE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012bac
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0x54]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012bb6
mov eax, dword [edi]
jmp 0x10012bb8
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.UNCOMPRESSED_SIZE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012bf3
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0x5c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012bfd
mov eax, dword [edi]
jmp 0x10012bff
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.BLOCK_DOWNLOADED_SIZE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012c3d
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0xf0]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012c47
mov eax, dword [edi]
jmp 0x10012c49
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.TOTAL_DOWNLOADED_SIZE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012c87
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0xf8]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012c91
mov eax, dword [edi]
jmp 0x10012c93
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.EXTRACTED_SIZE
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012cd1
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0x100]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012cdb
mov eax, dword [edi]
jmp 0x10012cdd
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.CHKPT_ID
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012d1a
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c671
add esp, 4
mov ecx, ebx
push eax
call dword [esi + 0xa4]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012d24
mov eax, dword [edi]
jmp 0x10012d26
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.CHKPT_DIR
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012d54
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call dword [eax + 0xac]
cmp dword [edi + 0x14], 8
jb 0x10012d5e
mov eax, dword [edi]
jmp 0x10012d60
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.SAVE_INTERVAL
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012d9e
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c647
add esp, 4
mov ecx, ebx
push edx
push eax
call dword [esi + 0xb4]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012da8
mov eax, dword [edi]
jmp 0x10012daa
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.USE_AKAMAI
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012df4
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
push 0x101a3bc4
call fcn.1013a498
add esp, 8
mov ecx, ebx
test eax, eax
sete al
movzx eax, al
push eax
call dword [esi + 0xe0]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012dfe
mov eax, dword [edi]
jmp 0x10012e00
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.HTTP_FALLBACK
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012e4a
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
push 0x101a3bc4
call fcn.1013a498
add esp, 8
mov ecx, ebx
test eax, eax
sete al
movzx eax, al
push eax
call dword [esi + 0x10c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012e54
mov eax, dword [edi]
jmp 0x10012e56
mov eax, edi
push eax
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.SUPPLEMENT_RETRY
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012e93
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c671
add esp, 4
mov ecx, ebx
push eax
call dword [esi + 0x128]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [edi + 0x14], 8
jb 0x10012e9b
mov edi, dword [edi]
push edi
push 0x1000
lea eax, [esp + 0x28]
push eax
push 0x101a4228
push str.BLOCK_ID
push dword [esp + 0x24]
call esi
test eax, eax
je 0x10012ecf
mov esi, dword [ebx]
lea eax, [esp + 0x20]
push eax
call fcn.1013c671
add esp, 4
mov ecx, ebx
push eax
call dword [esi + 0x24]
mov ecx, dword [esp + 0x2024]
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1010f54f
mov esp, ebp
pop ebp
ret 8