Function at 0x405400
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x5f2bbc
mov eax, dword fs:[0]
push eax
sub esp, 0xfb8
mov eax, dword [0x6656b0]
xor eax, esp
mov dword [esp + 0xfb0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6656b0]
xor eax, esp
push eax
lea eax, [esp + 0xfcc]
mov dword fs:[0], eax
mov eax, dword [esp + 0xfdc]
push 0x7fe
xor ebx, ebx
mov esi, ecx
lea edx, [esp + 0x7ca]
xor ecx, ecx
push ebx
push edx
mov dword [esp + 0x4c], eax
mov word [esp + 0x7d0], cx
call fcn.005bfee0
add esp, 0xc
lea eax, [esp + 0x28]
push eax
call fcn.00414e80
mov dword [esp + 0xfd4], ebx
lea ecx, [esp + 0x14]
call fcn.00401780
mov byte [esp + 0xfd4], 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], ebx
call fcn.00401780
mov byte [esp + 0xfd4], 2
xor ecx, ecx
mov dword [esp + 0x140], 7
mov dword [esp + 0x13c], ebx
mov word [esp + 0x12c], cx
mov byte [esp + 0xfd4], 3
lea edx, [esp + 0x2d4]
push edx
call fcn.004ac370
mov byte [esp + 0xfd4], 4
lea eax, [esi + 0x1c]
mov ebp, 8
mov dword [esp + 0x64], eax
cmp dword [eax + 0x18], ebp
jb 0x4054f0
mov eax, dword [eax + 4]
jmp 0x4054f3
add eax, 4
push 0x621224
push str.Agent
push eax
lea eax, [esp + 0x3c]
push str.http:___s__s__s
push eax
call fcn.0040de90
add esp, 0x14
call fcn.004b7590
cmp dword [eax + 0x3d0], ebp
jb 0x405525
mov eax, dword [eax + 0x3bc]
jmp 0x40552a
add eax, 0x3bc
push eax
push str._sGenian
lea ecx, [esp + 0x130]
call fcn.004bc870
add esp, 8
lea edi, [esp + 0x2d4]
call fcn.004ac880
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004ac9b0
mov eax, dword [esp + 0x130]
add esp, 4
cmp dword [esp + 0x140], ebp
jae 0x40556f
lea eax, [esp + 0x12c]
mov edx, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x2d8]
call fcn.004ad6b0
test al, al
jne 0x40566d
push 0x322
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x1c
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.CGnWork::DownloadVersionInfo
mov byte [ecx + 4], al
call fcn.0040e090
mov byte [esp + 0xff4], 5
mov byte [esp + 0xff4], 4
mov esi, 0x66f120
call fcn.0040df10
mov edx, dword [esp + 0x59c]
push edx
push 0x621270
push esi
call fcn.0040fc70
add esp, 0xc
mov byte [esp + 0xfd4], 3
lea ecx, [esp + 0x2d4]
call fcn.004ac5f0
mov byte [esp + 0xfd4], 2
cmp dword [esp + 0x140], ebp
jb 0x405614
mov eax, dword [esp + 0x12c]
push eax
call fcn.004c4802
add esp, 4
xor ecx, ecx
mov dword [esp + 0x140], 7
mov dword [esp + 0x13c], ebx
mov word [esp + 0x12c], cx
mov byte [esp + 0xfd4], 1
lea ecx, [esp + 0x30]
call fcn.00401690
mov byte [esp + 0xfd4], 0
lea ecx, [esp + 0x14]
call fcn.00401690
mov dword [esp + 0xfd4], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.00414ef0
xor al, al
jmp 0x4065eb
push 0x326
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0x1c
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.CGnWork::DownloadVersionInfo
mov byte [ecx + 4], 0
call fcn.0040e090
mov byte [esp + 0xff4], 6
mov byte [esp + 0xff4], 4
mov esi, 0x66f120
call fcn.0040df10
push 0x6212c8
push esi
call fcn.0040fa90
mov eax, dword [esp + 0x684]
add esp, 8
cmp dword [esp + 0x690], ebp
jae 0x4056d4
lea eax, [esp + 0x67c]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.0040ea80
mov byte [esp + 0xfd8], 7
mov byte [esp + 0xfd8], 4
lea ecx, [esp + 0x2c]
call fcn.00414f40
mov eax, dword [esp + 0x67c]
cmp dword [esp + 0x690], ebp
jae 0x405711
lea eax, [esp + 0x67c]
push eax
push 0x400
lea edx, [esp + 0x7cc]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
xor ecx, ecx
cmp eax, ebx
mov edx, ecx
jle 0x405744
lea ecx, [ecx]
cmp word [esp + ecx*2 + 0x7c4], bx
jne 0x40573b
inc edx
inc ecx
cmp ecx, eax
jl 0x405730
mov dword [esp + 0x34], edx
or edi, 0xffffffff
cmp edx, ebx
mov dword [esp + 0x38], ebx
jle 0x4064b8
mov eax, dword [esp + 0x38]
push 0
push eax
lea ecx, [esp + 0x7cc]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.004c9ef7
lea eax, [esp + 0x144]
push eax
call fcn.00406620
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x14]
mov ecx, eax
lea edx, [ecx + 2]
lea ebx, [ebx]
mov si, word [ecx]
add ecx, 2
test si, si
jne 0x405790
sub ecx, edx
sar ecx, 1
push ecx
lea esi, [esp + 0x148]
call fcn.0040f730
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 9
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.PROC
call fcn.0040ea80
mov byte [esp + 0xfdc], 0xa
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x30], esp
mov dword [esp + 0x24], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405814
cmp eax, dword [esi]
jne 0x405814
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40584f
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0xc
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x58]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0xd
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405880
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x164]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4058c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0xf
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x62130c
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x10
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x40592c
cmp eax, dword [esi]
jne 0x40592c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405967
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x12
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x5c]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x13
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x4059a0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4059a0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x180]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4059e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x15
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.DOWN
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x16
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405a4c
cmp eax, dword [esi]
jne 0x405a4c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405a87
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x18
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x74]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x19
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x405ac0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405ac0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x19c]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405b04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x1b
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.COMP
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x1c
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405b6c
cmp eax, dword [esi]
jne 0x405b6c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405ba7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x1e
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x64]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x1f
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x405be0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405be0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x1b8]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405c24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x21
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.DOWNPATH
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x22
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405c8c
cmp eax, dword [esi]
jne 0x405c8c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405cc7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x24
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x6c]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x25
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x405d00
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405d00
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x1d4]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405d44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x27
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.FILENAME
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x28
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405dac
cmp eax, dword [esi]
jne 0x405dac
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405de7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x2a
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x68]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x2b
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x405e20
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405e20
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x1f0]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x2d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.VERSION
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x2e
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x405ecc
cmp eax, dword [esi]
jne 0x405ecc
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x405f07
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x30
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x54]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x31
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x405f40
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x405f40
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x20c]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405f84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
mov ebx, 1
xor eax, eax
lea edx, [esp + 0x20c]
mov dword [esp + 0x20], 0x2d
call fcn.0040a320
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0x20c]
push ecx
mov ecx, eax
xor edx, edx
call fcn.00409760
mov byte [esp + 0xfd4], 0x33
push 0xffffffffffffffff
xor ebp, ebp
push ebp
lea ecx, [esp + 0x22c]
call fcn.0040f320
mov byte [esp + 0xfd4], 8
cmp dword [esp + 0xa0], 8
jb 0x405ff8
mov edx, dword [esp + 0x8c]
push edx
call fcn.004c4802
add esp, 4
push ecx
xor eax, eax
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
mov dword [esp + 0xa8], 7
mov dword [esp + 0xa4], ebp
mov word [esp + 0x94], ax
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x34
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.RELEASE
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x35
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], ebp
lea edx, [esi + 0xc]
jl 0x40607b
cmp eax, dword [esi]
jne 0x40607b
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4060b6
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x37
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x60]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x38
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x4060e7
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x244]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40612b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x3a
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.FILEPATH
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x3b
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], ebp
lea edx, [esi + 0xc]
jl 0x406192
cmp eax, dword [esi]
jne 0x406192
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4061cd
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x3d
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x50]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x3e
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x406200
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x260]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406244
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x622024
call fcn.0040ea80
mov byte [esp + 0xfd8], 0x40
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.VERIFY
call fcn.0040ea80
mov byte [esp + 0xfdc], 0x41
mov esi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x28], ebx
call eax
cmp dword [esi + 0xc], ebp
lea edx, [esi + 0xc]
jl 0x4062ab
cmp eax, dword [esi]
jne 0x4062ab
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4062e6
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
je 0x406615
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005b7e9d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0xfe0], 0x43
mov byte [esp + 0xfe0], 8
lea esi, [esp + 0x48]
lea ecx, [esp + 0x34]
call fcn.00414fa0
mov byte [esp + 0xfd4], 0x44
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x406317
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x27c]
call fcn.0040f730
mov byte [esp + 0xfd4], 8
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40635b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xa4]
push ecx
call fcn.004097e0
mov bl, 0x46
mov byte [esp + 0xfd4], bl
push 0x6204a8
push ecx
push 0x6204a8
push ecx
lea edx, [esp + 0xb4]
push 0x621398
push edx
call fcn.0040b2e0
mov ecx, dword [esp + 0x7c]
push eax
call fcn.0040b4b0
add esp, 0x10
push eax
call fcn.0040b2e0
push eax
lea ecx, [esp + 0x1e4]
call fcn.0040b4b0
add esp, 0x10
push eax
call fcn.0040b2e0
push eax
lea ecx, [esp + 0x1f8]
call fcn.0040b4b0
add esp, 0xc
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xa8]
push ecx
call fcn.004098e0
mov byte [esp + 0xfd4], 0x47
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x2bc]
call fcn.0040f320
mov byte [esp + 0xfd4], bl
cmp dword [esp + 0x84], 8
jb 0x40640f
mov edx, dword [esp + 0x70]
push edx
call fcn.004c4802
add esp, 4
mov ebx, dword [esp + 0x40]
xor eax, eax
lea ecx, [esp + 0x144]
push ecx
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], ebp
mov word [esp + 0x74], ax
mov byte [esp + 0x2b4], al
call fcn.0040a160
mov bl, 8
mov byte [esp + 0xfd4], bl
lea ecx, [esp + 0xf0]
call fcn.00409870
lea edx, [esp + 0xf0]
mov dword [esp + 0x18], edx
mov dword [esp + 0xf0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov byte [esp + 0xfd4], bl
mov eax, edx
push eax
mov dword [esp + 0xf4], vtable.std::ios_base.0
call fcn.005dac7b
add esp, 4
mov byte [esp + 0xfd4], 4
lea ecx, [esp + 0x144]
push ecx
call fcn.00406790
mov eax, dword [esp + 0x38]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
jl 0x405753
xor ebx, ebx
lea ebp, [ebx + 8]
or edi, 0xffffffff
push 0x34c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x1c
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.CGnWork::DownloadVersionInfo
mov byte [ecx + 4], 0
call fcn.0040e090
mov byte [esp + 0xff4], 0x49
mov byte [esp + 0xff4], 4
mov esi, 0x66f120
call fcn.0040df10
push 0x6213a8
push esi
call fcn.0040fb80
add esp, 8
mov byte [esp + 0xfd4], 3
lea ecx, [esp + 0x2d4]
call fcn.004ac5f0
mov byte [esp + 0xfd4], 2
cmp dword [esp + 0x140], ebp
jb 0x40653d
mov edx, dword [esp + 0x12c]
push edx
call fcn.004c4802
add esp, 4
xor eax, eax
mov dword [esp + 0x140], 7
mov dword [esp + 0x13c], ebx
mov word [esp + 0x12c], ax
mov byte [esp + 0xfd4], 1
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406580
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xfd4], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xfd4], edi
mov dword [esp + 0x28], vtable.CProfile.0
mov dword [esp + 0xfd4], edi
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xfd4], edi
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jg 0x4065e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0xfcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xfb0]
xor ecx, esp
call fcn.005b7e8e
add esp, 0xfc4
ret 4
call fcn.00401430
int3