Function at 0x100f0960
Capabilities:
Create process on windows
Self delete

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x718
cmp byte [ebp + 0x28], 0
mov eax, ecx
push esi
push edi
mov dword [esp + 8], eax
jne 0x100f09c5
cmp byte [eax + 6], 0
lea edx, [eax + 6]
je 0x100f190c
mov eax, dword [0x10159260]
mov ecx, str.Config
push 0x3a
or dword [eax + 0x1c18], 2
mov dword [eax + 0x1c38], 0x43a00000
mov dword [eax + 0x1c3c], 0
mov dword [eax + 0x1c20], 1
call fcn.100499d0
test al, al
je 0x100f1907
mov ecx, dword [0x10159260]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
mov eax, dword [eax + 0x198]
test eax, eax
je 0x100f09f9
cmp dword [eax + 0x10], 2
jne 0x100f09f4
cmp dword [eax + 4], 1
je 0x100f0a07
call fcn.100617a0
push 1
mov edx, 2
xor ecx, ecx
call fcn.10060e30
movss xmm0, dword [0x10150cfc]
mov ecx, 1
call fcn.10060b10
mov edx, 0x1015ba48
mov ecx, str.Incremental_Load
call fcn.100642c0
mov eax, dword [0x10159260]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0x1b94]
mov edi, dword [eax + 0x1c0]
lea esi, [eax + 0x1bc]
mov ecx, dword [esi]
mov dword [esp + 0x10], eax
cmp ecx, edi
jne 0x100f0a73
inc ecx
test edi, edi
je 0x100f0a5d
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100f0a62
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0x1b4]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x10]
inc dword [esi]
mov ecx, dword [0x1015856c]
mov esi, dword [ebp + 0x24]
mov dword [eax + 0x1b4], 0x43200000
mov eax, dword [esp + 0xc]
lea edi, [esi + 0xb4c]
mov dword [esp + 0x10], edi
and dword [eax + 0x1c78], 0xfffffffe
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1015eeb4]
cmp eax, dword [ecx + 4]
jle 0x100f0af5
push 0x1015eeb4
call fcn.100fdcb4
add esp, 4
cmp dword [0x1015eeb4], 0xffffffff
jne 0x100f0af5
push 0x1012a020
call fcn.100fe05d
add esp, 4
push 0x1015eeb4
call fcn.100fdc6a
add esp, 4
mov ecx, dword [esp + 8]
xorps xmm1, xmm1
mov eax, dword [0x10159260]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [eax + 0x18]
comiss xmm1, xmm0
movss dword [ecx + 0xc], xmm0
jb 0x100f0ba9
mov ecx, esi
call fcn.10087330
mov edi, dword [esi + 0xb50]
mov eax, dword [esi + 0xb4c]
mov esi, eax
mov dword [esp + 0xc], eax
cmp esi, edi
je 0x100f0b97
nop word [eax + eax]
cmp dword [0x10157da0], 0x10
mov eax, 0x10157d8c
mov ecx, esi
cmovae eax, dword [0x10157d8c]
cmp dword [esi + 0x14], 0x10
jb 0x100f0b5d
mov ecx, dword [esi]
push dword [0x10157d9c]
mov edx, dword [esi + 0x10]
push eax
call fcn.10097af0
test al, al
jne 0x100f0b77
add esi, 0x18
cmp esi, edi
jne 0x100f0b40
mov eax, dword [esp + 0xc]
cmp esi, edi
je 0x100f0b97
sub esi, eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x10157d88], eax
mov eax, dword [esp + 8]
mov esi, dword [ebp + 0x24]
mov edi, dword [esp + 0x10]
mov dword [eax + 0xc], 0x3dcccccd
mov ecx, dword [esi + 0xb50]
mov eax, 0x2aaaaaab
sub ecx, dword [edi]
imul ecx
mov eax, dword [0x10157d88]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
or edx, 0xffffffff
cmp eax, ecx
push 5
cmovae eax, edx
mov dword [0x10157d88], eax
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0xb50]
sub ecx, dword [edi]
imul ecx
mov ecx, 0x10136c92
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0x10157d88
push eax
push edi
push 0x100f1950
call fcn.10074b80
test al, al
je 0x100f0c39
mov eax, dword [0x10157d88]
cmp eax, 0xffffffff
je 0x100f0c39
lea ecx, [eax + eax*2]
mov eax, dword [edi]
lea eax, [eax + ecx*8]
cmp eax, 0x10157d8c
je 0x100f0c39
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x100f0c2d
mov eax, dword [eax]
push ecx
push eax
mov ecx, 0x10157d8c
call fcn.10094520
xor ecx, ecx
call fcn.1004c4b0
mov eax, dword [0x10157da0]
mov edx, 0x10157d8c
cmp eax, 0x10
mov dword [esp + 0x3c], 0x10157d8c
mov ecx, 0x10136c92
mov dword [esp + 0x40], 0
cmovae edx, dword [0x10157d8c]
lea esi, [eax + 1]
mov dword [esp + 0x44], 0
lea eax, [esp + 0x3c]
mov dword [esp + 0x14], 0
push eax
push 0x1005f5d0
push 0x40020
lea eax, [esp + 0x20]
mov dword [esp + 0x24], 0
push eax
push esi
push edx
mov edx, str.config_name
call fcn.1006aa80
test al, al
je 0x100f0dbb
mov esi, dword [0x10157d88]
cmp esi, 0xffffffff
je 0x100f0dbb
cmp dword [0x10157da0], 0x10
lea ecx, [esp + 0xc8]
mov eax, dword [0x10157d9c]
mov edi, 0x10157d8c
cmovae edi, dword [0x10157d8c]
mov edx, 0xfde9
push eax
push edi
mov dword [esp + 0x10], eax
call fcn.10099600
mov eax, dword [ebp + 0x24]
lea ecx, [esp + 0x48]
add eax, 0xb34
push eax
call fcn.1009c950
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x4c]
call fcn.1009cf10
mov eax, dword [esp + 0x10]
lea esi, [esi + esi*2]
shl esi, 3
mov eax, dword [eax]
add eax, esi
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x100f0d26
mov eax, dword [eax]
push ecx
push eax
mov edx, 0xfde9
lea ecx, [esp + 0xb8]
call fcn.10099600
mov eax, dword [ebp + 0x24]
lea ecx, [esp + 0x24]
add eax, 0xb34
push eax
call fcn.1009c950
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x28]
call fcn.1009cf10
cmp dword [esp + 0x5c], 8
lea ecx, [esp + 0x48]
lea eax, [esp + 0x24]
cmovae ecx, dword [esp + 0x48]
cmp dword [esp + 0x38], 8
push ecx
cmovae eax, dword [esp + 0x28]
push eax
call fcn.100ff41f
lea ecx, [esp + 0x24]
call fcn.1009d100
lea ecx, [esp + 0xb0]
call fcn.1009d100
lea ecx, [esp + 0x48]
call fcn.1009d100
lea ecx, [esp + 0xc8]
call fcn.1009d100
mov eax, dword [esp + 0x10]
push dword [esp + 8]
push edi
mov ecx, dword [eax]
add ecx, esi
call fcn.10094520
mov eax, dword [0x10159260]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.10061440
mov eax, dword [0x10159260]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0x1b94]
mov edi, dword [eax + 0x1c0]
lea esi, [eax + 0x1bc]
mov ecx, dword [esi]
mov dword [esp + 8], eax
cmp ecx, edi
jne 0x100f0e1c
inc ecx
test edi, edi
je 0x100f0e06
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100f0e0b
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov eax, dword [esp + 8]
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0x1b4]
push 0
mov dword [esp + 0x18], 0
mov dword [ecx + edx*4], eax
lea edx, [esp + 0x18]
mov eax, dword [esp + 0xc]
mov ecx, str.Open_config_directory
inc dword [esi]
mov dword [esp + 0x1c], 0
mov dword [eax + 0x1b4], 0x42c80000
mov eax, dword [esp + 0x10]
and dword [eax + 0x1c78], 0xfffffffe
call fcn.10062c40
test al, al
je 0x100f0eb7
mov esi, dword [ebp + 0x24]
add esi, 0xb34
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x100f0e7c
mov eax, dword [esi]
push eax
call fcn.100fef08
push esi
lea ecx, [esp + 0x28]
call fcn.1009c950
cmp dword [esp + 0x38], 8
lea eax, [esp + 0x24]
push 1
cmovae eax, dword [esp + 0x28]
push 0
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x24]
call fcn.1009d100
push 0
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x42c80000
mov ecx, str.Create_config
mov dword [esp + 0x1c], 0x41c80000
call fcn.10062c40
test al, al
je 0x100f0faf
cmp dword [0x10157da0], 0x10
mov edx, 0x10157d8c
cmovae edx, dword [0x10157d8c]
mov dword [esp + 8], edx
cmp byte [edx], 0
je 0x100f0faf
mov eax, dword [esp + 0x10]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
cmp edi, eax
je 0x100f0f49
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100f0f15
sub esi, ecx
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x100f0f28
mov ecx, dword [edi]
push esi
push edx
mov edx, dword [edi + 0x10]
call fcn.10097af0
test al, al
mov eax, dword [esp + 0xc]
jne 0x100f0f45
mov edx, dword [esp + 8]
add edi, 0x18
cmp edi, eax
jne 0x100f0f10
mov edx, dword [esp + 8]
mov esi, dword [ebp + 0x24]
cmp edi, dword [esi + 0xb50]
jne 0x100f0faf
cmp eax, dword [esi + 0xb54]
lea edi, [esi + 0xb4c]
je 0x100f0f70
push edx
mov ecx, eax
call fcn.10096cc0
add dword [edi + 4], 0x18
jmp 0x100f0f7d
lea ecx, [esp + 8]
push ecx
push eax
mov ecx, edi
call fcn.10091700
mov ecx, dword [edi + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [edi]
imul ecx
sar edx, 2
mov eax, edx
dec edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, esi
call fcn.10086240
push 0
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x42c80000
mov ecx, str.Reset_config
mov dword [esp + 0x1c], 0x41c80000
call fcn.10062c40
test al, al
je 0x100f1021
mov esi, dword [0x10159260]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, str.Config_to_reset
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100f1009
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100f1018
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004d6b0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100f1044
mov dword [esi + 0x1c18], 0
jmp 0x100f1718
mov eax, dword [esi + 0x1b94]
mov ecx, str.Config_to_reset
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100f1074
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100f1083
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004d9f0
test al, al
je 0x100f1718
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov esi, dword [ebp + 0x24]
mov dword [esp + 8], edi
cmp edi, 1
jne 0x100f10d3
mov eax, dword [0x10159260]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100f10d3
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10064da0
mov ecx, dword [edi*4 + 0x1014ffb0]
lea eax, [esp + 0x1c]
push eax
push 0
xor dl, dl
call fcn.10073ef0
test al, al
je case.default.0x100f10f9
cmp edi, 0xb
ja case.default.0x100f10f9
jmp dword [edi*4 + 0x100f1914]
sub esp, 8
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, esi
call fcn.10086c40
mov eax, dword [esi + 0xaf8]
sub eax, 0
je 0x100f113e
sub eax, 1
je 0x100f1135
sub eax, 1
jne 0x100f1145
xor ecx, ecx
call fcn.10055260
jmp 0x100f1145
xor ecx, ecx
call fcn.10055770
jmp 0x100f1145
xor ecx, ecx
call fcn.10054d60
mov ecx, dword [ebp + 8]
push 1
call fcn.100f24d0
mov edx, dword [ebp + 0xc]
push str.cl_fullupdate
mov ecx, dword [edx + 0x38]
push dword [edx + 0x30]
xor edx, edx
mov eax, dword [ecx]
push dword [eax + 0x3c]
lea eax, [esp + 0x54]
push eax
call fcn.100a0f40
mov eax, dword [eax + 0x18]
call eax
mov byte [0x1015ba37], 1
inc edi
jmp 0x100f10a4
push 0x640
lea eax, [esp + 0xe4]
push 0
push eax
call fcn.101010f0
add esp, 0xc
lea ecx, [esp + 0xe0]
mov edx, 0x28
call fcn.1008cf40
mov edi, dword [ebp + 0x24]
lea esi, [esp + 0xe0]
mov ecx, 0x190
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 8]
inc edi
jmp 0x100f10a1
push 0x3c0
lea eax, [esp + 0xe4]
push 0
push eax
call fcn.101010f0
add esp, 0xc
lea eax, [esp + 0xe1]
mov ecx, 0x28
nop word [eax + eax]
mov dword [eax - 1], 0x10000
lea eax, [eax + 0x18]
mov word [eax - 0x15], 0
mov dword [eax - 0x11], 0
mov dword [eax - 0xd], 0
mov dword [eax - 9], 1
mov dword [eax - 5], 0
sub ecx, 1
jne 0x100f11f0
lea edi, [esi + 0x648]
mov ecx, 0xf0
lea esi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 8]
inc edi
jmp 0x100f10a1
mov eax, dword [ebp + 0x14]
inc edi
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [eax + 4], 0xc8
jmp 0x100f10a4
mov ecx, dword [ebp + 0x10]
xor esi, esi
add ecx, 0x2c
call fcn.100b40a0
mov ecx, dword [ebp + 0x10]
add ecx, 0xc
call fcn.100b4100
mov ecx, dword [ebp + 0x10]
inc edi
mov word [esp + 0xc], 0x142
mov ax, word [esp + 0xc]
mov word [ecx + 0x4c], ax
mov byte [ecx + 0x4e], 0x42
jmp 0x100f10a1
mov ecx, dword [ebp + 0x24]
xor esi, esi
add ecx, 0xa0c
call fcn.10089af0
inc edi
jmp 0x100f10a1
mov byte [esp + 0xe2], 0
push 0x16c
mov word [esp + 0xe4], 0x142
mov byte [esp + 0xe6], 0x42
mov dword [esp + 0xf0], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xf0]
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 7
mov dword [esp + 0x108], 8
mov dword [esp + 0xec], 0x3f800000
call fcn.1008a330
push 0x16c
mov dword [esp + 0x110], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0x108], eax
lea ecx, [esp + 0x110]
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 7
mov dword [esp + 0x128], 8
mov dword [esp + 0x10c], 0x3f800000
call fcn.1008a330
push 0xd8
mov dword [esp + 0x130], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0x128], eax
lea ecx, [esp + 0x130]
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 7
mov dword [esp + 0x148], 8
mov dword [esp + 0x12c], 0x3f800000
call fcn.1008a330
push 0x130
mov dword [esp + 0x150], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0x148], eax
lea ecx, [esp + 0x150]
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 7
mov dword [esp + 0x168], 8
mov dword [esp + 0x14c], 0x3f800000
call fcn.1008a330
push 0xc0
mov dword [esp + 0x170], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esp + 0x178], 0
push eax
push 0x10
lea ecx, [esp + 0x178]
mov dword [esp + 0x184], 7
mov dword [esp + 0x188], 8
mov dword [esp + 0x16c], 0x3f800000
call fcn.1008a330
push 0xc0
mov dword [esp + 0x190], 0
call fcn.100fe077
add esp, 4
mov dword [esp + 0x188], eax
lea ecx, [esp + 0x190]
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [eax], eax
push eax
push 0x10
mov dword [eax + 4], eax
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 7
mov dword [esp + 0x1a8], 8
mov dword [esp + 0x18c], 0x3f800000
call fcn.1008a330
lea eax, [esp + 0xe0]
push eax
lea ecx, [esi + 0xa30]
call fcn.10087080
lea ecx, [esp + 0x184]
call fcn.100820c0
lea ecx, [esp + 0x164]
call fcn.100820c0
lea ecx, [esp + 0x144]
call fcn.10082020
lea ecx, [esp + 0x124]
call fcn.10081f80
lea ecx, [esp + 0x104]
call fcn.10081ee0
lea ecx, [esp + 0xe4]
call fcn.10081ee0
inc edi
jmp 0x100f10a4
mov ecx, dword [ebp + 0x18]
call fcn.100c2710
inc edi
jmp 0x100f10a4
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.100dc400
mov edx, dword [ebp + 0xc]
push str.cl_fullupdate
mov ecx, dword [edx + 0x38]
push dword [edx + 0x30]
xor edx, edx
mov eax, dword [ecx]
push dword [eax + 0x3c]
lea eax, [esp + 0x30]
push eax
call fcn.100a0f40
mov eax, dword [eax + 0x18]
call eax
mov byte [0x1015ba37], 1
inc edi
jmp 0x100f10a4
push 0x30
lea eax, [esp + 0x68]
mov dword [esp + 0x64], 0x64
push 0
push eax
call fcn.101010f0
movaps xmm0, xmmword [0x10150ed0]
add esp, 0xc
movaps xmm1, xmmword [0x10150ed0]
inc edi
movups xmmword [esp + 0x64], xmm0
movaps xmm0, xmmword [0x10150ed0]
movups xmmword [esp + 0x74], xmm0
movups xmm0, xmmword [esp + 0x60]
movups xmmword [esp + 0x84], xmm1
movups xmmword [0x10157d2c], xmm0
movups xmm0, xmmword [esp + 0x70]
psrldq xmm1, 0xc
movups xmmword [0x10157d3c], xmm0
movups xmm0, xmmword [esp + 0x80]
movd dword [0x10157d5c], xmm1
movups xmmword [0x10157d4c], xmm0
jmp 0x100f10a4
xor eax, eax
xor ecx, ecx
mov dword [esi + 0xaf4], eax
mov dword [esi + 0xaf8], eax
call fcn.10054d60
inc edi
jmp 0x100f10a4
inc edi
mov dword [esp + 8], edi
cmp edi, 0xc
jl 0x100f10a8
jmp 0x100f16d8
call fcn.100faf50
mov ecx, dword [ebp + 8]
push 1
call fcn.100f24d0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100f16fc
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100f170c
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov byte [esi + 0x1b46], 0
cmp dword [0x10157d88], 0xffffffff
je 0x100f18cd
push 0
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0x42c80000
mov ecx, str.Load_selected
mov dword [esp + 0x24], 0x41c80000
call fcn.10062c40
mov esi, dword [esp + 0x10]
test al, al
je 0x100f17ef
mov eax, dword [0x10157d88]
lea ecx, [eax + eax*2]
mov eax, dword [esi]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea ecx, [eax + ecx*8]
jb 0x100f1767
mov ecx, dword [ecx]
movzx eax, byte [0x1015ba48]
mov edi, dword [ebp + 0x24]
push eax
push ecx
sub esp, 8
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, edi
call fcn.10083230
mov eax, dword [edi + 0xaf8]
sub eax, 0
je 0x100f17b1
sub eax, 1
je 0x100f17a8
sub eax, 1
jne 0x100f17b8
xor ecx, ecx
call fcn.10055260
jmp 0x100f17b8
xor ecx, ecx
call fcn.10055770
jmp 0x100f17b8
xor ecx, ecx
call fcn.10054d60
mov edx, dword [ebp + 0xc]
push str.cl_fullupdate
mov ecx, dword [edx + 0x38]
push dword [edx + 0x30]
xor edx, edx
mov eax, dword [ecx]
push dword [eax + 0x3c]
lea eax, [esp + 0x30]
push eax
call fcn.100a0f40
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [ebp + 8]
push 1
mov byte [0x1015ba37], 1
call fcn.100f24d0
jmp 0x100f17f2
mov edi, dword [ebp + 0x24]
push 0
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0x42c80000
mov ecx, str.Save_selected
mov dword [esp + 0x24], 0x41c80000
call fcn.10062c40
test al, al
je 0x100f1836
push dword [0x10157d88]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, edi
call fcn.10086240
push 0
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0x42c80000
mov ecx, str.Delete_selected
mov dword [esp + 0x24], 0x41c80000
call fcn.10062c40
test al, al
je 0x100f18cd
push ecx
mov ecx, edi
call fcn.10086ad0
mov ecx, dword [edi + 0xb50]
mov eax, 0x2aaaaaab
mov esi, dword [esi]
sub ecx, esi
imul ecx
mov ecx, dword [0x10157d88]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jae 0x100f18ad
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*8]
cmp eax, 0x10157d8c
je 0x100f18cd
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x100f189f
mov eax, dword [eax]
push edx
push eax
mov ecx, 0x10157d8c
call fcn.10094520
jmp 0x100f18cd
cmp dword [0x10157da0], 0x10
mov eax, 0x10157d8c
mov dword [0x10157d9c], 0
cmovae eax, dword [0x10157d8c]
mov byte [eax], 0
mov ecx, dword [0x10159260]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
mov eax, dword [eax + 0x198]
test eax, eax
je 0x100f1901
cmp dword [eax + 0x10], 1
jne 0x100f18fc
cmp dword [eax + 4], 0
je 0x100f1901
call fcn.100617a0
cmp byte [ebp + 0x28], 0
jne 0x100f190c
call fcn.1004bc10
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x24