Function at 0x402e20
Capabilities:
Check http status code
Check if file exists
Copy file
Create directory
Create process on windows
Delete file
Get file attributes
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x561e91
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x5c1fe4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x58], 8
mov dword [ebp - 0x54], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call fcn.00407c26
mov esi, dword [esi + 0x48]
call fcn.00544974
mov ecx, eax
test ecx, ecx
je 0x4050d8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], 0
test esi, esi
je 0x402ec8
test esi, 0xffff0000
jne 0x402eb2
movzx eax, si
lea ecx, [ebp - 0x38]
push eax
call fcn.00406260
jmp 0x402ed4
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402eb7
sub ecx, edx
sar ecx, 1
jmp 0x402eca
xor ecx, ecx
push ecx
push esi
lea ecx, [ebp - 0x38]
call fcn.00406c20
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0x38]
mov edi, dword [esi - 0xc]
test edi, edi
js 0x405132
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x402f06
push edi
lea ecx, [ebp - 0x38]
call fcn.00406a40
mov esi, dword [ebp - 0x38]
lea eax, [edi + 1]
push eax
push esi
call fcn.0054974e
add esp, 8
cmp edi, dword [esi - 8]
jg 0x405132
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + edi*2], ax
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4050e2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 2
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4050ec
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 3
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4050f6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.www.emdb.eu
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
test eax, 0xffff0000
jne 0x402f99
movzx eax, ax
push eax
call fcn.00406260
jmp 0x402fa5
push 0xb
push str.www.emdb.eu
call fcn.00406c20
mov byte [ebp - 4], 5
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405100
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x44], eax
mov eax, str._autoupdate_autoupdate.script
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x44]
test eax, 0xffff0000
jne 0x402fe1
movzx eax, ax
push eax
call fcn.00406260
jmp 0x402fed
push 0x1d
push str._autoupdate_autoupdate.script
call fcn.00406c20
mov byte [ebp - 4], 7
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40510a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov eax, str._assets_assets.script
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4c]
test eax, 0xffff0000
jne 0x403029
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403035
push 0x15
push str._assets_assets.script
call fcn.00406c20
mov byte [ebp - 4], 9
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405114
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
mov eax, str._autoupdate_
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x34]
test eax, 0xffff0000
jne 0x403071
movzx eax, ax
push eax
call fcn.00406260
jmp 0x40307d
push 0xc
push str._autoupdate_
call fcn.00406c20
mov byte [ebp - 4], 0xb
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40511e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x40], eax
mov eax, 0x5a4b24
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x40]
test eax, 0xffff0000
jne 0x4030b9
movzx eax, ax
push eax
call fcn.00406260
jmp 0x4030c5
push 8
push 0x5a4b24
call fcn.00406c20
mov byte [ebp - 4], 0xd
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405128
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov eax, 0x5a4b38
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x14]
test eax, 0xffff0000
jne 0x403101
movzx eax, ax
push eax
call fcn.00406260
jmp 0x40310d
push 0x11
push 0x5a4b38
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0xf
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00406470
add esp, 0xc
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
call fcn.00402d90
mov byte [ebp - 4], 0xf
or ebx, 0xffffffff
mov edx, dword [ebp - 0x74]
mov edi, eax
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x403155
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov eax, ebx
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403173
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x4031b3
push 0xb
push str.www.emdb.eu
lea ecx, [ebp - 0x1c]
call fcn.00406c20
push 0x2a
push str._undercover10_autoupdate_autoupdate.script
lea ecx, [ebp - 0x44]
call fcn.00406c20
push 0x10
push str.UnderCover10.exe
lea ecx, [ebp - 0x40]
call fcn.00406c20
push 0x19
push str._undercover10_autoupdate_
lea ecx, [ebp - 0x34]
call fcn.00406c20
mov dword [ebp - 0x6c], 0
mov ecx, str._update_myself
mov dword [ebp - 0x74], 0
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4031ee
test dx, dx
je 0x4031ea
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4031ee
add eax, 4
add ecx, 4
test dx, dx
jne 0x4031c8
xor eax, eax
jmp 0x4031f3
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40320b
push 0xd
push str.update_myself
lea ecx, [ebp - 0x24]
call fcn.00406c20
jmp 0x4034fc
mov ecx, 0x5a4c4c
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403238
test dx, dx
je 0x403234
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403238
add eax, 4
add ecx, 4
test dx, dx
jne 0x403212
xor eax, eax
jmp 0x40323d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403255
push 6
push str.update
lea ecx, [ebp - 0x24]
call fcn.00406c20
jmp 0x4034fc
cmp dword [esi - 0xc], 0
jl 0x4032f6
push str._do_some_magic
push esi
call fcn.00543708
add esp, 8
test eax, eax
je 0x4032f6
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x4032f6
cmp dword [esi - 0xc], 0
jl 0x4032e7
push 0x5a4c9c
push esi
call fcn.00543708
add esp, 8
test eax, eax
je 0x4032e7
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x4032e7
lea ecx, [eax + 1]
mov eax, dword [esi - 0xc]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x38]
call fcn.00405dd0
mov esi, dword [ebp - 0x64]
mov eax, 4
push 0xa
push 0
push esi
mov dword [ebp - 0x70], eax
call fcn.0054955f
add esp, 0xc
mov dword [ebp - 0x6c], eax
add esi, 0xfffffff0
mov ecx, ebx
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4032e7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, str.update
mov ecx, 6
jmp 0x4034e7
mov ecx, 0x5a4ca0
mov eax, esi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403326
test dx, dx
je 0x403322
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403326
add eax, 4
add ecx, 4
test dx, dx
jne 0x403300
xor eax, eax
jmp 0x40332b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40338b
push str.IsWow64Process
push str.kernel32
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x5ca9b0], eax
test eax, eax
je 0x40336a
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x5ca9b0]
cmp dword [ebp - 0x18], 0
mov ecx, str.mediainfo32
mov eax, str.mediainfo64
cmove eax, ecx
lea ecx, [ebp - 0x24]
push 0xb
push eax
call fcn.00406c20
jmp 0x4034fc
mov ecx, str._restore_previous_version
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4033b8
test dx, dx
je 0x4033b4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4033b8
add eax, 4
add ecx, 4
test dx, dx
jne 0x403392
xor eax, eax
jmp 0x4033bd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4033cb
mov eax, str.restore
jmp 0x4034e2
mov ecx, str._hotfix
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4033f8
test dx, dx
je 0x4033f4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4033f8
add eax, 4
add ecx, 4
test dx, dx
jne 0x4033d2
xor eax, eax
jmp 0x4033fd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403410
mov eax, str.hotfix
mov ecx, 6
jmp 0x4034e7
mov ecx, str._assets
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40343d
test dx, dx
je 0x403439
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40343d
add eax, 4
add ecx, 4
test dx, dx
jne 0x403417
xor eax, eax
jmp 0x403442
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4034aa
push 6
push str.assets
lea ecx, [ebp - 0x24]
call fcn.00406c20
mov esi, dword [ebp - 0x34]
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4034fc
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x403488
cmp dword [esi - 8], 0
jl 0x405132
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4034fc
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x40349b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
jmp 0x4034fc
mov eax, str._restart
nop
mov cx, word [esi]
cmp cx, word [eax]
jne 0x4034d6
test cx, cx
je 0x4034d2
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x4034d6
add esi, 4
add eax, 4
test cx, cx
jne 0x4034b0
xor eax, eax
jmp 0x4034db
sbb eax, eax
or eax, 1
test eax, eax
mov eax, str.restart
mov ecx, 7
push ecx
push eax
lea ecx, [ebp - 0x24]
call fcn.00406c20
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40513c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0x11
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405146
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 0x12
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405150
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x3c], esi
mov byte [ebp - 4], 0x13
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40515a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x14
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405164
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x15
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40516e
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov dword [ebp - 0x84], ebx
lea eax, [ebx + 0x10]
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 0x16
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405178
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x17
mov ecx, str.update_myself
mov edi, dword [ebp - 0x24]
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403606
test dx, dx
je 0x403602
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403606
add eax, 4
add ecx, 4
test dx, dx
jne 0x4035e0
xor eax, eax
jmp 0x40360b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4038b5
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405182
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov eax, str.AutoUpdater2.prev
mov byte [ebp - 4], 0x18
shr eax, 0x10
mov ecx, str.AutoUpdater2.prev
movzx esi, cx
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x403653
push esi
call fcn.00406260
jmp 0x40365f
push 0x12
push str.AutoUpdater2.prev
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x19
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00406470
add esp, 0xc
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x74]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40369c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4036bb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40518c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x60]
cmp dword [ebp - 0x64], 0
jne 0x4036ea
push esi
call fcn.00406260
jmp 0x4036f6
push 0x12
push str.AutoUpdater2.prev
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x1b
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00406470
add esp, 0xc
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 0x1c
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405196
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov esi, 0x5a4dcc
mov byte [ebp - 4], 0x1d
shr esi, 0x10
lea ecx, [ebp - 0x14]
mov eax, 0x5a4dcc
test esi, esi
jne 0x403754
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403760
push 0x11
push 0x5a4dcc
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x1e
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00406470
mov ecx, dword [ebp - 0x74]
push dword [ecx]
push dword [eax]
call fcn.005484fc
mov edx, dword [ebp - 0x18]
add esp, 0x14
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4037a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1c
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4037c0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1b
or eax, 0xffffffff
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4037df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
or eax, 0xffffffff
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4037fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x14]
test esi, esi
jne 0x403833
mov eax, 0x5a4dcc
movzx eax, ax
push eax
call fcn.00406260
jmp 0x40383f
push 0x11
push 0x5a4dcc
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x20
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00406470
mov byte [ebp - 4], 0x21
mov edx, str.autoupdate_AutoUpdater2.exe
push dword [eax]
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.00402740
mov byte [ebp - 4], 0x20
add esp, 0x10
mov edx, dword [ebp - 0x74]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40388d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404efe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x404efe
mov ecx, str.restart
mov eax, edi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4038e6
test dx, dx
je 0x4038e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4038e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4038c0
xor eax, eax
jmp 0x4038eb
sbb eax, eax
or eax, 1
mov esi, 0x5a5084
test eax, eax
je 0x4040e6
mov ecx, str.hotfix
mov eax, edi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403926
test dx, dx
je 0x403922
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403926
add eax, 4
add ecx, 4
test dx, dx
jne 0x403900
xor eax, eax
jmp 0x40392b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403c20
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051aa
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x14]
test esi, 0xffff0000
jne 0x403967
movzx eax, si
push eax
call fcn.00406260
jmp 0x403973
push 1
push 0x5a5084
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x23
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00406470
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x24
push ecx
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004052d0
add esp, 0x18
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x25
call fcn.004066c0
mov byte [ebp - 4], 0x24
or esi, 0xffffffff
mov edx, dword [ebp - 0x64]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4039cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x23
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4039eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, esi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403a09
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051b4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov edi, str.EMDB.prev
mov byte [ebp - 4], 0x26
shr edi, 0x10
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x60], edi
mov eax, str.EMDB.prev
movzx esi, ax
mov dword [ebp - 0x18], esi
test edi, edi
jne 0x403a4c
push esi
call fcn.00406260
jmp 0x403a5b
push 0xa
push str.EMDB.prev
call fcn.00406c20
mov dword [ebp - 0x18], esi
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x27
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
add esp, 0xc
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x64]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403a98
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403ab7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051be
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x14]
test edi, edi
jne 0x403ae4
push esi
call fcn.00406260
jmp 0x403af0
push 0xa
push str.EMDB.prev
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x29
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
mov esi, dword [ebp - 0x28]
push dword [eax]
push esi
call fcn.005484fc
mov edx, dword [ebp - 0x64]
or edi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403b32
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403b50
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x13
push str.autoupdate_EMDB.exe
lea ecx, [ebp - 0x20]
call fcn.00406c20
mov edi, dword [ebp - 0x20]
mov edx, edi
mov ecx, dword [ebp - 0x1c]
push esi
call fcn.00402740
add esp, 4
cmp eax, 0xc8
je 0x4040e6
push eax
push edi
push dword [ebp - 0x1c]
lea eax, [ebp - 0x2c]
push str._s__s_n_rHTTP_error:__d
push eax
call fcn.00406850
add esp, 0x14
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051c8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x14]
cmp dword [ebp - 0x60], 0
jne 0x403bc9
push dword [ebp - 0x18]
call fcn.00406260
jmp 0x403bd5
push 0xa
push str.EMDB.prev
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x2b
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
push esi
push dword [eax]
call fcn.005484fc
mov edx, dword [ebp - 0x64]
or edi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403c14
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x14]
jmp 0x4040cf
mov ecx, str.restore
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403c4d
test dx, dx
je 0x403c49
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403c4d
add eax, 4
add ecx, 4
test dx, dx
jne 0x403c27
xor eax, eax
jmp 0x403c52
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404104
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051d2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov eax, str.EMDB.prev
mov byte [ebp - 4], 0x2c
shr eax, 0x10
mov ecx, str.EMDB.prev
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x403c9a
movzx eax, cx
lea ecx, [ebp - 0x14]
push eax
call fcn.00406260
jmp 0x403ca9
push 0xa
push str.EMDB.prev
lea ecx, [ebp - 0x14]
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x2d
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
add esp, 0xc
mov byte [ebp - 4], 0x2e
mov ecx, dword [eax]
call fcn.00402d90
mov byte [ebp - 4], 0x2d
or edi, 0xffffffff
mov edx, dword [ebp - 0x64]
mov esi, eax
add edx, 0xfffffff0
mov ecx, edi
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x403cf1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403d0f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x4040e6
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051dc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov eax, str.EMDB.prev2
mov byte [ebp - 4], 0x2f
shr eax, 0x10
mov ecx, str.EMDB.prev2
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x403d57
movzx eax, cx
lea ecx, [ebp - 0x60]
push eax
call fcn.00406260
jmp 0x403d66
push 0xb
push str.EMDB.prev2
lea ecx, [ebp - 0x60]
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x30
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00406470
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 0x31
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051e6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov esi, str.EMDB.exe
mov byte [ebp - 4], 0x32
shr esi, 0x10
lea ecx, [ebp - 0x14]
mov eax, str.EMDB.exe
test esi, esi
jne 0x403dc3
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403dcf
push 9
push str.EMDB.exe
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x33
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
push dword [edi]
push dword [eax]
call fcn.005484fc
mov edx, dword [ebp - 0x64]
or edi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403e0f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x31
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403e2d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x30
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403e4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, edi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403e69
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x60]
test esi, esi
jne 0x403e9e
mov eax, str.EMDB.exe
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403eaa
push 9
push str.EMDB.exe
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x35
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00406470
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x36
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4051fa
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x14]
mov edi, dword [ebp - 0x6c]
test edi, edi
jne 0x403f02
mov eax, str.EMDB.prev
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403f0e
push 0xa
push str.EMDB.prev
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x38
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
push dword [esi]
push dword [eax]
call fcn.005484fc
mov edx, dword [ebp - 0x64]
or esi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403f4e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x36
mov eax, esi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403f6c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x35
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403f8a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, esi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403fa8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405204
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x60]
test edi, edi
jne 0x403fdd
mov eax, str.EMDB.prev
movzx eax, ax
push eax
call fcn.00406260
jmp 0x403fe9
push 0xa
push str.EMDB.prev
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x3a
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00406470
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x3b
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40520e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x14]
cmp dword [ebp - 0x68], 0
jne 0x404040
mov eax, str.EMDB.prev2
movzx eax, ax
push eax
call fcn.00406260
jmp 0x40404c
push 0xb
push str.EMDB.prev2
call fcn.00406c20
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x3d
push eax
call fcn.004020d0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
push dword [esi]
push dword [eax]
call fcn.005484fc
mov edx, dword [ebp - 0x64]
or edi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40408c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3b
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4040aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3a
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4040c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4040e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x74], 0
jne 0x404ef8
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405218
jmp 0x404c30
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405222
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x3e
mov eax, str.assets
mov cx, word [edi]
cmp cx, word [eax]
jne 0x40414d
test cx, cx
je 0x404149
mov cx, word [edi + 2]
cmp cx, word [eax + 2]
jne 0x40414d
add edi, 4
add eax, 4
test cx, cx
jne 0x404127
xor eax, eax
jmp 0x404152
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40420c
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40522c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov eax, str._assets.script
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x60]
test eax, 0xffff0000
jne 0x404192
movzx eax, ax
push eax
call fcn.00406260
jmp 0x40419e
push 0xe
push str._assets.script
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x40
push eax
call fcn.00401fc0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x41
call fcn.004066c0
mov byte [ebp - 4], 0x40
or edi, 0xffffffff
mov edx, dword [ebp - 0x64]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4041e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3e
mov eax, edi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404204
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
jmp 0x4042b9
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405236
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov eax, str._autoupdate.script
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x60]
test eax, 0xffff0000
jne 0x404244
movzx eax, ax
push eax
call fcn.00406260
jmp 0x404250
push 0x12
push str._autoupdate.script
call fcn.00406c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x43
push eax
call fcn.00401fc0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00406470
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x44
call fcn.004066c0
mov byte [ebp - 4], 0x43
or edi, 0xffffffff
mov edx, dword [ebp - 0x64]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404298
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3e
mov eax, edi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4042b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
push esi
call fcn.00402740
add esp, 4
lea edx, [ebp - 0x48]
mov ecx, esi
call fcn.00402be0
mov ecx, 0xfffffffe
mov esi, 0x5a4a80
lea edi, [ecx + 2]
mov dword [ebp - 0x60], edi
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x4050d8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x68]
test esi, 0xffff0000
jne 0x404316
movzx eax, si
push eax
call fcn.00406260
jmp 0x404322
push 2
push 0x5a4a80
call fcn.00406c20
mov byte [ebp - 4], 0x3e
mov esi, dword [ebp - 0x68]
test esi, esi
je 0x40435e
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x48]
test eax, eax
js 0x40435b
cmp eax, dword [edi - 0xc]
jg 0x40435b
lea eax, [edi + eax*2]
push esi
push eax
call fcn.00543708
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x40435b
sub ecx, edi
mov edi, dword [ebp - 0x60]
sar ecx, 1
mov dword [ebp - 0x68], ecx
jmp 0x404365
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x68], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40437d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x68]
cmp eax, 0xffffffff
je 0x404c1e
sub eax, edi
lea ecx, [ebp - 0x48]
push eax
push edi
lea eax, [ebp - 0x8c]
push eax
call fcn.00405dd0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x46
call fcn.004066c0
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0x8c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4043cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x30]
mov esi, 0x5a4a80
mov ecx, dword [ebp - 0x68]
cmp dword [edi - 0xc], 0
jle 0x4042dc
push 0x22
push edi
call fcn.0054359d
mov ecx, dword [ebp - 0x68]
mov esi, eax
add esp, 8
test esi, esi
je 0x4042d7
sub esi, edi
sar esi, 1
mov dword [ebp - 0x64], esi
cmp esi, 0xffffffff
je 0x4042d7
push esi
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x30]
call fcn.00405400
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x47
call fcn.004066c0
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0x90]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404447
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00405400
mov byte [ebp - 4], 0x48
mov ecx, 0x5a4c9c
or dword [ebp - 0x70], 1
mov eax, dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40448d
test dx, dx
je 0x404489
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40448d
add eax, 4
add ecx, 4
test dx, dx
jne 0x404467
xor eax, eax
jmp 0x404492
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4044e5
push 0xa
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00405400
or dword [ebp - 0x70], 2
mov ecx, str.whatsnew:
mov eax, dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4044d8
test dx, dx
je 0x4044d4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4044d8
add eax, 4
add ecx, 4
test dx, dx
jne 0x4044b2
xor eax, eax
jmp 0x4044dd
sbb eax, eax
or eax, 1
mov byte [ebp - 0x75], 1
test eax, eax
jne 0x4044e9
mov byte [ebp - 0x75], 0
mov ecx, dword [ebp - 0x70]
test cl, 2
je 0x404518
mov edx, dword [ebp - 0x94]
and ecx, 0xfffffffd
mov dword [ebp - 0x70], ecx
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404518
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 4], 0x3e
test cl, 1
je 0x404548
mov edx, dword [ebp - 0x98]
and ecx, 0xfffffffe
mov dword [ebp - 0x70], ecx
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404548
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x75], 0
jne 0x404556
mov ecx, dword [ebp - 0x68]
jmp 0x4042d7
lea eax, [esi + 1]
test eax, eax
js 0x40457c
cmp eax, dword [edi - 0xc]
jge 0x40457c
lea eax, [edi + eax*2]
push 0x22
push eax
call fcn.0054359d
mov esi, eax
add esp, 8
test esi, esi
je 0x40457c
sub esi, edi
sar esi, 1
jmp 0x40457f
or esi, 0xffffffff
mov ecx, dword [ebp - 0x64]
mov eax, esi
inc ecx
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x30]
call fcn.00405dd0
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x49
call fcn.004066c0
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0x9c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4045c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004020d0
push eax
push str._AppFolder_
lea ecx, [ebp - 0x20]
call fcn.004057f0
call fcn.004024c0
push eax
push str._AssetsFolder_
lea ecx, [ebp - 0x20]
call fcn.004057f0
add esi, 1
mov ecx, dword [edi - 0xc]
js 0x40470e
cmp esi, ecx
jge 0x40470e
lea eax, [edi + esi*2]
push 0x22
push eax
call fcn.0054359d
add esp, 8
test eax, eax
jne 0x404618
or eax, 0xffffffff
jmp 0x40461c
sub eax, edi
sar eax, 1
mov ecx, dword [edi - 0xc]
add eax, 1
mov dword [ebp - 0x60], eax
jns 0x404713
or esi, 0xffffffff
mov ecx, dword [ebp - 0x60]
mov eax, esi
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x30]
call fcn.00405dd0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x4a
call fcn.004066c0
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0xa0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404675
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004020d0
push eax
push str._AppFolder_
lea ecx, [ebp - 0x28]
call fcn.004057f0
call fcn.004024c0
push eax
push str._AssetsFolder_
lea ecx, [ebp - 0x28]
call fcn.004057f0
test esi, esi
js 0x40473c
cmp esi, dword [edi - 0xc]
jge 0x40473c
lea eax, [edi + esi*2]
push 0x23
push eax
call fcn.0054359d
add esp, 8
test eax, eax
je 0x40473c
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x40473c
lea ecx, [eax + 1]
mov eax, dword [edi - 0xc]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x30]
call fcn.00405dd0
or dword [ebp - 0x70], 8
mov esi, dword [ebp - 0x7c]
push 0xa
push 0
push esi
call fcn.0054955f
add esp, 0xc
mov dword [ebp - 0x60], eax
add esi, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x404743
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x404743
xor eax, eax
mov dword [ebp - 0x60], eax
cmp eax, ecx
jge 0x40462b
lea eax, [edi + eax*2]
push 0x22
push eax
call fcn.0054359d
mov esi, eax
add esp, 8
test esi, esi
je 0x40462b
sub esi, edi
sar esi, 1
jmp 0x40462e
mov dword [ebp - 0x60], 0x3e7
mov edi, dword [ebp - 0x24]
mov ecx, str.update
mov eax, edi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404776
test dx, dx
je 0x404772
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404776
add eax, 4
add ecx, 4
test dx, dx
jne 0x404750
xor eax, eax
jmp 0x40477b
sbb eax, eax
or eax, 1
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x404889
mov ecx, str.rename:
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4047b6
test dx, dx
je 0x4047b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4047b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x404790
xor eax, eax
jmp 0x4047bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4047df
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x60]
jge 0x4047df
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x20]
push eax
call fcn.005484fc
mov ecx, dword [ebp - 0x68]
add esp, 8
jmp 0x4042d7
mov ecx, str.copy:
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40480c
test dx, dx
je 0x404808
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40480c
add eax, 4
add ecx, 4
test dx, dx
jne 0x4047e6
xor eax, eax
jmp 0x404811
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404835
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x60]
jge 0x404835
mov eax, dword [ebp - 0x28]
push 1
push eax
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [ebp - 0x68]
jmp 0x4042d7
mov ecx, str.delete:
mov eax, esi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404866
test dx, dx
je 0x404862
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404866
add eax, 4
add ecx, 4
test dx, dx
jne 0x404840
xor eax, eax
jmp 0x40486b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404889
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x60]
jge 0x404889
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x68]
jmp 0x4042d7
mov ecx, str.assets
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4048b6
test dx, dx
je 0x4048b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4048b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x404890
xor eax, eax
jmp 0x4048bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4048f9
mov ecx, str.get:
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4048ec
test dx, dx
je 0x4048e8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4048ec
add eax, 4
add ecx, 4
test dx, dx
jne 0x4048c6
xor eax, eax
jmp 0x4048f1
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a27
cmp dword [ebp - 0x64], 0
jne 0x404941
mov ecx, str.replace:
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40492c
test dx, dx
je 0x404928
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40492c
add eax, 4
add ecx, 4
test dx, dx
jne 0x404906
xor eax, eax
jmp 0x404931
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404941
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x60]
jl 0x404a27
mov ecx, str.mediainfo32
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40496e
test dx, dx
je 0x40496a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40496e
add eax, 4
add ecx, 4
test dx, dx
jne 0x404948
xor eax, eax
jmp 0x404973
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4049b3
mov ecx, str.mediainfo32:
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4049a6
test dx, dx
je 0x4049a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4049a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x404980
xor eax, eax
jmp 0x4049ab
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a27
mov eax, str.mediainfo64
mov cx, word [edi]
cmp cx, word [eax]
jne 0x4049de
test cx, cx
je 0x4049da
mov cx, word [edi + 2]
cmp cx, word [eax + 2]
jne 0x4049de
add edi, 4
add eax, 4
test cx, cx
jne 0x4049b8
xor eax, eax
jmp 0x4049e3
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404a1f
mov eax, str.mediainfo64:
nop dword [eax]
mov cx, word [esi]
cmp cx, word [eax]
jne 0x404a16
test cx, cx
je 0x404a12
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x404a16
add esi, 4
add eax, 4
test cx, cx
jne 0x4049f0
xor eax, eax
jmp 0x404a1b
sbb eax, eax
or eax, 1
test eax, eax
je 0x404a27
mov ecx, dword [ebp - 0x68]
jmp 0x4042d7
mov esi, dword [ebp - 0x28]
xor ebx, ebx
nop dword [eax]
add ebx, 1
js 0x404ab8
cmp ebx, dword [esi - 0xc]
jg 0x404ab8
lea eax, [esi + ebx*2]
push 0x5a5084
push eax
call fcn.00543708
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x404ab8
sub ebx, esi
sar ebx, 1
cmp ebx, 0xffffffff
je 0x404ab8
push ebx
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x28]
call fcn.00405400
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x4b
call fcn.004066c0
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0x80]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404a9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x50]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x404a30
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x404a30
mov ebx, dword [ebp - 0x84]
nop
mov ecx, esi
call fcn.00402d90
test eax, eax
je 0x404b5a
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edi, eax
mov dword [ebp - 0x60], edi
test edi, edi
jne 0x404b61
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov dword [ebp - 0x18], edi
lea ecx, [ebp - 0x18]
call fcn.00401e00
mov byte [ebp - 4], 0x4c
lea eax, [ebp - 0x2c]
push dword [ebp - 0x18]
push esi
push str.Unable_to_replace__s:__s
push eax
call fcn.00406850
add esp, 0x10
push edi
push 0x42
push dword [ebp - 0x2c]
call fcn.0040cebd
cmp eax, 3
jne 0x404b24
lea edi, [eax - 2]
jmp 0x404b32
cmp eax, 5
mov eax, 1
cmove edi, eax
mov dword [ebp - 0x60], edi
mov byte [ebp - 4], 0x3e
or eax, 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404c0e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x404c0e
mov dword [ebp - 0x60], 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.004052d0
mov byte [ebp - 4], 0x4d
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1c]
push esi
call fcn.00402740
mov byte [ebp - 4], 0x3e
add esp, 0x10
mov edx, dword [ebp - 0x88]
mov edi, eax
add edx, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x404bab
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x68]
cmp edi, 0xc8
je 0x4042d7
cmp edi, 0x3e7
jne 0x404bd1
push 0x5ca9c4
lea ecx, [ebp - 0x2c]
call fcn.004066c0
jmp 0x404bea
push edi
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x2c]
push edi
push dword [ebp - 0x1c]
push str._s_autoupdate__s_n_rHTTP_error:__d
push eax
call fcn.00406850
add esp, 0x14
push 0
push 0x42
push dword [ebp - 0x2c]
call fcn.0040cebd
mov ecx, dword [ebp - 0x68]
cmp eax, 3
je 0x4042d7
cmp eax, 5
je 0x4042d7
mov edi, dword [ebp - 0x60]
test edi, edi
je 0x404ac0
mov ecx, dword [ebp - 0x68]
jmp 0x4042d7
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
or eax, 0xffffffff
jmp 0x4040d4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov esi, 0x5a5064
mov byte [ebp - 4], 0x4e
shr esi, 0x10
lea ecx, [ebp - 0x6c]
mov edi, 0x5a5064
test esi, esi
jne 0x404c5e
movzx eax, di
push eax
call fcn.00406260
jmp 0x404c6a
push 1
push 0x5a5064
call fcn.00406c20
mov byte [ebp - 4], 0x4f
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x405240
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov eax, 0x5a5084
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x60]
test eax, 0xffff0000
jne 0x404ca6
movzx eax, ax
push eax
call fcn.00406260
jmp 0x404cb2
push 1
push 0x5a5084
call fcn.00406c20
mov byte [ebp - 4], 0x51
call fcn.00408d1f
mov ecx, eax
test ecx, ecx
je 0x40524a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x18]
test esi, esi
jne 0x404ce6
movzx eax, di
push eax
call fcn.00406260
jmp 0x404cf2
push 1
push 0x5a5064
call fcn.00406c20
mov byte [ebp - 4], 0x53
call fcn.004020d0
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x54
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0
mov ecx, dword [edi - 0x10]
test ecx, ecx
je 0x404d1e
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x404d34
call fcn.00408d1f
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x405254
mov eax, dword [ecx]
call dword [eax + 0xc]
or dword [ebp - 0x70], 0x10
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x14], esi
test eax, eax
jne 0x404d4e
xor ecx, ecx
jmp 0x404d62
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404d53
sub ecx, edx
sar ecx, 1
mov eax, dword [edi - 0xc]
mov dword [ebp - 0x74], ecx
add ecx, eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x88], ecx
js 0x405132
mov eax, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub eax, ecx
or eax, edx
jge 0x404d96
push ecx
lea ecx, [ebp - 0x14]
call fcn.00406a40
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x68]
mov ecx, esi
add eax, eax
push eax
push edi
mov edx, eax
call fcn.00406b50
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x64]
add edx, edx
push edx
push eax
mov eax, dword [ebp - 0x68]
lea ecx, [esi + eax*2]
call fcn.00406b50
mov eax, dword [ebp - 0x88]
add esp, 0x10
cmp eax, dword [esi - 8]
jg 0x405132
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.004052d0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x55
push ecx
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.004052d0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x56
push ecx
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.004052d0
add esp, 0x24
push 5
push 0
push dword [eax]
push 0x5a5068
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov edx, dword [ebp - 0x84]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404e44
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x55
or eax, 0xffffffff
mov edx, dword [ebp - 0x80]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404e63
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x54
or eax, 0xffffffff
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404e82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x53
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x404e9e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or esi, 0xffffffff
mov byte [ebp - 4], 0x51
mov eax, esi
lea edx, [edi - 0x10]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404ebc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4f
mov eax, esi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404eda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404ef8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
mov byte [ebp - 4], 0x16
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404f1d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x404f36
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
or ebx, 0xffffffff
mov edx, dword [ebp - 0x28]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404f57
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x13
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404f75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov eax, ebx
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404f93
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404fb1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov eax, ebx
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404fcf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov eax, ebx
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404fed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40500b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, ebx
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x405029
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov eax, ebx
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x405047
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x405062
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x50]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x405080
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40509b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4050ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00541cbd
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80070057
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
push 0x80004005
call fcn.00406d80
int3