Function at 0x40ede0
Capabilities:
Check os version
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0xdf4]
sub esp, 0xdf4
push 0xffffffffffffffff
push 0x446684
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x465d44]
xor eax, ebp
mov dword [ebp + 0xdf0], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x206
xor ebx, ebx
lea ecx, [ebp + 0xb7a]
xor eax, eax
push ebx
push ecx
mov word [ebp + 0xb78], ax
call fcn.004310d0
add esp, 0xc
mov dword [ebp - 0x14], ebx
call fcn.0040a010
cmp dword [eax + 0x238], 8
jb 0x40ee52
mov eax, dword [eax + 0x224]
jmp 0x40ee57
add eax, 0x224
push str.ProfilesBindingConfig.ini
push eax
lea edx, [ebp + 0xb78]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0xb78]
push ecx
call fcn.0041ec20
push 0x7fe
lea eax, [ebp + 0x172]
xor edx, edx
push ebx
push eax
mov word [ebp + 0x170], dx
call fcn.004310d0
add esp, 0x14
xor ecx, ecx
push 5
mov word [ebp + 0x120], cx
mov edi, 7
push str.00000
lea ecx, [ebp + 0x11c]
mov dword [ebp + 0x134], edi
mov dword [ebp + 0x130], ebx
call fcn.0040376d
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], ebx
je 0x40efc2
lea edx, [ebp + 0xb78]
push edx
push 0x3ff
lea eax, [ebp + 0x170]
push eax
push 0x44f5d0
push 0x44fb70
push str.ThunderInstall
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ecx, ecx
lea eax, [ebp + 0x170]
mov dword [ebp + 0x16c], edi
mov dword [ebp + 0x168], ebx
mov word [ebp + 0x158], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40ef16
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp + 0x170]
push edx
lea ecx, [ebp + 0x154]
call fcn.0040376d
push 1
push ebx
push 0x44fb6c
lea ecx, [ebp + 0x154]
mov byte [ebp - 4], 1
call fcn.0040cd10
push 1
push ebx
push 0x44fb68
lea ecx, [ebp + 0x154]
mov esi, eax
call fcn.0040cd10
cmp esi, 0xffffffff
je 0x40efa7
cmp eax, 0xffffffff
je 0x40efa7
sub eax, esi
dec eax
cmp eax, 5
jb 0x40efa7
cmp eax, edi
ja 0x40efa7
push eax
inc esi
push esi
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp + 0x154]
call fcn.0040a080
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x11c]
mov byte [ebp - 4], 2
call fcn.00403181
lea ecx, [ebp - 0x54]
call fcn.00404ec7
cmp dword [ebp + 0x16c], 8
mov byte [ebp - 4], bl
jb 0x40efc2
mov ecx, dword [ebp + 0x158]
push ecx
call fcn.00430dfa
add esp, 4
lea edx, [ebp - 0xd]
push edx
lea eax, [ebp - 0xd]
push eax
lea ecx, [ebp - 0x38]
call fcn.00403d1f
push 6
mov edi, 0xf
push str.xlbtid
lea ecx, [ebp + 0x154]
mov byte [ebp - 4], 3
mov dword [ebp + 0x16c], edi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea ecx, [ebp + 0x154]
push ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 4
call fcn.0040ec60
push 1
push 0x44fbe4
mov ecx, eax
call fcn.00404dad
mov esi, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], esi
jb 0x40f040
mov edx, dword [ebp + 0x158]
push edx
call fcn.00430dfa
add esp, 4
push 3
push 0x44fb64
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], edi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea eax, [ebp + 0x154]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.0040ec60
push 4
push str.1022
mov ecx, eax
call fcn.00404dad
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], esi
jb 0x40f0a0
mov ecx, dword [ebp + 0x158]
push ecx
call fcn.00430dfa
add esp, 4
mov eax, dword [ebp + 0xdfc]
push 0xa
lea edx, [ebp + 0xdd0]
push edx
push eax
call fcn.004324a0
add esp, 0xc
push 2
push 0x44fb58
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], edi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea ecx, [ebp + 0x154]
push ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 6
call fcn.0040ec60
lea edx, [ebp + 0xdd0]
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
cmp cl, bl
jne 0x40f0f8
sub edx, esi
push edx
lea edx, [ebp + 0xdd0]
push edx
mov ecx, eax
call fcn.00404dad
mov esi, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], esi
jb 0x40f130
mov eax, dword [ebp + 0x158]
push eax
call fcn.00430dfa
add esp, 4
push 0x11
mov dword [ebp - 0x18], esi
call fcn.0042ff98
mov ecx, dword [ebp - 0x18]
inc ecx
push ecx
mov esi, eax
push ebx
push esi
call fcn.004310d0
add esp, 0x10
push 0x800000
lea edx, [ebp - 0x18]
push edx
push esi
call fcn.00425ff2
push 6
push str.peerid
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], edi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea eax, [ebp + 0x154]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.0040ec60
mov edx, esi
mov edi, eax
lea eax, [edx + 1]
mov cl, byte [edx]
inc edx
cmp cl, bl
jne 0x40f198
sub edx, eax
push edx
push esi
mov ecx, edi
call fcn.00404dad
mov edi, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], edi
jb 0x40f1ca
mov ecx, dword [ebp + 0x158]
push ecx
call fcn.00430dfa
add esp, 4
push esi
call fcn.00431216
add esp, 4
push 9
mov esi, 0xf
push str.referfrom
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], esi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea edx, [ebp + 0x154]
push edx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 8
call fcn.0040ec60
push 1
push 0x44fbd4
mov ecx, eax
call fcn.00404dad
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], edi
jb 0x40f238
mov eax, dword [ebp + 0x158]
push eax
call fcn.00430dfa
add esp, 4
push 2
push 0x44fbd0
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], esi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea ecx, [ebp + 0x154]
push ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 9
call fcn.0040ec60
push 3
push 0x44fbcc
mov ecx, eax
call fcn.00404dad
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], edi
jb 0x40f298
mov edx, dword [ebp + 0x158]
push edx
call fcn.00430dfa
add esp, 4
lea eax, [ebp]
push eax
mov dword [ebp], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push 0x4f
lea ecx, [ebp + 0xd81]
push ebx
push ecx
mov byte [ebp + 0xd80], bl
call fcn.004310d0
movzx edx, byte [ebp + 0x11a]
movzx eax, word [ebp + 0x116]
movzx ecx, word [ebp + 0x114]
push edx
mov edx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push eax
lea ecx, [ebp + 0xd80]
push 0x44fbbc
push ecx
call fcn.004324ca
add esp, 0x28
push 9
push str.OSversion
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], esi
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea edx, [ebp + 0x154]
push edx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xa
call fcn.0040ec60
lea edx, [ebp + 0xd80]
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
cmp cl, bl
jne 0x40f332
sub edx, esi
push edx
lea ecx, [ebp + 0xd80]
push ecx
mov ecx, eax
call fcn.00404dad
mov byte [ebp - 4], 3
cmp dword [ebp + 0x16c], edi
jb 0x40f365
mov edx, dword [ebp + 0x158]
push edx
call fcn.00430dfa
add esp, 4
push 0xb
push str.productname
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], 0xf
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea eax, [ebp + 0x154]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xb
call fcn.0040ec60
mov esi, 8
push esi
push str.thunder9
mov ecx, eax
call fcn.00404dad
cmp dword [ebp + 0x16c], edi
jb 0x40f3c9
mov ecx, dword [ebp + 0x158]
push ecx
call fcn.00430dfa
add esp, 4
xor edx, edx
mov dword [ebp + 0x150], 7
mov dword [ebp + 0x14c], ebx
mov word [ebp + 0x13c], dx
push 0x206
lea ecx, [ebp + 0x972]
xor eax, eax
push ebx
push ecx
mov byte [ebp - 4], 0xc
mov word [ebp + 0x970], ax
call fcn.004310d0
add esp, 0xc
call fcn.0040a010
cmp dword [eax + 0x238], esi
jb 0x40f419
mov eax, dword [eax + 0x224]
jmp 0x40f41e
add eax, 0x224
push str.program_thunder.exe
push eax
lea edx, [ebp + 0x970]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp + 0x138]
push eax
lea ecx, [ebp + 0x970]
push ecx
call fcn.0041f240
add esp, 8
cmp dword [ebp + 0x150], esi
jb 0x40f45d
mov edi, dword [ebp + 0x13c]
cmp edi, ebx
jne 0x40f463
xor esi, esi
jmp 0x40f48e
lea edi, [ebp + 0x13c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x40f476
xor esi, esi
jmp 0x40f48e
lea esi, [eax + eax]
mov eax, esi
call fcn.00432430
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040c9e0
mov esi, eax
push 0xe
push str.productversion
lea ecx, [ebp + 0x154]
mov dword [ebp + 0x16c], 0xf
mov dword [ebp + 0x168], ebx
mov byte [ebp + 0x158], bl
call fcn.00404dad
lea edx, [ebp + 0x154]
push edx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.0040ec60
mov edx, esi
lea edi, [edx + 1]
mov edi, edi
mov cl, byte [edx]
inc edx
cmp cl, bl
jne 0x40f4d0
sub edx, edi
push edx
push esi
mov ecx, eax
call fcn.00404dad
cmp dword [ebp + 0x16c], 0x10
mov byte [ebp - 4], 0xc
jb 0x40f4fe
mov eax, dword [ebp + 0x158]
push eax
call fcn.00430dfa
add esp, 4
lea ecx, [ebp - 0x38]
push ecx
push str.http:__stat.download.xunlei.com:8099_
call fcn.00413ae0
mov ecx, eax
call fcn.00414170
mov esi, 8
cmp dword [ebp + 0x150], esi
jb 0x40f52f
mov edx, dword [ebp + 0x13c]
push edx
call fcn.00430dfa
add esp, 4
xor eax, eax
lea ecx, [ebp - 0x38]
mov dword [ebp + 0x150], 7
mov dword [ebp + 0x14c], ebx
mov word [ebp + 0x13c], ax
mov byte [ebp - 4], bl
call fcn.00403406
cmp dword [ebp + 0x134], esi
jb 0x40f56a
mov ecx, dword [ebp + 0x120]
push ecx
call fcn.00430dfa
add esp, 4
xor eax, eax
lea esp, [ebp - 0x64]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xdf0]
xor ecx, ebp
call fcn.004310bf
add ebp, 0xdf4
mov esp, ebp
pop ebp
ret 4