Function at 0x40ec70
Capabilities:
Access peb ldr_data
Check os version
Get kernel32 base address
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x454ae0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, ecx
mov ecx, edi
call fcn.0040e1b0
mov ecx, edi
call fcn.0040e370
call fcn.0043e731
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
xor ebx, ebx
push 0x457828
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], ebx
call fcn.00402ca0
mov eax, dword [edi]
mov ebp, dword [eax - 0xc]
test ebp, ebp
mov byte [esp + 0x28], 1
mov dword [esp + 0x34], ebp
jbe 0x40f0f8
lea ecx, [ecx]
test ebx, ebx
jl 0x410234
mov ecx, dword [edi]
mov edx, dword [ecx - 0xc]
cmp ebx, edx
jg 0x410234
mov al, byte [ecx + ebx]
cmp al, 0x5b
mov byte [esp + 0x30], al
jne 0x40ed0c
mov dword [esi + 0x68], 1
jmp 0x40f04e
cmp al, 0x5d
jne 0x40ed37
cmp dword [esi + 0x68], 1
jne 0x40eff2
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0040e3c0
lea ecx, [esp + 0x14]
mov dword [esi + 0x68], eax
call fcn.004014c0
jmp 0x40f04e
cmp al, 0x3d
jne 0x40efd1
mov eax, dword [esi + 0x68]
cmp eax, 2
jne 0x40ef32
lea ecx, [esp + 0x14]
call fcn.0040e150
mov eax, dword [edi]
lea edx, [ebx + 1]
push edx
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov ebp, esp
push eax
call fcn.00401c00
add eax, 0x10
mov dword [ebp], eax
add esp, 4
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 2
call fcn.004029c0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x28], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40edb1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov eax, dword [esp + 0x14]
push str.MAIN_PROJECT
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40edf5
lea edx, [esp + 0x10]
lea ecx, [esi + 0x74]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_VERSION
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40ee26
lea edx, [esp + 0x10]
lea ecx, [esi + 0x78]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_DOWNLOADURL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40ee5e
lea edx, [esp + 0x10]
lea ecx, [esi + 0x7c]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
mov dword [esi + 0x6c], 1
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_INFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40ee92
lea edx, [esp + 0x10]
lea ecx, [esi + 0x80]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_ENABLECk
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40eec6
lea edx, [esp + 0x10]
lea ecx, [esi + 0x88]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_WEBURL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40eefa
lea edx, [esp + 0x10]
lea ecx, [esi + 0x8c]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
mov eax, dword [esp + 0x14]
push str.MAIN_PROGINFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40efc6
lea edx, [esp + 0x10]
lea ecx, [esi + 0x90]
push edx
call fcn.004029c0
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
cmp eax, 3
je 0x40f05c
cmp eax, 4
je 0x40f1de
cmp eax, 5
je 0x40f2cc
cmp eax, 6
je 0x40f3d7
cmp eax, 7
je 0x40f4e2
cmp eax, 8
je 0x40f5ed
cmp eax, 0xb
je 0x40f6f8
cmp eax, 0xc
je 0x40f803
cmp eax, 0xa
je 0x40f90e
cmp eax, 0xd
je 0x40fa19
cmp eax, 0xe
je 0x40fa64
cmp eax, 0xf
je 0x40faaf
cmp eax, 0x10
je 0x40fae9
mov ecx, dword [esi + 0x3c]
add ecx, 0x64
cmp ecx, eax
je 0x40fb23
mov edx, dword [esi + 0x64]
add edx, 0xc8
cmp edx, eax
je 0x40ff70
lea ecx, [esp + 0x14]
call fcn.004014c0
jmp 0x40eff2
cmp al, 0x2f
jne 0x40eff2
lea eax, [ebx + 1]
test eax, eax
jl 0x410234
cmp eax, edx
jg 0x410234
cmp byte [eax + ecx], 0x2f
je 0x40f0f8
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
inc ebp
sub eax, ebp
or eax, ecx
jge 0x40f01f
push ebp
lea ecx, [esp + 0x18]
call fcn.00401530
mov edx, dword [esp + 0x14]
test ebp, ebp
mov al, byte [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + edx], al
jl 0x410234
mov eax, dword [esp + 0x14]
cmp ebp, dword [eax - 8]
jg 0x410234
mov dword [eax - 0xc], ebp
mov edx, dword [esp + 0x14]
mov byte [edx + ebp], 0
mov ebp, dword [esp + 0x34]
inc ebx
cmp ebx, ebp
jb 0x40ece0
jmp 0x40f0f8
lea ecx, [esp + 0x14]
call fcn.0040e150
mov edi, dword [edi]
inc ebx
push ebx
push ecx
mov dword [esp + 0x3c], esp
sub edi, 0x10
mov ebx, esp
push edi
call fcn.00401c00
add eax, 0x10
mov dword [ebx], eax
add esp, 4
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 3
call fcn.004029c0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x28], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f0bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov eax, dword [esp + 0x14]
push str.POINT_UP_VERSION
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f156
lea ecx, [esi + 0x144]
lea edx, [esp + 0x10]
push edx
call fcn.004029c0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x28], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f11b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f141
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8
mov eax, dword [esp + 0x14]
push str.POINT_UP_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f177
lea ecx, [esi + 0x148]
jmp 0x40f291
mov eax, dword [esp + 0x14]
push str.POINT_UP_INFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f198
lea ecx, [esi + 0x14c]
jmp 0x40f0ee
mov eax, dword [esp + 0x14]
push str.POINT_UP_ENABLECk
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f1b9
lea ecx, [esi + 0x154]
jmp 0x40f0ee
mov eax, dword [esp + 0x14]
push str.POINT_UP_PROGINFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f0f8
lea ecx, [esi + 0x158]
jmp 0x40f0ee
lea ecx, [esp + 0x14]
call fcn.0040e150
mov edi, dword [edi]
inc ebx
push ebx
push ecx
mov dword [esp + 0x3c], esp
sub edi, 0x10
mov ebx, esp
push edi
call fcn.00401c00
add eax, 0x10
mov dword [ebx], eax
add esp, 4
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 4
call fcn.004029c0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x28], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f241
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov eax, dword [esp + 0x14]
push str.SERVER_VERSION
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f275
lea ecx, [esi + 0xf8]
jmp 0x40f0ee
mov eax, dword [esp + 0x14]
push str.SERVER_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f2a7
lea ecx, [esi + 0xfc]
lea edx, [esp + 0x10]
push edx
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x40f0f8
mov eax, dword [esp + 0x14]
push str.SERVER_INFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f0f8
lea ecx, [esi + 0x100]
jmp 0x40f0ee
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 5
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.COPYRIGHT_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f34b
lea edx, [esp + 0x10]
lea ecx, [esi + 0xa8]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.COPYRIGHT_DAT_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f37d
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0xac]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.COPYRIGHT_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f3a8
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0xb0]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.COPYRIGHT_ENABLECK
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0xb8]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 6
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.HIDDEN_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f456
lea edx, [esp + 0x10]
lea ecx, [esi + 0xbc]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.HIDDEN_DAT_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f488
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0xc0]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.HIDDEN_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f4b3
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0xc4]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.HIDDEN_ENABLECK
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0xcc]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 7
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.HIDDEN_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f561
lea edx, [esp + 0x10]
lea ecx, [esi + 0xd0]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.HIDDEN_DAT_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f593
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0xd4]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.HIDDEN_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f5be
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0xd8]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.HIDDEN_ENABLECK
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0xe0]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 8
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.NCHAT_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f66c
lea edx, [esp + 0x10]
lea ecx, [esi + 0xe4]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.NCHAT_DAT_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f69e
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0xe8]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.NCHAT_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f6c9
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0xec]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.NCHAT_ENABLECK
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0xf4]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 9
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.OCX_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f777
lea edx, [esp + 0x10]
lea ecx, [esi + 0x108]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.OCX_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f7a9
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x10c]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.OCX_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f7d4
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x110]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.OCX_ENABLECk
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0x118]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0xa
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.UPNP_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f882
lea edx, [esp + 0x10]
lea ecx, [esi + 0x11c]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.UPNPDOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f8b4
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x120]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.UPNP_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f8df
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x124]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.UPNP_ENABLECk
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0x12c]
push edx
call fcn.004029c0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0xb
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov ecx, dword [esp + 0x14]
push str.SHARED_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f98d
lea edx, [esp + 0x10]
lea ecx, [esi + 0x130]
push edx
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.SHARED_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f9bf
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x134]
call fcn.004029c0
mov dword [esi + 0x6c], 1
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.SHARED_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40f9ea
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x138]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.SHARED_ENABLECk
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
lea edx, [esp + 0x10]
lea ecx, [esi + 0x140]
push edx
call fcn.004029c0
jmp 0x41020d
push 0x457828
push 0x459100
mov ecx, edi
call fcn.00405f00
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esi + 0x15c]
mov byte [esp + 0x2c], 0xc
call fcn.00404940
lea ecx, [esp + 0x34]
call fcn.004015a0
jmp 0x41020d
push 0x457828
push 0x459100
mov ecx, edi
call fcn.00405f00
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esi + 0x170]
mov byte [esp + 0x2c], 0xd
call fcn.00404940
lea ecx, [esp + 0x34]
call fcn.004015a0
jmp 0x41020d
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esi + 0x184]
mov byte [esp + 0x2c], 0xe
call fcn.00404940
lea ecx, [esp + 0x34]
call fcn.004015a0
jmp 0x41020d
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esi + 0x1c0]
mov byte [esp + 0x2c], 0xf
call fcn.00404940
lea ecx, [esp + 0x34]
call fcn.004015a0
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0x10
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov edx, dword [esp + 0x14]
push str.NAME
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fb9e
lea eax, [esp + 0x10]
push eax
mov ecx, esi
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_VERSION
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fbc6
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x34]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fbee
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 4]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_EXE
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fc16
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 8]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_PATH
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fc3e
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0xc]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_ENABLECK
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fc66
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x20]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_INFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fc8e
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x10]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_WEBURL
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fcb6
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x18]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_INSTALLCHK
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fcde
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x24]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_INSTALLVALUE
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fd06
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x28]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_SIZE
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fd2e
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x14]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_INSTALLCHKURL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fd56
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x2c]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_PROGINFO
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fd7e
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x1c]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_RESETINFO
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40fda6
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x38]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.ETC_END
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
call fcn.0044f73f
mov eax, dword [eax + 4]
cmp dword [eax + 0xf8], 1
jne 0x40fdea
mov eax, dword [esi + 0x34]
push str.P2PBooster
push eax
call fcn.0042e05b
add esp, 8
test eax, eax
je 0x41020d
push 0x3c
call fcn.0043eb95
add esp, 4
test eax, eax
je 0x40fe03
mov ecx, eax
call fcn.0040d7f0
mov edi, eax
jmp 0x40fe05
xor edi, edi
lea ebx, [esi + 4]
push ebx
lea ecx, [edi + 4]
call fcn.00402b00
push esi
mov ecx, edi
call fcn.00402b00
lea ebp, [esi + 8]
push ebp
lea ecx, [edi + 8]
call fcn.00402b00
lea eax, [esi + 0xc]
push eax
lea ecx, [edi + 0xc]
call fcn.00402b00
lea eax, [esi + 0x20]
push eax
lea ecx, [edi + 0x20]
call fcn.00402b00
lea eax, [esi + 0x10]
push eax
lea ecx, [edi + 0x10]
call fcn.00402b00
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.00402b00
lea eax, [esi + 0x14]
push eax
lea ecx, [edi + 0x14]
call fcn.00402b00
lea eax, [esi + 0x24]
push eax
lea ecx, [edi + 0x24]
call fcn.00402b00
lea eax, [esi + 0x28]
push eax
lea ecx, [edi + 0x28]
call fcn.00402b00
lea eax, [esi + 0x2c]
push eax
lea ecx, [edi + 0x2c]
call fcn.00402b00
lea eax, [esi + 0x34]
push eax
lea ecx, [edi + 0x34]
call fcn.00402b00
lea eax, [esi + 0x38]
push eax
lea ecx, [edi + 0x38]
call fcn.00402b00
lea eax, [esi + 0x1c]
push eax
lea ecx, [edi + 0x1c]
call fcn.00402b00
push 0x457828
mov ecx, ebx
call fcn.00402b20
push 0x457828
mov ecx, esi
call fcn.00402b20
push 0x457828
mov ecx, ebp
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0xc]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x20]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x10]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x18]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x14]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x24]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x28]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x2c]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x34]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x1c]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x38]
call fcn.00402b20
inc dword [esi + 0x3c]
push edi
lea ecx, [esi + 0x198]
call fcn.0040d760
jmp 0x41020d
lea ecx, [esp + 0x14]
call fcn.0040e150
inc ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edi
call fcn.00401c60
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.0040e2a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0x11
call fcn.004029c0
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 1
call fcn.004015a0
push 0x457828
push 0x459100
lea ecx, [esp + 0x18]
call fcn.00405f00
mov edx, dword [esp + 0x14]
push str.PRO_VERSION
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x40ffec
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x40]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_REG
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x410014
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x5c]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_DOWN_URL
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41003c
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x44]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_DOWN_EXE
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x410064
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x48]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_INFO
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41008c
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x4c]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.PRO_PROGINFO
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x4100b4
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi + 0x50]
call fcn.004029c0
jmp 0x41020d
mov edx, dword [esp + 0x14]
push str.PRO_ENABLECK
push edx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x4100dc
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0x54]
call fcn.004029c0
jmp 0x41020d
mov ecx, dword [esp + 0x14]
push str.PRO_HIDDEN
push ecx
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x410104
lea edx, [esp + 0x10]
push edx
lea ecx, [esi + 0x58]
call fcn.004029c0
jmp 0x41020d
mov eax, dword [esp + 0x14]
push str.ETC_MAINEND
push eax
call fcn.0042ddb9
add esp, 8
test eax, eax
jne 0x41020d
push 0x24
call fcn.0043eb95
add esp, 4
test eax, eax
je 0x410137
mov ecx, eax
call fcn.0040d870
mov edi, eax
jmp 0x410139
xor edi, edi
lea ebx, [esi + 0x40]
push ebx
mov ecx, edi
call fcn.00402b00
lea ebp, [esi + 0x5c]
push ebp
lea ecx, [edi + 0x1c]
call fcn.00402b00
lea eax, [esi + 0x44]
push eax
lea ecx, [edi + 4]
call fcn.00402b00
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 8]
call fcn.00402b00
lea eax, [esi + 0x54]
push eax
lea ecx, [edi + 0x14]
call fcn.00402b00
lea eax, [esi + 0x4c]
push eax
lea ecx, [edi + 0xc]
call fcn.00402b00
lea eax, [esi + 0x50]
push eax
lea ecx, [edi + 0x10]
call fcn.00402b00
lea eax, [esi + 0x58]
push eax
lea ecx, [edi + 0x18]
call fcn.00402b00
push 0x457828
lea ecx, [esi + 0x44]
call fcn.00402b20
push 0x457828
mov ecx, ebx
call fcn.00402b20
push 0x457828
mov ecx, ebp
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x48]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x54]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x4c]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x50]
call fcn.00402b20
push 0x457828
lea ecx, [esi + 0x58]
call fcn.00402b20
inc dword [esi + 0x64]
push edi
lea ecx, [esi + 0x1ac]
call fcn.0040d760
lea ecx, [esp + 0x14]
call fcn.004015a0
lea ecx, [esp + 0x10]
call fcn.004015a0
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret 8
push 0x80070057
call fcn.00401260
int3