Function at 0x42f950
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4b94b8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eb86c]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
push str.CUninstLog::Save
lea ecx, [esp + 0x24]
call fcn.00405a40
mov eax, dword [esp + 0x50]
push eax
push str._INFO_CUninstLog::Save__s
mov dword [esp + 0x50], 0
call fcn.0044f300
push eax
call fcn.0044fb20
add esp, 0xc
lea ecx, [esp + 0x2c]
call fcn.00454ba0
mov ebp, dword [esi + 8]
cmp ebp, dword [esi + 0xc]
lea edi, [esi + 4]
mov byte [esp + 0x48], 1
jbe 0x42f9c5
call fcn.00488c34
mov ebx, dword [edi + 8]
cmp dword [edi + 4], ebx
jbe 0x42f9d2
call fcn.00488c34
cmp edi, edi
je 0x42f9db
call fcn.00488c34
cmp ebp, ebx
je 0x42fa1d
cmp ebp, dword [edi + 8]
jb 0x42f9f3
call fcn.00488c34
cmp ebp, dword [edi + 8]
jb 0x42f9f3
call fcn.00488c34
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
push ecx
push edx
push str._s:_s
call fcn.0044f300
push eax
call fcn.0044fb20
add esp, 0x10
cmp ebp, dword [edi + 8]
jb 0x42fa18
call fcn.00488c34
add ebp, 8
jmp 0x42f9c5
xor ebp, ebp
nop
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x42fac0
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jae 0x42fac0
push str.MODEL
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x42fa5c
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x42fa61
call fcn.00488c34
mov eax, dword [edi + 4]
mov ecx, dword [eax + ebp*8]
cmp dword [ecx - 0xc], 0
je 0x42fab8
mov ecx, eax
test ecx, ecx
je 0x42fa7f
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x42fa84
call fcn.00488c34
mov edx, dword [edi + 4]
mov ebx, dword [edx + ebp*8 + 4]
mov ecx, edx
test ecx, ecx
je 0x42fa9d
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x42faa2
call fcn.00488c34
mov eax, dword [edi + 4]
mov ecx, dword [eax + ebp*8]
push ebx
push ecx
push str.MODEL
lea ecx, [esp + 0x38]
call fcn.00453a70
add ebp, 1
jmp 0x42fa20
xor edi, edi
xor ebx, ebx
mov eax, dword [esi + 0x18]
test eax, eax
je 0x42fbaa
mov ecx, dword [esi + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x42fbaa
mov eax, dword [esi + 0x18]
test eax, eax
je 0x42fb0c
mov ecx, dword [esi + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fb11
call fcn.00488c34
mov eax, dword [esi + 0x18]
add eax, ebx
mov eax, dword [eax]
push eax
push str.DELFILES
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
call fcn.004252c0
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], 2
call fcn.00454dc0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x42fb5d
mov ecx, dword [esi + 0x1c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fb62
call fcn.00488c34
mov ecx, dword [esi + 0x18]
mov eax, dword [ebx + ecx + 4]
mov edx, dword [esp + 0x14]
push eax
push 0
push edx
lea ecx, [esp + 0x38]
call fcn.00453a70
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fb9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
add ebx, 0xc
jmp 0x42fac4
xor edi, edi
xor ebp, ebp
mov bl, 3
mov eax, dword [esi + 0x28]
test eax, eax
je 0x42fc95
mov ecx, dword [esi + 0x2c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x42fc95
mov eax, dword [esi + 0x28]
test eax, eax
je 0x42fbf8
mov ecx, dword [esi + 0x2c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fbfd
call fcn.00488c34
mov eax, dword [esi + 0x28]
add eax, ebp
mov eax, dword [eax]
push eax
push str.DELFOLDERS
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.004252c0
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], bl
call fcn.00454dc0
mov eax, dword [esi + 0x28]
test eax, eax
je 0x42fc48
mov ecx, dword [esi + 0x2c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fc4d
call fcn.00488c34
mov eax, dword [esi + 0x28]
mov eax, dword [eax + ebp + 4]
mov ecx, dword [esp + 0x14]
push eax
push 0
push ecx
lea ecx, [esp + 0x38]
call fcn.00453a70
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fc8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
add ebp, 0xc
jmp 0x42fbb0
xor edi, edi
xor ebp, ebp
mov bl, 4
jmp 0x42fca0
mov eax, dword [esi + 0x38]
test eax, eax
je 0x42fd85
mov ecx, dword [esi + 0x3c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x42fd85
mov eax, dword [esi + 0x38]
test eax, eax
je 0x42fce8
mov ecx, dword [esi + 0x3c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fced
call fcn.00488c34
mov eax, dword [esi + 0x38]
add eax, ebp
mov eax, dword [eax]
push eax
push str.DELFOLDERS.FORCE
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.004252c0
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], bl
call fcn.00454dc0
mov eax, dword [esi + 0x38]
test eax, eax
je 0x42fd38
mov ecx, dword [esi + 0x3c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42fd3d
call fcn.00488c34
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ebp + 4]
mov ecx, dword [esp + 0x14]
push eax
push 0
push ecx
lea ecx, [esp + 0x38]
call fcn.00453a70
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fd7a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
add ebp, 0xc
jmp 0x42fca0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x14], edi
lea ecx, [ecx]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x42ffbf
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x42ffbf
mov eax, dword [esi + 0x48]
test eax, eax
je 0x42fdda
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42fddf
call fcn.00488c34
mov eax, dword [esi + 0x48]
add eax, edi
mov eax, dword [eax]
push eax
push str.DELREGVAL
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004252c0
mov byte [esp + 0x48], 5
call fcn.0045a356
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42ffb5
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x48]
test eax, eax
mov byte [esp + 0x48], 6
je 0x42fe47
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42fe4c
call fcn.00488c34
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + edi + 4]
add eax, edi
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0042f770
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x48]
test eax, eax
mov byte [esp + 0x48], 7
je 0x42fe8c
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42fe91
call fcn.00488c34
mov ebp, dword [esi + 0x48]
mov eax, dword [esi + 0x48]
add ebp, edi
test eax, eax
je 0x42feb7
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42febc
call fcn.00488c34
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x48]
add edi, dword [esp + 0x14]
test eax, eax
je 0x42fee4
mov ecx, dword [esi + 0x4c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42fee9
call fcn.00488c34
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0x48]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + edx + 8]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
push ecx
push eax
lea ecx, [esp + 0x2c]
push str._s__s__s_0x_x
push ecx
call fcn.00404ae0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0x48], 6
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42ff3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push edi
push 0
push edx
lea ecx, [esp + 0x38]
call fcn.00453a70
lea eax, [edi - 0x10]
mov byte [esp + 0x48], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ff7f
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 + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ffa4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 1
add dword [esp + 0x14], 0x18
mov edi, dword [esp + 0x14]
jmp 0x42fd90
push 0x80004005
call fcn.00401000
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x42ffd0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4301c0
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jae 0x4301c0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x43001a
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x43001f
call fcn.00488c34
mov eax, dword [esi + 0x58]
add eax, edi
mov eax, dword [eax]
push eax
push str.DELREGKEY
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004252c0
mov byte [esp + 0x48], 8
call fcn.0045a356
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42ffb5
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x58]
test eax, eax
mov byte [esp + 0x48], 9
je 0x430087
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x43008c
call fcn.00488c34
mov eax, dword [esi + 0x58]
mov ecx, dword [eax + edi + 4]
add eax, edi
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0042f770
mov ebx, eax
mov eax, dword [esi + 0x58]
test eax, eax
mov byte [esp + 0x48], 0xa
je 0x4300ca
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4300cf
call fcn.00488c34
mov edi, dword [esi + 0x58]
mov eax, dword [esi + 0x58]
add edi, dword [esp + 0x14]
test eax, eax
je 0x4300f7
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4300fc
call fcn.00488c34
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x58]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [edx + ecx + 8]
mov ecx, dword [ebx]
push eax
push ecx
lea edx, [esp + 0x28]
push str._s__s_0x_x
push edx
call fcn.00404ae0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x48], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430146
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push edi
push 0
push edx
lea ecx, [esp + 0x38]
call fcn.00453a70
lea eax, [edi - 0x10]
mov byte [esp + 0x48], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43018a
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 + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4301af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
add dword [esp + 0x14], 0x14
mov edi, dword [esp + 0x14]
jmp 0x42ffd0
xor edi, edi
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x430217
mov eax, dword [esi + 0x6c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x430217
push str.EVENTAPP
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x4301f6
mov eax, dword [esi + 0x6c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4301fb
call fcn.00488c34
mov ecx, dword [esi + 0x68]
mov edx, dword [ecx + edi*8]
push edx
push 0
push str.EVENTAPP
lea ecx, [esp + 0x38]
call fcn.00453a70
add edi, 1
jmp 0x4301c2
xor edi, edi
lea esp, [esp]
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x430275
mov eax, dword [esi + 0x7c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x430275
push str.SHORTCUT
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x430254
mov eax, dword [esi + 0x7c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x430259
call fcn.00488c34
mov eax, dword [esi + 0x78]
mov ecx, dword [eax + edi*8]
push ecx
push 0
push str.SHORTCUT
lea ecx, [esp + 0x38]
call fcn.00453a70
add edi, 1
jmp 0x430220
xor edi, edi
xor ebp, ebp
mov bl, 0xb
jmp 0x430280
mov eax, dword [esi + 0x88]
test eax, eax
je 0x43037d
mov ecx, dword [esi + 0x8c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x43037d
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4302d4
mov ecx, dword [esi + 0x8c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4302d9
call fcn.00488c34
mov eax, dword [esi + 0x88]
add eax, ebp
mov eax, dword [eax]
push eax
push str.DEVICES
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.004252c0
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], bl
call fcn.00454dc0
mov eax, dword [esi + 0x88]
test eax, eax
je 0x43032d
mov ecx, dword [esi + 0x8c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x430332
call fcn.00488c34
mov ecx, dword [esi + 0x88]
mov eax, dword [ecx + ebp + 4]
mov edx, dword [esp + 0x18]
push eax
push 0
push edx
lea ecx, [esp + 0x38]
call fcn.00453a70
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430372
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
add ebp, 0xc
jmp 0x430280
xor edi, edi
nop
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x4303e4
mov eax, dword [esi + 0x9c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x4303e4
push str.SERVICES
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x4303c0
mov eax, dword [esi + 0x9c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4303c5
call fcn.00488c34
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx + edi*8]
push edx
push 0
push str.SERVICES
lea ecx, [esp + 0x38]
call fcn.00453a70
add edi, 1
jmp 0x430380
xor edi, edi
mov dword [esp + 0x14], edi
xor ebx, ebx
lea esp, [esp]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x43057f
mov eax, dword [esi + 0xac]
sub eax, ecx
sar eax, 4
cmp edi, eax
jae 0x43057f
test ecx, ecx
je 0x430424
mov eax, dword [esi + 0xac]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x430429
call fcn.00488c34
mov eax, dword [esi + 0xa8]
add eax, ebx
mov eax, dword [eax]
push eax
push str.AUTOUPDATE
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.004252c0
mov byte [esp + 0x48], 0xc
call fcn.0045a356
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42ffb5
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0xa8]
test ecx, ecx
mov byte [esp + 0x48], 0xd
je 0x43048c
mov eax, dword [esi + 0xac]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x430491
call fcn.00488c34
mov ebp, dword [esi + 0xa8]
mov ecx, dword [esi + 0xa8]
add ebp, ebx
test ecx, ecx
je 0x4304b4
mov eax, dword [esi + 0xac]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x14], eax
jb 0x4304b9
call fcn.00488c34
mov edi, dword [esi + 0xa8]
mov ecx, dword [esi + 0xa8]
add edi, ebx
test ecx, ecx
je 0x4304dc
mov eax, dword [esi + 0xac]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x14], eax
jb 0x4304e1
call fcn.00488c34
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 8]
mov eax, dword [esi + 0xa8]
push ecx
mov ecx, dword [eax + ebx]
push edx
push ecx
lea edx, [esp + 0x28]
push str._s__s__s
push edx
call fcn.00404ae0
mov eax, dword [esp + 0x2c]
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push edi
push 0
push ecx
lea ecx, [esp + 0x38]
call fcn.00453a70
lea eax, [edi - 0x10]
mov byte [esp + 0x48], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430549
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 + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43056e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x14], 1
mov edi, dword [esp + 0x14]
add ebx, 0x10
jmp 0x4303f0
xor ebx, ebx
xor ebp, ebp
mov ecx, dword [esi + 0xb8]
test ecx, ecx
mov dword [esp + 0x14], ebx
je 0x43077c
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jae 0x43077c
call fcn.0045a356
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42ffb5
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0xb8]
test ecx, ecx
mov byte [esp + 0x48], 0xe
je 0x4305ea
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x4305ef
call fcn.00488c34
mov ecx, dword [esi + 0xb8]
mov edx, dword [ecx + ebp + 4]
push edx
lea eax, [esp + 0x1c]
push 0x4c6328
push eax
call fcn.00404ae0
mov ecx, dword [esi + 0xb8]
add esp, 0xc
test ecx, ecx
je 0x430625
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x43062a
call fcn.00488c34
mov eax, dword [esi + 0xb8]
mov ecx, dword [eax + ebp + 8]
or ecx, dword [eax + ebp + 0xc]
je 0x430707
mov ecx, eax
test ecx, ecx
je 0x430653
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x430658
call fcn.00488c34
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb8]
add eax, ebp
test ecx, ecx
mov dword [esp + 0x28], eax
je 0x43067d
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x430682
call fcn.00488c34
mov ebx, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb8]
add ebx, ebp
test ecx, ecx
je 0x4306a5
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x14], eax
jb 0x4306aa
call fcn.00488c34
mov edi, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb8]
add edi, ebp
test ecx, ecx
je 0x4306cd
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x14], eax
jb 0x4306d2
call fcn.00488c34
mov edx, dword [esp + 0x28]
movzx eax, word [edx + 8]
movzx ecx, word [ebx + 0xa]
movzx edx, word [edi + 0xc]
push eax
mov eax, dword [esi + 0xb8]
push ecx
movzx ecx, word [eax + ebp + 0xe]
push edx
push ecx
lea edx, [esp + 0x28]
push str.__d._d._d._d
push edx
call fcn.0040c8b0
mov ebx, dword [esp + 0x2c]
add esp, 0x18
push str.FILEREVISION
lea ecx, [esp + 0x30]
call fcn.00454dc0
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x43072e
mov eax, dword [esi + 0xbc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x430733
call fcn.00488c34
mov eax, dword [esi + 0xb8]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + ebp]
push edi
push eax
push str.FILEREVISION
lea ecx, [esp + 0x38]
call fcn.00453a70
lea eax, [edi - 0x10]
mov byte [esp + 0x48], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430771
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 1
add ebp, 0x10
jmp 0x430583
mov esi, dword [esp + 0x50]
push 2
push esi
lea ecx, [esp + 0x34]
call fcn.00452220
test eax, eax
jne 0x4307c7
push esi
push str._ERROR_Failed_to_save_logfile:__s
call fcn.0044f300
push eax
call fcn.0044fb20
add esp, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x48], 0
call fcn.00454bc0
lea ecx, [esp + 0x20]
mov dword [esp + 0x48], 0xffffffff
call fcn.00403f90
xor al, al
jmp 0x4307e8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x48], 0
call fcn.00454bc0
lea ecx, [esp + 0x20]
mov dword [esp + 0x48], 0xffffffff
call fcn.00403f90
mov al, 1
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 4