Function at 0x10007080
Capabilities:
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x74
push 0xffffffffffffffff
push 0x10070848
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x1008ab54]
xor eax, ebp
mov dword [ebp + 0x70], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
push 8
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov eax, dword [ebp + 0x7c]
cmp eax, 0x400
jne 0x100073a0
mov dword [ebp - 4], ebx
call fcn.10008db0
add eax, 0x18
push eax
lea esi, [ebp + 0x38]
call fcn.100015c0
mov byte [ebp - 4], 1
cmp dword [ebp + 0x4c], ebx
jne 0x10007108
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp + 0x50], 0x10
jb 0x10007101
mov eax, dword [ebp + 0x3c]
push eax
call fcn.1003efae
add esp, 4
xor eax, eax
jmp 0x10007375
lea ecx, [ebp + 0x18]
push ecx
mov ecx, 0x1008c384
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0xc], ebx
call fcn.10003790
push 1
push 0x1007778c
lea edx, [ebp + 0x18]
push edx
mov byte [ebp - 4], 2
call fcn.10008280
mov eax, str.Promote
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10007138
sub eax, edx
push eax
push str.Promote
lea eax, [ebp + 0x18]
push eax
call fcn.10008280
push 1
push 0x10077790
lea ecx, [ebp + 0x18]
push ecx
call fcn.10008280
mov eax, 0x1008c390
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10007170
sub eax, edx
push eax
push 0x1008c390
lea edx, [ebp + 0x18]
push edx
call fcn.10008280
push 1
push 0x10077794
lea eax, [ebp + 0x18]
push eax
call fcn.10008280
mov eax, dword [ebp + 0x18]
cmp dword [eax - 4], 1
mov esi, dword [eax - 0xc]
jle 0x100071b4
mov ecx, esi
push ecx
lea ecx, [ebp + 0x18]
call fcn.10001a90
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ebx, 0x10
cmp dword [ebp + 0x50], ebx
jae 0x100071c4
lea ecx, [ebp + 0x3c]
mov edx, dword [ebp + 0x4c]
push eax
push edx
lea eax, [ebp + 0xc]
push eax
lea edx, [ebp + 0x14]
push edx
mov edx, esi
call fcn.1000aaa0
add esp, 0x10
test al, al
je 0x10007335
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x10007335
lea edi, [ebp + 0x10]
call fcn.1001f090
mov edx, str.TaoTaoSouhlog
mov byte [ebp - 4], 3
call fcn.10001940
mov eax, dword [ebp + 0x10]
cmp dword [eax - 4], 1
jle 0x1000721b
mov eax, dword [eax - 0xc]
push eax
mov ecx, edi
call fcn.10001bc0
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp + 0x38]
call fcn.1001f6c0
mov ecx, dword [ebp + 0xc]
add esp, 4
push ecx
push esi
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x6c], 0xf
mov dword [ebp + 0x68], 0
mov byte [ebp + 0x58], 0
call fcn.10002650
push esi
mov byte [ebp - 4], 4
call fcn.1003efae
add esp, 4
lea edx, [ebp - 0x78]
push edx
call fcn.10017ca0
mov byte [ebp - 4], 5
cmp dword [ebp + 0x6c], ebx
mov ecx, dword [ebp + 0x58]
jae 0x1000726b
lea ecx, [ebp + 0x58]
lea eax, [ebp + 0x14]
push eax
call fcn.10003790
lea ecx, [ebp + 0x14]
push ecx
lea edx, [ebp + 0xc]
mov bl, 6
push edx
mov byte [ebp - 4], bl
call fcn.100200d0
add esp, 8
push eax
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 7
call fcn.10017f40
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100072b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100072dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [ebp - 0x78]
call fcn.10019c60
test al, al
je 0x10007302
mov eax, esi
call fcn.10019f40
test al, al
je 0x10007302
mov edi, esi
call fcn.10019860
mov ecx, esi
push ecx
call fcn.10019b00
lea eax, [ebp - 0x78]
call fcn.10017dd0
lea ecx, [ebp + 0x54]
call fcn.100027b0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10007335
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10007358
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp + 0x50], 0x10
jb 0x1000736a
mov ecx, dword [ebp + 0x3c]
push ecx
call fcn.1003efae
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x70]
xor ecx, ebp
call fcn.10048e2f
add ebp, 0x74
mov esp, ebp
pop ebp
ret
cmp eax, 0x401
jne 0x1000736a
lea edi, [ebp + 0xc]
mov dword [ebp - 4], 9
call fcn.1001f090
push 0xf
push str.TaoTaoSouhlog
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.10001ec0
mov eax, dword [ebp + 0xc]
mov edi, 1
cmp dword [eax - 4], edi
jle 0x100073e4
mov edx, dword [eax - 0xc]
push edx
lea ecx, [ebp + 0xc]
call fcn.10001bc0
mov eax, dword [ebp + 0xc]
push eax
lea esi, [ebp + 0x54]
call fcn.1001f650
add esp, 4
lea eax, [ebp + 0x10]
mov byte [ebp - 4], 0xb
push eax
mov ecx, 0x1008c384
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], ebx
call fcn.10003790
push edi
push 0x1007778c
lea ecx, [ebp + 0x10]
push ecx
mov byte [ebp - 4], 0xc
call fcn.10008280
mov eax, str.Promote
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10007423
sub eax, edx
push eax
push str.Promote
lea edx, [ebp + 0x10]
push edx
call fcn.10008280
push edi
push 0x10077790
lea eax, [ebp + 0x10]
push eax
call fcn.10008280
mov eax, 0x1008c390
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10007454
sub eax, edx
push eax
push 0x1008c390
lea ecx, [ebp + 0x10]
push ecx
call fcn.10008280
push edi
push 0x10077794
lea edx, [ebp + 0x10]
push edx
call fcn.10008280
mov eax, dword [ebp + 0x10]
cmp dword [eax - 4], edi
mov esi, dword [eax - 0xc]
jle 0x10007496
mov eax, esi
push eax
lea ecx, [ebp + 0x10]
call fcn.10001a90
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x6c], 0x10
mov ecx, dword [ebp + 0x58]
jae 0x100074a2
lea ecx, [ebp + 0x58]
mov edx, dword [ebp + 0x68]
push eax
push edx
lea eax, [ebp + 0x18]
push eax
lea edx, [ebp + 0x14]
push edx
mov edx, esi
call fcn.1000aaa0
add esp, 0x10
test al, al
je 0x10007693
mov esi, dword [ebp + 0x14]
cmp esi, ebx
je 0x10007693
mov eax, dword [ebp + 0x18]
push eax
push esi
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x34], 0xf
mov dword [ebp + 0x30], ebx
mov byte [ebp + 0x20], 0
call fcn.10002650
push esi
mov byte [ebp - 4], 0xd
call fcn.1003efae
add esp, 4
lea ecx, [ebp - 0x78]
push ecx
call fcn.10017ca0
mov bl, 0xe
mov byte [ebp - 4], bl
cmp dword [ebp + 0x34], 0x10
mov ecx, dword [ebp + 0x20]
jae 0x1000750e
lea ecx, [ebp + 0x20]
lea edx, [ebp + 0x14]
push edx
call fcn.10003790
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0x18]
push ecx
mov byte [ebp - 4], 0xf
call fcn.100200d0
add esp, 8
push eax
lea edx, [ebp - 0x78]
push edx
mov byte [ebp - 4], 0x10
call fcn.10017f40
mov byte [ebp - 4], 0xf
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000755c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000757e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [ebp - 0x78]
call fcn.10019c60
test al, al
je 0x10007681
lea edi, [ebp + 0x14]
call fcn.1001f090
mov edx, str.TaoTaoSouRunConfig.ini
mov byte [ebp - 4], 0x11
call fcn.10001940
mov ecx, edi
call fcn.10001980
push eax
push 0
push str.hlog
push str.Main
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea ecx, [ebp + 4]
push ecx
mov esi, eax
call fcn.10049bad
mov ecx, dword [ebp + 4]
mov eax, esi
cdq
add esp, 4
sub ecx, eax
mov eax, dword [ebp + 8]
sbb eax, edx
mov dword [ebp - 0x14], eax
js 0x10007679
jg 0x100075f0
cmp ecx, 0x93a80
jbe 0x10007679
lea esi, [ebp + 0x18]
call fcn.10001870
mov bl, 0x12
mov byte [ebp - 4], bl
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
push ecx
push edx
push 0x10077b18
mov edi, esi
call fcn.10002190
add esp, 0xc
lea edi, [ebp - 0x14]
call fcn.1001f090
push str.TaoTaoSouRunConfig.ini
push eax
lea eax, [ebp]
push eax
mov byte [ebp - 4], 0x13
call fcn.10006f10
mov eax, dword [eax]
mov ecx, dword [ebp + 0x18]
add esp, 0xc
push eax
push ecx
push str.hlog
push str.Main
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp]
call fcn.1001b8d0
mov eax, edi
mov byte [ebp - 4], bl
call fcn.1001b8d0
lea edi, [ebp - 0x78]
call fcn.10019860
mov edx, edi
push edx
call fcn.10019b00
mov ecx, edi
call fcn.10019f80
mov eax, esi
call fcn.1001b8d0
lea eax, [ebp + 0x14]
call fcn.1001b8d0
lea eax, [ebp - 0x78]
call fcn.10017dd0
lea ecx, [ebp + 0x1c]
call fcn.100027b0
xor ebx, ebx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100076b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp + 0x6c], 0x10
jb 0x100076c8
mov ecx, dword [ebp + 0x58]
push ecx
call fcn.1003efae
add esp, 4
mov byte [ebp - 4], 9
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov dword [ebp + 0x6c], 0xf
mov dword [ebp + 0x68], ebx
mov byte [ebp + 0x58], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000736a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x1000736a