Function at 0x430430
Capabilities:
Allocate or change rwx memory
Check os version
Copy file
Create thread
Execute shellcode via indirect call
Get number of processors
Inject thread
Move file
Resolve function by parsing pe exports
Spawn thread to rwx shellcode

Disassembly:
push 0xffffffffffffffff
push 0x48b05d
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b2098]
xor eax, esp
push eax
lea eax, [esp + 0xfc]
mov dword fs:[0], eax
push str.ListURL
lea eax, [esp + 0x34]
push str.UPDATEINFO
push eax
call fcn.0040a300
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx - 0xc]
xor ebp, ebp
mov dword [esp + 0x104], ebp
cmp eax, ebp
je 0x4317c1
cmp eax, 5
jl 0x4317c1
lea edx, [esp + 0x48]
push edx
call fcn.00407280
add esp, 4
push 0xffffffffffffffff
push ebp
mov ecx, 0x4b37f0
mov byte [esp + 0x10c], 4
call fcn.00411f30
mov ecx, 0x4b3808
call fcn.00401f40
lea ecx, [esp + 0xd4]
call fcn.00411d00
lea ecx, [esp + 0xc0]
call fcn.00411d00
mov byte [esp + 0x104], 6
call fcn.0044ba29
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4304fb
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x5c], eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.try_to_download_the_list_file...
mov byte [esp + 0x10c], 7
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x48fda4
mov byte [esp + 0x110], 8
call fcn.00402410
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x110], 7
call fcn.00413c80
add esp, 0xc
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x108], 9
call fcn.004022f0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x104], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43058c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x5c]
push 0xffffffffffffffff
push ecx
lea eax, [edi - 0x10]
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
mov dword [esp + 0x4c], eax
call fcn.00401380
mov ecx, dword [esp + 0x118]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00408510
push edi
call fcn.0040ad00
add esp, 0x10
push str.checkforupdates
push str.runmode
mov ecx, 0x4b36dc
xor esi, esi
call fcn.0044fa66
push eax
call fcn.00403c20
add esp, 8
test al, al
je 0x4305ec
mov esi, 1
push str.appenternoprompt
push str.runmode
mov ecx, 0x4b36dc
call fcn.0044fa66
push eax
call fcn.00403c20
add esp, 8
test al, al
je 0x430612
mov esi, 1
push str.appenter
push str.runmode
mov ecx, 0x4b36dc
call fcn.0044fa66
push eax
call fcn.00403c20
add esp, 8
test al, al
je 0x430638
mov esi, 1
lea edx, [esp + 0x1c]
push edx
call fcn.0040a8e0
add esp, 4
xor bl, bl
mov byte [esp + 0x104], 0xa
cmp esi, ebp
je 0x43066c
push 0x48ffe0
push str.QuickCheck
push 0x48fd60
call fcn.00405850
add esp, 0xc
mov bl, al
push 0x48fd74
push str.CheckVerNumber
push str.APPLICATION
call fcn.00405850
add esp, 0xc
test al, al
jne 0x43078e
test bl, bl
je 0x43078e
push str..xml
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00403080
mov eax, dword [eax]
mov edx, dword [esp + 0x28]
add esp, 0xc
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4306d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str..xml
lea ecx, [esp + 0x20]
call fcn.00403300
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00406fa0
add esp, 4
call fcn.0042cfc0
push 0x490ef8
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.00403080
add esp, 0xc
push 0x48fda0
push 0x48fd98
lea ecx, [esp + 0x58]
mov byte [esp + 0x10c], 0x2c
call fcn.00402d90
mov ecx, dword [esp + 0x1c]
push 1
lea eax, [esp + 0xc4]
push eax
push ecx
call fcn.0042f450
mov eax, dword [esp + 0x5c]
push ebp
lea edx, [esp + 0xe4]
push edx
push eax
call fcn.0042f450
push 0x48fd74
push str.CheckLostFile
push 0x48fd60
call fcn.00405850
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0xec]
add esp, 0x24
cmp eax, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebp
jle 0x4315d7
mov dword [esp + 0x2c], ebp
mov bl, 0x2d
jmp 0x431297
mov edx, dword [esp + 0x1c]
push edx
call fcn.004086c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
push 0x493c00
push ecx
call fcn.00404d80
add esp, 0x10
mov eax, dword [eax]
push eax
mov ecx, 0x4b36dc
mov byte [esp + 0x108], 0xb
call fcn.0044fa66
lea edx, [esp + 0x30]
push edx
mov ecx, eax
call fcn.004022f0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4307f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, 0x4b3ad8
call fcn.00401f40
mov eax, dword [0x4b3848]
cmp eax, ebp
jle 0x430dfa
lea ecx, [esp + 0x20]
mov dword [0x4b3ad0], eax
call fcn.004013f0
mov eax, dword [0x4b3848]
cmp eax, ebp
mov byte [esp + 0x104], 0xc
mov dword [esp + 0x2c], ebp
jle 0x430d0c
mov bl, 0xe
xor ebp, ebp
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jl 0x430dbf
cmp esi, eax
jge 0x430dbf
mov ecx, dword [0x4b3844]
mov eax, dword [ecx + esi*4]
sub eax, 0x10
push eax
call fcn.00401380
add eax, 0x10
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x104], 0xd
call fcn.0044ba29
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
je 0x4304f1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x1c]
push esi
push ecx
lea edx, [esp + 0x44]
push str._s_d
push edx
mov byte [esp + 0x114], bl
call fcn.004019b0
mov eax, dword [esp + 0x4c]
push eax
call fcn.004086c0
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push str.Parameter1
lea ecx, [esp + 0x64]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str._param1_
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0xf
call fcn.00402d90
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43091c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Parameter1
lea ecx, [esp + 0x70]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str.param1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0x10
call fcn.00402d90
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430973
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Parameter2
lea ecx, [esp + 0x78]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str._param2_
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0x11
call fcn.00402d90
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4309ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Parameter2
lea ecx, [esp + 0x74]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str.param2
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0x12
call fcn.00402d90
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430a21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Parameter
lea ecx, [esp + 0x6c]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str._param_
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0x13
call fcn.00402d90
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430a78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Parameter
lea ecx, [esp + 0x68]
push str.UPDATEINFO
push ecx
call fcn.0040a300
add esp, 0xc
mov eax, dword [eax]
push eax
push str.param
lea ecx, [esp + 0x2c]
mov byte [esp + 0x10c], 0x14
call fcn.00402d90
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430acf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x5c]
push str.download:
push edx
call fcn.00404d80
mov eax, dword [eax]
push eax
mov byte [esp + 0x114], 0x15
call fcn.0040ad00
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x104], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430b1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x494c78
lea ecx, [esp + 0x3c]
call fcn.0041d7f0
push 0x494c74
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 0x16
call fcn.0041d7f0
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x1c]
push edi
push edx
mov byte [esp + 0x110], 0x17
call fcn.0041dfd0
add esp, 0xc
mov eax, dword [eax]
mov byte [esp + 0x104], 0x18
cmp eax, ebp
je 0x430b72
mov eax, dword [eax]
jmp 0x430b74
xor eax, eax
lea ecx, [esp + 0x3c]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
call fcn.00404d80
mov eax, dword [eax]
lea ecx, [esp + 0x44]
push ecx
push eax
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0x11c], 0x19
call fcn.0041dfd0
add esp, 0x18
mov eax, dword [eax]
mov byte [esp + 0x104], 0x1a
cmp eax, ebp
je 0x430bb3
mov eax, dword [eax]
jmp 0x430bb5
xor eax, eax
push eax
lea ecx, [esp + 0x48]
call fcn.00402410
lea ecx, [esp + 0x4c]
call fcn.00404980
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430bf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x18]
call fcn.00404980
lea ecx, [esp + 0x54]
call fcn.00404980
lea ecx, [esp + 0x38]
mov byte [esp + 0x104], 0x20
call fcn.00404980
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
xor ecx, ecx
add eax, 2
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0043e774
mov esi, eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax - 0xc]
lea ecx, [eax + eax + 4]
push ecx
push ebp
push esi
call fcn.00467da0
mov ecx, dword [esp + 0x54]
add esp, 0x10
mov edx, esi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bp
jne 0x430c51
lea edx, [esp + 0x14]
push edx
push ebp
push esi
push 0x42fc80
push ebp
push ebp
mov dword [esp + 0x2c], ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x104], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430ca8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430cd0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x104], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430cf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [0x4b3848]
inc ecx
cmp ecx, eax
mov dword [esp + 0x2c], ecx
jl 0x43083a
xor ebp, ebp
push 0x494460
push str.MultCheckTimeOut
lea ecx, [esp + 0x1c]
push 0x48fd60
push ecx
call fcn.0040b750
mov eax, dword [eax]
push eax
call fcn.00467fc2
mov edi, eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x14
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430d52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
imul edi, edi, 0x64
xor esi, esi
cmp edi, ebp
jle 0x430da2
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x430d70
push 0xf000b
call fcn.00422bb0
mov ecx, dword [0x4b3ad8]
add esp, 4
cmp dword [ecx - 0xc], 0
je 0x430d8b
mov esi, edi
cmp dword [0x4b3ad0], 0
jg 0x430d96
mov esi, edi
push eax
call ebx
push 1
call ebp
inc esi
cmp esi, edi
jl 0x430d70
mov edx, dword [0x4b3ad8]
cmp dword [edx - 0xc], 0
jne 0x430dc4
mov eax, dword [esp + 0x20]
mov ebx, 1
add eax, 0xfffffff0
jmp 0x430f0e
call fcn.0043ea0b
push 0x4b3ad8
lea ecx, [esp + 0x24]
xor ebx, ebx
call fcn.004022f0
mov eax, dword [esp + 0x20]
push eax
call fcn.0042fb70
add esp, 4
push 0xffffffffffffffff
push ebx
mov ecx, 0x4b3840
call fcn.0043ec8f
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
jmp 0x430f0e
mov ecx, dword [0x4b383c]
cmp dword [ecx - 0xc], ebp
jne 0x430f33
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
call fcn.00401820
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp - 0xc]
xor ecx, ecx
add eax, 2
mov edx, 2
mul edx
seto cl
mov byte [esp + 0x104], 0x21
neg ecx
or ecx, eax
push ecx
call fcn.0043e774
mov esi, eax
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax + 4]
push eax
push 0
push esi
call fcn.00467da0
mov edx, esi
add esp, 0x10
mov eax, ebp
sub edx, ebp
lea ebx, [ebx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x430e60
xor edi, edi
lea ecx, [esp + 0x18]
push ecx
push edi
push esi
push 0x42fec0
push edi
push edi
mov ebx, 1
mov dword [0x4b3ad4], edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x494c48
push str.TimeOut
lea edx, [esp + 0x30]
push 0x48fd60
push edx
call fcn.0040b750
mov eax, dword [eax]
push eax
call fcn.00467fc2
add esp, 0x14
lea ecx, [esp + 0x28]
mov esi, eax
call fcn.00401310
imul esi, esi, 0x64
test esi, esi
jle 0x430f0b
push 0xf000c
call fcn.00422bb0
mov ecx, dword [0x4b3ad4]
add esp, 4
cmp ecx, 2
jne 0x430eed
xor ebx, ebx
jmp 0x430ef5
cmp ecx, 3
jne 0x430ef7
lea ebx, [ecx - 2]
mov edi, esi
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, esi
jl 0x430ed1
lea eax, [ebp - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x104], 0xa
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430f2f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x430f84
push str..xml
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00403080
mov eax, dword [eax]
add esp, 0xc
xor ebp, ebp
push ebp
push eax
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4306f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4306f8
mov ecx, dword [0x4b383c]
cmp dword [ecx - 0xc], 0
push 0xffffffffffffffff
push ecx
mov esi, esp
mov dword [esp + 0x1c], esp
jne 0x43114c
lea edx, [esp + 0x38]
push edx
push 0x490090
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.error_when_download_the_list_file.
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x48fda4
mov byte [esp + 0x120], 0x22
call fcn.00402410
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x120], 0xa
call fcn.00413c80
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov bl, 0x23
push ecx
mov byte [esp + 0x11c], bl
call fcn.00403080
add esp, 0xc
push eax
push esi
mov byte [esp + 0x118], 0x24
call fcn.00402fc0
mov edx, dword [esp + 0x120]
add esp, 0xc
push edx
call fcn.00408510
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x104], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431046
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43106e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x30]
push ecx
push 0x490090
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.error_when_download_the_list_file.
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x48fda4
mov byte [esp + 0x118], 0x25
call fcn.00402410
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0x118], 0xa
call fcn.00413c80
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x114], 0x26
call fcn.00403080
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov bl, 0x27
push ecx
mov byte [esp + 0x110], bl
call fcn.00402fc0
mov eax, dword [eax]
push eax
mov byte [esp + 0x114], 0x28
call fcn.0040ad00
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x104], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43111b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0x26
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431143
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
jmp 0x4311e9
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.error_when_download_the_list_file.
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x48fda4
mov byte [esp + 0x118], 0x29
call fcn.00402410
push esi
mov byte [esp + 0x118], 0xa
call fcn.00413c80
mov ecx, dword [esp + 0x120]
add esp, 0xc
push ecx
call fcn.00408510
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.error_when_download_the_list_file.
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x48fda4
mov byte [esp + 0x110], 0x2a
call fcn.00402410
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x110], 0xa
call fcn.00413c80
mov eax, dword [eax]
push eax
mov byte [esp + 0x114], 0x2b
call fcn.0040ad00
mov eax, dword [esp + 0x24]
add esp, 0x10
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x104], 0xa
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43120d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x104], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431235
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x104], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43125a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x104], 5
call fcn.00412210
lea ecx, [esp + 0xd4]
mov byte [esp + 0x104], 4
call fcn.00412210
mov eax, dword [esp + 0x48]
jmp 0x431867
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jl 0x430dbf
cmp dword [esp + 0x20], eax
jge 0x430dbf
mov edx, dword [esp + 0xc4]
lea eax, [ecx + edx]
push eax
lea ecx, [esp + 0x7c]
call fcn.00402c90
mov eax, dword [esp + 0x84]
cmp dword [eax - 0xc], 0
mov byte [esp + 0x104], bl
je 0x4315ac
cmp byte [esp + 0x37], 0
je 0x4313d0
mov eax, dword [esp + 0x98]
cmp eax, 0x7f000000
je 0x4313d0
cmp eax, 0x7e000000
je 0x4313d0
test al, 2
jne 0x4313d0
lea ecx, [esp + 0xe8]
call fcn.0043eaf0
lea ecx, [esp + 0xe8]
push ecx
sub esp, 0x24
lea edx, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0x130], 0x2e
call fcn.00402c90
call fcn.00423d00
mov ebp, eax
add esp, 0x28
xor esi, esi
test ebp, ebp
jle 0x4313bd
jmp 0x431350
lea ecx, [esp + 0x9c]
call fcn.0044e923
mov byte [esp + 0x104], 0x2f
test esi, esi
jl 0x430dbf
cmp esi, dword [esp + 0xf0]
jge 0x430dbf
mov eax, dword [esp + 0xec]
mov eax, dword [eax + esi*4]
push 0
push eax
lea ecx, [esp + 0xa4]
call fcn.0044e99e
lea ecx, [esp + 0x9c]
mov edi, eax
call fcn.0044e5b4
lea ecx, [esp + 0x9c]
mov byte [esp + 0x104], 0x2e
call fcn.0044e94c
test edi, edi
je 0x4313e7
inc esi
cmp esi, ebp
jl 0x431350
lea ecx, [esp + 0xe8]
mov byte [esp + 0x104], bl
call fcn.0043edf9
mov eax, dword [esp + 0xdc]
xor edi, edi
mov ebp, eax
test eax, eax
jle 0x431560
xor esi, esi
jmp 0x431437
cmp esi, ebp
jge 0x4313bd
sub esp, 0x24
lea edx, [esp + 0x9c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00402c90
mov ecx, 0x4b37f0
call fcn.00412e70
lea ecx, [esp + 0xe8]
mov byte [esp + 0x104], bl
call fcn.0043edf9
jmp 0x4315ac
mov eax, dword [esp + 0xdc]
test esi, esi
jl 0x430dbf
cmp edi, eax
jge 0x430dbf
mov eax, dword [esp + 0xd8]
add eax, esi
push eax
lea ecx, [esp + 0xa0]
call fcn.00402c90
mov ecx, dword [esp + 0x7c]
xor eax, eax
test ecx, ecx
setne al
mov byte [esp + 0x104], 0x30
test eax, eax
je 0x4304f1
mov eax, dword [esp + 0xa0]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4314a6
test dx, dx
je 0x4314a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4314a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x431480
xor eax, eax
jmp 0x4314ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x4314d8
lea ecx, [esp + 0x9c]
mov byte [esp + 0x104], bl
call fcn.00402a90
inc edi
add esi, 0x24
cmp edi, ebp
jl 0x431430
jmp 0x431560
mov ecx, dword [esp + 0xa8]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4304f1
mov eax, dword [esp + 0x84]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x43151b
test dx, dx
je 0x431517
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x43151b
add eax, 4
add ecx, 4
test dx, dx
jne 0x4314f5
xor eax, eax
jmp 0x431520
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x431549
sub esp, 0x24
lea edx, [esp + 0x9c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00402c90
mov ecx, 0x4b37f0
call fcn.00412e70
lea ecx, [esp + 0x9c]
mov byte [esp + 0x104], bl
call fcn.00402a90
cmp edi, ebp
jl 0x4315ac
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0xa0]
call fcn.00402c90
mov esi, dword [0x4b37f8]
sub esp, 0x24
lea edx, [esp + 0xc0]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x12c], 0x31
call fcn.00402c90
push esi
mov ecx, 0x4b37f0
call fcn.00412680
lea ecx, [esp + 0x9c]
call fcn.00402a90
lea ecx, [esp + 0x78]
mov byte [esp + 0x104], 0x2c
call fcn.00402a90
mov eax, dword [esp + 0x20]
add dword [esp + 0x2c], 0x24
inc eax
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
jl 0x431290
xor ebp, ebp
mov ecx, 0x4b37f0
call fcn.004124d0
mov eax, dword [0x4b3720]
cmp eax, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebp
jle 0x4316ca
mov eax, dword [0x4b3808]
cmp dword [eax - 0xc], 0
je 0x4316ca
mov esi, dword [esp + 0x20]
test esi, esi
jl 0x430dbf
cmp esi, dword [0x4b3720]
jge 0x430dbf
mov ecx, dword [0x4b371c]
mov ebp, dword [ecx + esi*4]
push ebp
mov ecx, 0x4b36fc
call fcn.00402c20
push ebp
mov ecx, 0x4b36c0
call fcn.00402c20
mov edi, dword [eax]
push str.qupdater.needmsg
push ebp
call dword [sym.imp.USER32.dll_GetPropW]
cmp eax, 0x7b6
jne 0x4316bb
push 0
push 0x493a6c
mov ecx, 0x4b3808
call fcn.00403160
mov edx, dword [0x4b3808]
mov eax, dword [edx - 0xc]
push 0x40
push 0x3000
lea ebx, [eax + eax]
push ebx
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov esi, eax
mov eax, dword [0x4b3808]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x18]
push edx
add ecx, ecx
push ecx
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0
push esi
push 0x7b9
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4000
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov esi, dword [esp + 0x20]
inc esi
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x20], esi
jl 0x4315f6
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0xa
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4316f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x104], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43171a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x104], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43173f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x104], 5
call fcn.00412210
lea ecx, [esp + 0xd4]
mov byte [esp + 0x104], 4
call fcn.00412210
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x104], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43178f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x104], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4317ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
jmp 0x4318b4
push 0xffffffffffffffff
push ecx
mov dword [esp + 0x1c], esp
mov esi, esp
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.qupdater.ini____UPDATEINFO____ListURL_cant_empty
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x48fda4
mov byte [esp + 0x118], 1
call fcn.00402410
push esi
mov byte [esp + 0x118], 0
call fcn.00413c80
mov ecx, dword [esp + 0x120]
add esp, 0xc
push ecx
call fcn.00408510
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.qupdater.ini____UPDATEINFO____ListURL_cant_empty
call fcn.00402410
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x48fda4
mov byte [esp + 0x110], 2
call fcn.00402410
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x110], 0
call fcn.00413c80
mov eax, dword [eax]
push eax
mov byte [esp + 0x114], 3
call fcn.0040ad00
mov eax, dword [esp + 0x24]
add esp, 0x10
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x104], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43188b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x104], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4318b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0xfc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret