Function at 0x10022aac
Capabilities:
Reference sql statements

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x244
mov eax, dword [0x10036090]
xor eax, ebp
mov dword [ebp + 0x70], eax
and dword [ebp - 0x5c], 0
push ebx
mov ebx, dword [ebp + 0x7c]
cmp dword [ebx + 0x4c], 0xbdf20da3
push edi
mov edi, dword [ebx]
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x64], edi
mov byte [ebp - 0x98], al
je 0x10022af5
push 0x15
pop eax
jmp 0x1002629c
lea eax, [ebx + 0x11c]
push esi
mov esi, dword [ebx + 0x28]
push eax
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x15c], eax
call fcn.1000280b
cmp dword [ebx + 0x7c], 7
pop ecx
je 0x10022d0b
mov eax, dword [ebx + 0xfc]
and dword [ebx + 0x7c], 0
test eax, eax
je 0x10022b3e
push eax
lea edi, [ebp - 0x60]
call fcn.10022969
and dword [ebx + 0xfc], 0
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x64]
pop ecx
mov byte [ebx + 0x104], 0
and dword [edi + 0x100], 0
cmp dword [edi + 0xa8], 0
jne 0x10026240
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x1e], 0
jne 0x10022d0b
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x84]
mov ebx, ecx
imul ebx, ebx, 0x14
add ebx, dword [edi + 0x14]
mov al, byte [ebx]
mov byte [ebp - 0x85], al
movzx eax, al
lea edx, [eax - 1]
cmp edx, 0x8d
mov dword [ebp - 0x70], eax
ja case.0x10022b9a.13
jmp dword [edx*4 + 0x100262b0]
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0xa8], 0
jne 0x10026240
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
jmp case.0x10022b9a.13
lea eax, [edi + 0xf0]
mov edx, dword [eax]
inc ecx
mov dword [edi + edx*4 + 0x8c], ecx
inc dword [eax]
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0x78], eax
jmp case.0x10022b9a.13
lea eax, [edi + 0xf0]
dec dword [eax]
mov eax, dword [eax]
mov edi, dword [edi + eax*4 + 0x8c]
dec edi
mov dword [ebp - 0x78], edi
jmp case.0x10022b9a.13
add esi, 0x48
mov word [esi + 0x1c], 4
mov eax, dword [ebx + 4]
cdq
mov dword [esi], eax
mov dword [ebp - 0x60], esi
mov dword [esi + 4], edx
jmp case.0x10022b9a.13
add esi, 0x48
mov dword [ebp - 0x60], esi
mov word [esi + 0x1c], 4
push 8
push dword [ebx + 0xc]
push esi
call sub.MSVCR80.dll_memcpy
add esp, 0xc
jmp case.0x10022b9a.13
add esi, 0x48
mov dword [ebp - 0x60], esi
mov word [esi + 0x1c], 8
add esi, 8
jmp 0x10022c1b
push dword [ebx + 0xc]
mov byte [ebx], 0x1a
call sub.MSVCR80.dll_strlen
pop ecx
mov dword [ebx + 4], eax
add esi, 0x48
mov word [esi + 0x1c], 0xa2
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x18], eax
mov al, byte [ebp - 0x98]
mov dword [ebp - 0x60], esi
mov byte [esi + 0x1f], al
jmp case.0x10022b9a.13
add esi, 0x48
mov word [esi + 0x1c], 1
and dword [esi + 0x18], 0
mov dword [ebp - 0x60], esi
jmp case.0x10022b9a.13
mov ebx, dword [ebx + 4]
mov eax, dword [edi + 0x40]
dec ebx
imul ebx, ebx, 0x48
add eax, ebx
push eax
call fcn.100293f8
test eax, eax
pop ecx
jne 0x1002332f
mov eax, dword [edi + 0x40]
add esi, 0x48
push 0x80
add eax, ebx
push eax
push esi
mov dword [ebp - 0x60], esi
call fcn.10029421
jmp 0x10022c26
push dword [ebx + 4]
jmp 0x1002608f
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x48
mov eax, esi
mov edi, 0x100
sub eax, ecx
push edi
add esi, 0x48
push eax
push esi
mov dword [ebp - 0x60], esi
call fcn.10029421
add esp, 0xc
cmp dword [ebx + 8], 0
je case.0x10022b9a.13
test word [esi + 0x1c], di
je case.0x10022b9a.13
push esi
call fcn.100295bd
test eax, eax
pop ecx
je case.0x10022b9a.13
mov eax, dword [ebp - 0x64]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0x84]
push 0
add eax, 0x100
push str.out_of_memory
push eax
call fcn.10013a85
mov esi, dword [ebp - 0x60]
add esp, 0xc
mov dword [ebp - 0x5c], 7
jmp 0x10025b08
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x60]
imul ecx, ecx, 0x48
mov esi, eax
sub esi, ecx
test word [eax + 0x1c], 0x100
push 0x12
pop ecx
lea edi, [ebp - 0x58]
mov dword [ebp - 0x6c], esi
rep movsd dword es:[edi], dword [esi]
je 0x10022d67
push eax
call fcn.100295bd
test eax, eax
pop ecx
jne 0x10022d0b
and dword [ebp - 0x80], 0
cmp dword [ebx + 4], 0
jle 0x10022dd0
mov eax, dword [ebp - 0x6c]
add eax, 0x48
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
test word [eax + 0x1c], 0x100
je 0x10022d9a
push eax
call fcn.100295bd
test eax, eax
pop ecx
jne 0x10022d0b
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x6c]
push 0x12
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
test word [eax - 0x2c], 0x200
je 0x10022db8
lea ecx, [eax - 0x24]
mov dword [eax - 0x34], ecx
inc dword [ebp - 0x80]
add dword [ebp - 0x6c], 0x48
add eax, 0x48
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebx + 4]
jl 0x10022d7d
mov eax, dword [ebp - 0x60]
push 0x12
pop ecx
lea esi, [ebp - 0x58]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
test word [eax + 0x1c], 0x200
je case.0x10022b9a.13
lea ecx, [eax + 0x24]
mov dword [eax + 0x14], ecx
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
mov ecx, esi
sub ecx, eax
push esi
push ecx
call fcn.10029853
sub esi, 0x48
pop ecx
mov dword [ebp - 0x60], esi
jmp 0x10026097
mov eax, dword [ebx + 4]
inc eax
inc eax
mov ecx, eax
imul ecx, ecx, 0x48
mov edx, esi
sub edx, ecx
lea ecx, [edx + 0x48]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x7c], ecx
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x6c], ecx
jle 0x10022ef5
mov eax, dword [ebp - 0x7c]
movzx eax, word [eax + 0x1c]
test al, 1
jne 0x10022eb1
test ax, 0x800
je 0x10022e61
push dword [ebp - 0x7c]
call fcn.10029545
pop ecx
mov eax, dword [ebp - 0x7c]
test byte [eax + 0x1c], 0x12
jne 0x10022e8a
movzx eax, byte [ebp - 0x98]
push eax
push dword [ebp - 0x7c]
call fcn.100291ff
test eax, eax
pop ecx
pop ecx
jne 0x10022d0b
mov edi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x18]
cdq
add dword [ebp - 0xc4], eax
adc dword [ebp - 0xc0], edx
inc dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
add dword [ebp - 0x7c], 0x48
cmp eax, dword [ebp - 0x94]
jl 0x10022e47
jmp 0x10022ebf
or dword [ebp - 0xc4], 0xffffffff
or dword [ebp - 0xc0], 0xffffffff
xor eax, eax
cmp dword [ebp - 0xc0], eax
jg 0x10022ef5
jl 0x10022ed3
cmp dword [ebp - 0xc4], eax
jae 0x10022ef5
cmp dword [ebx + 8], eax
jne 0x10022eea
push dword [ebp - 0x94]
lea edi, [ebp - 0x60]
call fcn.10022969
mov esi, dword [ebp - 0x60]
pop ecx
add esi, 0x48
mov dword [ebp - 0x60], esi
jmp 0x10024fa9
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
add eax, 2
adc ecx, 0
test ecx, ecx
jg 0x1002332f
jl 0x10022f1c
cmp eax, 0x3b9aca00
ja 0x1002332f
mov eax, dword [ebp - 0xc4]
add eax, 2
push eax
push dword [ebp - 0x64]
call fcn.10013960
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
je 0x10022d0b
mov eax, dword [ebp - 0x94]
and dword [ebp - 0x6c], 0
test eax, eax
jle 0x10022f7a
mov edi, dword [ebp - 0x74]
add edi, 0x14
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x80]
push eax
push dword [edi]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x6c]
add eax, ecx
push eax
call sub.MSVCR80.dll_memcpy
mov eax, dword [ebp - 0x74]
add dword [ebp - 0x6c], eax
add esp, 0xc
add edi, 0x48
dec dword [ebp - 0x70]
jne 0x10022f52
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x80]
add eax, ecx
mov byte [eax], 0
mov byte [eax + 1], 0
cmp dword [ebx + 8], 0
jne 0x10022fa1
push dword [ebp - 0x94]
lea edi, [ebp - 0x60]
call fcn.10022969
mov esi, dword [ebp - 0x60]
pop ecx
mov eax, dword [ebp - 0x6c]
add esi, 0x48
mov dword [esi + 0x18], eax
mov al, byte [ebp - 0x98]
mov word [esi + 0x1c], 0x62
and dword [esi + 0x20], 0
mov byte [esi + 0x1f], al
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x60], esi
mov dword [esi + 0x14], eax
jmp case.0x10022b9a.13
movzx edx, word [esi + 0x1c]
lea edi, [esi - 0x48]
movzx ecx, word [edi + 0x1c]
movzx eax, cx
movzx edx, dx
or eax, edx
mov dword [ebp - 0x74], eax
test al, 1
movzx eax, word [esi + 0x1c]
mov dword [ebp - 0x68], edi
je 0x10022ff3
test al, 0x40
jmp 0x100231cc
and cl, al
test cl, 4
je 0x100230ae
mov edx, dword [ebp - 0x70]
sub edx, 0x4e
mov ebx, dword [edi]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edi, dword [edi + 4]
je 0x1002307e
dec edx
je 0x10023078
dec edx
je 0x10023069
dec edx
mov edx, eax
je 0x1002303c
or edx, ecx
je 0x100231c1
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10023031
xor eax, eax
inc eax
xor ecx, ecx
push ecx
push eax
push edi
push ebx
call fcn.1002d310
jmp 0x10023072
or edx, ecx
je 0x100231c1
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x1002305e
test ebx, ebx
jne 0x1002305e
cmp edi, 0x80000000
jne 0x1002305e
xor eax, eax
inc eax
xor ecx, ecx
push ecx
push eax
push edi
push ebx
call fcn.1002d0e0
jmp 0x10023072
push ecx
push eax
push edi
push ebx
call fcn.1002d0a0
mov ebx, eax
mov edi, edx
jmp 0x10023082
sub ebx, eax
sbb edi, ecx
jmp 0x10023082
add ebx, eax
adc edi, ecx
movzx eax, word [esi + 0x1c]
test al, 0x40
je 0x10023091
push esi
call fcn.100292d8
pop ecx
mov esi, dword [ebp - 0x68]
test byte [esi + 0x1c], 0x40
mov dword [ebp - 0x60], esi
je 0x100230a4
push esi
call fcn.100292d8
pop ecx
mov dword [esi], ebx
mov dword [esi + 4], edi
jmp 0x1002340a
push esi
call fcn.10029731
fstp qword [ebp - 0xa0]
push edi
call fcn.10029731
movzx eax, byte [ebx]
sub eax, 0x4e
pop ecx
pop ecx
je 0x10023161
dec eax
je 0x10023159
dec eax
je 0x10023151
dec eax
je 0x1002313a
fld qword [ebp - 0xa0]
call fcn.1002d1c6
mov ebx, eax
mov dword [ebp - 0x13c], edx
call fcn.1002d1c6
mov ecx, ebx
or ecx, dword [ebp - 0x13c]
je 0x100231c8
mov ecx, ebx
and ecx, dword [ebp - 0x13c]
cmp ecx, 0xffffffff
jne 0x10023118
xor ebx, ebx
inc ebx
and dword [ebp - 0x13c], 0
push dword [ebp - 0x13c]
push ebx
push edx
push eax
call fcn.1002d310
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], edx
fild qword [ebp - 0x1a8]
jmp 0x10023167
fldz
fcomp qword [ebp - 0xa0]
fnstsw ax
test ah, 0x44
jnp 0x100231c6
fdiv qword [ebp - 0xa0]
jmp 0x10023167
fmul qword [ebp - 0xa0]
jmp 0x10023167
fsub qword [ebp - 0xa0]
jmp 0x10023167
fadd qword [ebp - 0xa0]
fstp qword [ebp - 0xa0]
fld qword [ebp - 0xa0]
fcomp qword [ebp - 0xa0]
fnstsw ax
test ah, 0x44
jp 0x100231c8
test byte [esi + 0x1c], 0x40
je 0x1002318d
push esi
call fcn.100292d8
pop ecx
test byte [edi + 0x1c], 0x40
mov dword [ebp - 0x60], edi
je 0x1002319d
push edi
call fcn.100292d8
pop ecx
test byte [ebp - 0x74], 8
fld qword [ebp - 0xa0]
fstp qword [edi + 8]
mov word [edi + 0x1c], 8
jne case.0x10022b9a.13
push edi
call fcn.10029323
jmp 0x10026097
mov edi, dword [ebp - 0x68]
jmp 0x100231c8
fstp st(0)
test byte [esi + 0x1c], 0x40
je 0x100231d5
push esi
call fcn.100292d8
pop ecx
test byte [edi + 0x1c], 0x40
mov dword [ebp - 0x60], edi
je 0x100231e5
push edi
call fcn.100292d8
pop ecx
mov word [edi + 0x1c], 1
jmp case.0x10022b9a.13
mov eax, dword [edi + 0x2c]
mov edx, dword [ebx + 8]
mov dword [ebp - 0x70], eax
mov eax, edx
imul eax, eax, 0x48
mov ecx, esi
sub ecx, eax
add ecx, 0x48
xor edi, edi
test edx, edx
mov dword [ebp - 0x6c], edx
jle 0x10023221
mov eax, dword [ebp - 0x70]
mov dword [eax + edi*4], ecx
call fcn.1002293d
inc edi
add ecx, 0x48
cmp edi, edx
jl 0x1002320e
cmp dword [ebx + 0x10], 0xfffffffb
mov eax, dword [ebx + 0xc]
jne 0x10023230
and dword [ebp - 0xc], 0
jmp 0x10023235
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
mov edi, dword [ebp - 0x64]
and dword [ebp + 0xc], 0
and dword [ebp + 0x18], 0
mov dword [ebp - 0x10], eax
mov word [ebp + 0x14], 1
mov dword [ebp + 8], edi
mov byte [ebp + 0x44], 0
cmp byte [eax + 3], 0
je 0x1002325c
mov eax, dword [ebx - 8]
mov dword [ebp + 0x48], eax
push edi
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
push dword [ebp - 0x70]
lea eax, [ebp - 0x10]
push dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x10]
call dword [eax + 0x10]
push edi
call fcn.100225fa
add esp, 0x10
test eax, eax
jne 0x10025ac1
cmp byte [edi + 0x1e], al
jne 0x10026198
push dword [ebp - 0x6c]
lea edi, [ebp - 0x60]
call fcn.10022969
cmp dword [ebp - 0xc], 0
pop ecx
je 0x100232c1
push dword [ebx + 4]
push dword [ebp - 0xc]
call fcn.10027d72
mov eax, dword [ebp - 0xc]
pop ecx
pop ecx
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], 0xfffffff9
cmp byte [ebp + 0x44], 0
je 0x100232ef
lea eax, [ebp - 8]
push 0
push eax
call sym.sqlite.dll_sqlite3_value_text
pop ecx
push eax
mov eax, dword [ebp - 0x84]
add eax, 0x100
push eax
call fcn.10013a85
add esp, 0xc
mov dword [ebp - 0x5c], 1
movzx eax, byte [ebp - 0x98]
push eax
lea eax, [ebp - 8]
push eax
call fcn.100291e4
mov esi, dword [ebp - 0x60]
and word [esi + 0x64], 0
lea eax, [ebp - 8]
add esi, 0x48
push eax
push esi
mov dword [ebp - 0x60], esi
call fcn.10029853
push esi
call fcn.100293f8
add esp, 0x14
test eax, eax
je case.0x10022b9a.13
mov edi, dword [ebp - 0x84]
push 0
push str.string_or_blob_too_big
add edi, 0x100
push edi
call fcn.10013a85
add esp, 0xc
mov dword [ebp - 0x5c], 0x12
jmp 0x10025b08
lea eax, [esi - 0x48]
mov cl, byte [eax + 0x1c]
or cl, byte [esi + 0x1c]
mov dword [ebp - 0x68], eax
test cl, 1
je 0x1002337e
push 2
lea edi, [ebp - 0x60]
call fcn.10022969
add dword [ebp - 0x60], 0x48
mov eax, dword [ebp - 0x60]
mov word [eax + 0x1c], 1
jmp 0x10026097
push eax
call fcn.100296c3
push esi
mov edi, eax
mov dword [ebp - 0xf4], edx
call fcn.100296c3
pop ecx
pop ecx
mov ecx, eax
movzx eax, byte [ebx]
sub eax, 0x4a
je 0x100233d7
dec eax
je 0x100233cd
dec eax
je 0x100233b6
dec eax
jne 0x100233df
mov edx, dword [ebp - 0xf4]
mov eax, edi
call fcn.1002d2e0
jmp 0x100233c3
mov edx, dword [ebp - 0xf4]
mov eax, edi
call fcn.1002d080
mov edi, eax
mov dword [ebp - 0xf4], edx
jmp 0x100233df
or edi, ecx
or dword [ebp - 0xf4], edx
jmp 0x100233df
and edi, ecx
and dword [ebp - 0xf4], edx
test byte [esi + 0x1c], 0x40
je 0x100233ec
push esi
call fcn.100292d8
pop ecx
mov esi, dword [ebp - 0x68]
test byte [esi + 0x1c], 0x40
mov dword [ebp - 0x60], esi
je 0x100233ff
push esi
call fcn.100292d8
pop ecx
mov eax, dword [ebp - 0xf4]
mov dword [esi], edi
mov dword [esi + 4], eax
mov word [esi + 0x1c], 4
jmp case.0x10022b9a.13
push esi
call fcn.10029791
mov eax, dword [ebx + 4]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x10026097
push dword [ebp - 0x98]
mov eax, esi
push 0x63
call fcn.10022a3a
movzx eax, word [esi + 0x1c]
test al, 0xc
pop ecx
pop ecx
jne 0x10023458
test al, 0x40
je 0x1002344d
push esi
call fcn.100292d8
pop ecx
sub esi, 0x48
mov dword [ebp - 0x60], esi
jmp 0x10022bb1
test al, 4
je 0x10023471
xor ecx, ecx
xor eax, eax
cmp dword [ebx + 4], ecx
je 0x10023466
inc eax
mov edi, dword [esi]
mov ebx, dword [esi + 4]
add edi, eax
adc ebx, ecx
jmp 0x100234d5
push esi
call fcn.100297b3
fld qword [esi + 8]
pop ecx
call fcn.1002d190
cdq
mov edi, eax
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], edx
fild qword [ebp - 0xec]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x100234af
add edi, 1
adc dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], edi
cmp dword [ebx + 4], 0
je 0x100234cf
fild qword [ebp - 0xec]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x44
jp 0x100234cf
add edi, 1
adc dword [ebp - 0xe8], 0
mov ebx, dword [ebp - 0xe8]
test byte [esi + 0x1c], 0x40
je 0x100234e2
push esi
call fcn.100292d8
pop ecx
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x1002340a
push dword [ebp - 0x98]
mov eax, esi
push 0x63
call fcn.10022a3a
movzx eax, word [esi + 0x1c]
test al, 4
pop ecx
pop ecx
jne 0x10023529
cmp dword [ebx + 8], 0
je 0x100261a7
cmp dword [ebx + 4], 0
je 0x10022bb1
push 1
lea edi, [ebp - 0x60]
call fcn.10022969
pop ecx
jmp 0x10022bb1
test al, 0x40
je 0x1002340a
push esi
call fcn.100292d8
pop ecx
jmp 0x1002340a
test byte [esi + 0x1c], 4
je case.0x10022b9a.13
push esi
call fcn.100297b3
jmp 0x10026097
test byte [esi + 0x1c], 1
jne case.0x10022b9a.13
movzx eax, word [esi + 0x1c]
push dword [ebp - 0x98]
movzx ecx, al
shr cl, 3
push 0x61
and ecx, 2
or ecx, eax
mov eax, esi
mov word [esi + 0x1c], cx
call fcn.10022a3a
test word [esi + 0x1c], 0x800
pop ecx
pop ecx
je 0x10023594
push esi
call fcn.10029545
pop ecx
mov dword [ebp - 0x5c], eax
jmp 0x10023598
and dword [ebp - 0x5c], 0
and word [esi + 0x1c], 0xffe3
jmp case.0x10022b9a.13
movzx eax, word [esi + 0x1c]
test al, 1
jne case.0x10022b9a.13
test al, 0x10
jne 0x100235c9
push dword [ebp - 0x98]
mov eax, esi
push 0x61
call fcn.10022a3a
or word [esi + 0x1c], 0x10
pop ecx
pop ecx
and word [esi + 0x1c], 0xfff1
jmp case.0x10022b9a.13
test byte [esi + 0x1c], 0xd
jne case.0x10022b9a.13
push esi
call fcn.100297d3
jmp 0x10026097
test byte [esi + 0x1c], 1
jne case.0x10022b9a.13
push esi
call fcn.10029791
jmp 0x10026097
test byte [esi + 0x1c], 1
jne case.0x10022b9a.13
jmp 0x10023547
movzx eax, word [esi + 0x1c]
lea edi, [esi - 0x48]
mov cl, byte [edi + 0x1c]
or cl, al
test cl, 1
je 0x1002364d
test word [ebx + 4], 0x200
je 0x100236cb
not eax
and eax, 1
cdq
push edx
push eax
push esi
call fcn.1002939a
movzx eax, word [edi + 0x1c]
not eax
and eax, 1
cdq
push edx
push eax
push edi
call fcn.1002939a
add esp, 0x18
mov al, byte [ebx + 4]
test al, al
mov byte [ebp - 0x138], al
je 0x10023683
push dword [ebp - 0x98]
mov eax, edi
push dword [ebp - 0x138]
call fcn.10022a3a
push dword [ebp - 0x98]
mov eax, esi
push dword [ebp - 0x138]
call fcn.10022a3a
add esp, 0x10
test word [edi + 0x1c], 0x800
je 0x10023692
push edi
call fcn.10029545
pop ecx
test word [esi + 0x1c], 0x800
je 0x100236a1
push esi
call fcn.10029545
pop ecx
push dword [ebx + 0xc]
push esi
push edi
call fcn.10029a32
movzx ecx, byte [ebx]
add esp, 0xc
sub ecx, 0x43
je 0x1002371e
dec ecx
je 0x10023715
dec ecx
je 0x1002370c
dec ecx
je 0x10023703
dec ecx
je 0x100236fa
xor ecx, ecx
test eax, eax
setge cl
jmp 0x10023725
push 2
lea edi, [ebp - 0x60]
call fcn.10022969
mov eax, dword [ebx + 8]
test eax, eax
pop ecx
je 0x100236e8
test word [ebx + 4], 0x100
jmp 0x100240ec
add dword [ebp - 0x60], 0x48
mov eax, dword [ebp - 0x60]
mov word [eax + 0x1c], 1
jmp case.0x10022b9a.13
xor ecx, ecx
test eax, eax
setl cl
jmp 0x10023725
xor ecx, ecx
test eax, eax
setle cl
jmp 0x10023725
xor ecx, ecx
test eax, eax
setg cl
jmp 0x10023725
xor ecx, ecx
test eax, eax
sete cl
jmp 0x10023725
xor ecx, ecx
test eax, eax
setne cl
push 2
lea edi, [ebp - 0x60]
mov esi, ecx
call fcn.10022969
mov ebx, dword [ebx + 8]
test ebx, ebx
pop ecx
je 0x10023746
test esi, esi
je case.0x10022b9a.13
jmp 0x10022bb4
mov ecx, dword [ebp - 0x60]
add ecx, 0x48
mov eax, esi
cdq
mov word [ecx + 0x1c], 4
mov dword [ecx], eax
mov dword [ebp - 0x60], ecx
mov dword [ecx + 4], edx
jmp case.0x10022b9a.13
test byte [esi + 0x1c], 1
lea edi, [esi - 0x48]
je 0x10023770
push 2
pop esi
jmp 0x10023785
push esi
call fcn.10029791
mov eax, dword [esi]
or eax, dword [esi + 4]
pop ecx
jne 0x10023783
xor esi, esi
inc esi
jmp 0x10023785
xor esi, esi
test byte [edi + 0x1c], 1
je 0x10023790
push 2
pop eax
jmp 0x100237a3
push edi
call fcn.10029791
mov eax, dword [edi]
or eax, dword [edi + 4]
pop ecx
jne 0x100237a1
inc eax
jmp 0x100237a3
xor eax, eax
imul esi, esi, 3
cmp byte [ebx], 0x3d
jne 0x100237b5
movzx esi, byte [esi + eax + 0x10033c00]
jmp 0x100237bd
movzx esi, byte [esi + eax + 0x10033c0c]
push 2
lea edi, [ebp - 0x60]
call fcn.10022969
pop ecx
mov ecx, dword [ebp - 0x60]
add ecx, 0x48
cmp esi, 2
mov dword [ebp - 0x60], ecx
jne 0x100237e1
mov word [ecx + 0x1c], 1
jmp case.0x10022b9a.13
xor eax, eax
test esi, esi
sete al
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov word [ecx + 0x1c], 4
jmp case.0x10022b9a.13
test byte [esi + 0x1c], 0xd
jne 0x10023806
push esi
call fcn.100297d3
pop ecx
movzx eax, word [esi + 0x1c]
test al, 8
je 0x1002383d
test al, 0x40
je 0x10023819
push esi
call fcn.100292d8
pop ecx
cmp byte [ebx], 0x55
je 0x1002382a
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x10023832
fld qword [esi + 8]
fchs
fstp qword [esi + 8]
mov word [esi + 0x1c], 8
jmp case.0x10022b9a.13
test al, 4
je case.0x10022b9a.13
test al, 0x40
je 0x10023850
push esi
call fcn.100292d8
pop ecx
cmp byte [ebx], 0x55
je 0x1002386a
cmp dword [esi + 4], 0
jg 0x1002340a
jl 0x1002386a
cmp dword [esi], 0
jae 0x1002340a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
neg eax
adc ecx, 0
neg ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x1002340a
test byte [esi + 0x1c], 1
jne case.0x10022b9a.13
push esi
call fcn.10029791
mov eax, dword [esi]
or eax, dword [esi + 4]
pop ecx
jne 0x1002389b
inc eax
jmp 0x1002389d
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x1002340a
test byte [esi + 0x1c], 1
jne case.0x10022b9a.13
push esi
call fcn.10029791
mov eax, dword [esi]
pop ecx
mov ecx, dword [esi + 4]
not eax
not ecx
jmp 0x10023876
test byte [esi + 0x1c], 1
je 0x100238cf
mov edi, dword [ebx + 4]
jmp 0x100238f4
push esi
call fcn.10029731
fcomp qword [0x1002fa38]
xor edi, edi
pop ecx
fnstsw ax
test ah, 0x44
jnp 0x100238e6
inc edi
cmp byte [ebx], 0x5a
jne 0x100238f4
xor eax, eax
test edi, edi
sete al
mov edi, eax
test byte [esi + 0x1c], 0x40
je 0x10023901
push esi
call fcn.100292d8
pop ecx
sub esi, 0x48
test edi, edi
mov dword [ebp - 0x60], esi
je case.0x10022b9a.13
jmp 0x10022bb1
test byte [esi + 0x1c], 1
je 0x10023934
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 4]
test eax, eax
jge 0x10023934
neg eax
push eax
lea edi, [ebp - 0x60]
call fcn.10022969
pop ecx
mov ebx, dword [ebx + 4]
test ebx, ebx
jle case.0x10022b9a.13
push ebx
jmp 0x1002608f
mov edx, dword [ebx + 4]
mov eax, edx
test eax, eax
jge 0x10023950
neg eax
xor ecx, ecx
test eax, eax
jle 0x10023971
mov edi, eax
imul edi, edi, 0x48
sub esi, edi
add esi, 0x64
test byte [esi], 1
jne 0x1002396d
inc ecx
add esi, 0x48
cmp ecx, eax
jl 0x10023960
cmp ecx, eax
jl 0x10023978
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
test edx, edx
jle case.0x10022b9a.13
push eax
jmp 0x1002608f
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 8]
mov dword [eax + 0x50], ecx
jmp case.0x10022b9a.13
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov dword [ebp - 0xa4], ecx
xor ecx, ecx
add esi, 0x48
mov word [ebp + 0x24], cx
mov word [esi + 0x1c], 1
mov edx, dword [edi + 0x38]
mov eax, dword [edx + eax*4]
cmp dword [eax], ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x68], eax
je 0x10023a52
push eax
call fcn.10027db6
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
and dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0x1c], 0
mov ecx, dword [eax]
mov dword [ebp - 0x7c], ecx
je 0x100239f5
and dword [ebp - 0xa8], 0
jmp 0x10023a45
mov ecx, dword [eax + 0x68]
cmp ecx, dword [edi + 0x5c]
jne 0x10023a0e
mov ecx, dword [eax + 0x6c]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [eax + 0x78]
mov dword [ebp - 0x80], ecx
jmp 0x10023a45
cmp byte [eax + 0x21], 0
je 0x10023a31
lea eax, [ebp - 0x1d0]
push eax
push dword [ebp - 0x7c]
call fcn.10007383
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0xa8], eax
jmp 0x10023a40
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x7c]
call fcn.100073cc
mov eax, dword [ebp - 0x68]
pop ecx
pop ecx
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x94], eax
xor ecx, ecx
jmp 0x10023a87
cmp byte [eax + 0x1e], 0
mov dword [ebp - 0x7c], ecx
je 0x10023a78
mov edx, dword [eax + 0x34]
mov dword [ebp - 0xa8], edx
mov edx, dword [eax + 0x38]
mov dword [eax + 0x68], ecx
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x94], eax
jmp 0x10023a87
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0xa8], ecx
je case.0x10022b9a.13
cmp dword [ebp - 0xa8], 0x3b9aca00
ja 0x1002332f
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x68]
cmp ecx, dword [edi + 0x5c]
jne 0x10023abc
mov ecx, dword [eax + 0x70]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0x6c], ecx
jmp 0x10023c7f
mov eax, dword [eax + 0x70]
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x10023aeb
mov eax, dword [ebp - 0x94]
shl eax, 3
push eax
push dword [ebp - 0x64]
call fcn.10013960
test eax, eax
pop ecx
pop ecx
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov dword [ecx + 0x70], eax
je 0x10022d0b
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xd4], ecx
mov dword [eax + 0x74], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [eax + 0x6c], ecx
mov ecx, dword [edi + 0x5c]
mov edi, dword [ebp - 0x80]
test edi, edi
mov dword [eax + 0x68], ecx
jne 0x10023b56
cmp byte [eax + 0x21], 0
lea eax, [ebp - 0x110]
push eax
push dword [ebp - 0x7c]
je 0x10023b30
call fcn.100044bf
jmp 0x10023b35
call fcn.100044dd
mov edi, eax
mov eax, dword [ebp - 0x110]
cmp eax, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x68]
pop ecx
pop ecx
jb 0x10023b52
mov dword [ebp - 0x80], edi
mov dword [eax + 0x78], edi
jmp 0x10023b56
and dword [eax + 0x78], 0
movzx eax, byte [edi]
cmp eax, 0x7f
mov dword [ebp - 0xb8], eax
ja 0x10023b6d
mov dword [ebp - 0x70], 1
jmp 0x10023b7f
lea eax, [ebp - 0xb8]
push eax
push edi
call fcn.10022535
pop ecx
pop ecx
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x80], 0
jne 0x10023bbb
mov eax, dword [ebp - 0xb8]
cmp dword [ebp - 0x110], eax
jae 0x10023bbb
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
push 0
push dword [ebp - 0x7c]
call fcn.10029450
add esp, 0x14
test eax, eax
mov dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp - 0xb8]
add eax, edi
cmp dword [ebp - 0x94], 0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x70]
lea ecx, [eax + edi]
mov dword [ebp - 0x5c], ecx
jbe 0x10023c42
mov edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x94]
sub eax, edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp ecx, dword [ebp - 0xc8]
jae 0x10023c36
mov edx, dword [ebp - 0xb8]
mov dword [eax + edi], edx
movzx eax, byte [ecx]
cmp eax, 0x7f
mov dword [edi], eax
ja 0x10023c12
xor eax, eax
inc eax
jmp 0x10023c1d
push edi
push dword [ebp - 0x5c]
call fcn.10022535
pop ecx
pop ecx
push dword [edi]
add dword [ebp - 0x5c], eax
call fcn.10027ee4
add dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x74]
pop ecx
mov ecx, dword [ebp - 0x5c]
jmp 0x10023c3a
and dword [eax + edi], 0
add edi, 4
dec dword [ebp - 0x70]
jne 0x10023bf2
test byte [ebp + 0x24], 0x40
je 0x10023c55
lea eax, [ebp + 8]
push eax
call fcn.100292d8
pop ecx
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebp - 0xc8]
mov word [ebp + 0x24], 1
ja 0x10023d32
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xa8]
ja 0x10023d32
mov eax, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xa4]
shl edi, 2
add eax, edi
mov dword [ebp - 0x74], eax
mov eax, dword [eax]
test eax, eax
je 0x10023cef
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x10023c9e
add eax, ecx
jmp 0x10023cd4
mov eax, dword [ebp - 0x6c]
push dword [edi + eax]
call fcn.10027ee4
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
mov eax, dword [ebp - 0x74]
push dword [eax]
push dword [ebp - 0x7c]
call fcn.10029450
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x6c]
push esi
push dword [edi + ecx]
push eax
call fcn.10027fac
mov al, byte [ebp - 0x98]
add esp, 0xc
mov byte [esi + 0x1f], al
jmp 0x10023d0e
cmp dword [ebx + 0x10], 0xfffffff8
jne 0x10023d08
push 0x80
push dword [ebx + 0xc]
push esi
call fcn.10029421
add esp, 0xc
jmp 0x10023d0e
mov word [esi + 0x1c], 1
test byte [ebp + 0x24], 0x40
je 0x10023d24
mov ax, word [esi + 0x1c]
and ax, 0xfeff
or ax, 0x60
mov word [esi + 0x1c], ax
push esi
call fcn.100295bd
mov dword [ebp - 0x5c], eax
jmp 0x10026097
mov dword [ebp - 0x5c], 0xb
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
xor ecx, ecx
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], ecx
test edx, edx
sete cl
mov dword [ebp - 0xb0], edx
lea ecx, [ecx + ecx - 1]
imul ecx, eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x9c], eax
xor eax, eax
cmp byte [ebx], 0x38
mov dword [ebp - 0xa4], ecx
sete al
imul ecx, ecx, 0x48
and dword [ebp - 0x74], 0
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd4], eax
mov eax, esi
sub eax, ecx
lea ecx, [eax + 0x48]
cmp ecx, esi
mov dword [ebp - 0xcc], eax
movzx eax, byte [edi + 0x109]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x7c], eax
ja 0x10023ea0
mov dword [ebp - 0x80], 0xffffffe8
sub dword [ebp - 0x80], ecx
mov eax, esi
sub eax, ecx
push 0x48
lea ebx, [ecx + 0x1c]
xor edx, edx
pop ecx
div ecx
inc eax
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xd4], 0
je 0x10023e13
push dword [ebp - 0x98]
mov eax, dword [ebp - 0x80]
lea eax, [eax + ebx - 4]
cdq
push 0x48
pop ecx
idiv ecx
mov ecx, dword [ebp - 0xd4]
movzx eax, byte [eax + ecx]
push eax
lea eax, [ebx - 0x1c]
call fcn.10022a3a
pop ecx
pop ecx
movzx eax, word [ebx]
test al, 1
je 0x10023e21
mov dword [ebp - 0x74], 1
test ax, 0x800
je 0x10023e37
cmp dword [ebx - 4], 0
jle 0x10023e37
lea eax, [ebx - 0x1c]
push eax
call fcn.10029545
pop ecx
push dword [ebp - 0x7c]
lea eax, [ebx - 0x1c]
push eax
call fcn.10027e1b
push eax
mov dword [ebp - 0x160], eax
call fcn.10027ee4
mov dword [ebp - 0x174], eax
cdq
add dword [ebp - 0xe0], eax
push 0
push dword [ebp - 0x160]
adc dword [ebp - 0xdc], edx
call fcn.10022595
add dword [ebp - 0x68], eax
add esp, 0x14
test word [ebx], 0x800
je 0x10023e84
mov eax, dword [ebx - 0x1c]
add dword [ebp - 0x6c], eax
jmp 0x10023e91
cmp dword [ebp - 0x174], 0
je 0x10023e91
and dword [ebp - 0x6c], 0
add ebx, 0x48
dec dword [ebp - 0xc8]
jne 0x10023de2
cmp dword [ebp - 0x94], 0
je 0x10023ee7
mov ebx, dword [ebp - 0xcc]
push ebx
mov dword [ebp - 0x70], ebx
call fcn.10029791
push 0
push ebx
call fcn.10027e1b
mov ebx, eax
push ebx
call fcn.10027ee4
cdq
add dword [ebp - 0xe0], eax
push 0
push ebx
adc dword [ebp - 0xdc], edx
call fcn.10022595
add dword [ebp - 0x68], eax
add esp, 0x18
and dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x68]
cdq
push edx
push eax
call fcn.10022595
mov ebx, eax
add dword [ebp - 0x68], ebx
mov eax, dword [ebp - 0x68]
cdq
push edx
push eax
call fcn.10022595
add esp, 0x10
cmp ebx, eax
jge 0x10023f0c
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x6c]
cdq
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x12c], edx
cdq
mov ebx, eax
mov dword [ebp - 0x158], ebx
sub ebx, dword [ebp - 0x130]
mov eax, edx
mov dword [ebp - 0x154], eax
sbb eax, dword [ebp - 0x12c]
add ebx, dword [ebp - 0xe0]
adc eax, dword [ebp - 0xdc]
test eax, eax
mov dword [ebp - 0x1c4], eax
ja 0x1002332f
jb 0x10023f64
cmp ebx, 0x3b9aca00
ja 0x1002332f
test eax, eax
ja 0x10023f6d
cmp ebx, 0x20
jbe 0x10023f85
push ebx
push dword [ebp - 0x64]
call fcn.10013960
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
je 0x10022d0b
jmp 0x10023f8b
lea eax, [ebp + 0x50]
mov dword [ebp - 0x80], eax
push dword [ebp - 0x154]
push dword [ebp - 0x158]
push dword [ebp - 0x80]
call fcn.100223db
mov edi, eax
mov eax, dword [ebp - 0xd0]
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x68], eax
ja 0x10023fd8
push dword [ebp - 0x7c]
push dword [ebp - 0x68]
call fcn.10027e1b
push 0
push eax
mov eax, dword [ebp - 0x80]
add eax, edi
push eax
call fcn.100223db
add dword [ebp - 0x68], 0x48
add esp, 0x14
add edi, eax
cmp dword [ebp - 0x68], esi
jbe 0x10023fb1
cmp dword [ebp - 0x94], 0
je 0x10023ffe
push 0
push dword [ebp - 0x70]
call fcn.10027e1b
push 0
push eax
mov eax, dword [ebp - 0x80]
add eax, edi
push eax
call fcn.100223db
add esp, 0x14
add edi, eax
mov eax, dword [ebp - 0xd0]
cmp eax, esi
mov dword [ebp - 0x68], eax
ja 0x1002402f
push dword [ebp - 0x7c]
mov eax, ebx
push dword [ebp - 0x68]
sub eax, edi
push eax
mov eax, dword [ebp - 0x80]
add eax, edi
push eax
call fcn.10027efb
add dword [ebp - 0x68], 0x48
add esp, 0x10
add edi, eax
cmp dword [ebp - 0x68], esi
jbe 0x1002400b
cmp dword [ebp - 0x94], 0
je 0x10024050
push 0
push dword [ebp - 0x70]
mov eax, ebx
sub eax, edi
push eax
mov eax, dword [ebp - 0x80]
add edi, eax
push edi
call fcn.10027efb
add esp, 0x10
cmp dword [ebp - 0xb0], 0
jne 0x10024074
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x94]
add ecx, eax
push ecx
lea edi, [ebp - 0x60]
call fcn.10022969
mov esi, dword [ebp - 0x60]
pop ecx
add esi, 0x48
cmp dword [ebp - 0x1c4], 0
mov dword [ebp - 0x60], esi
mov dword [esi + 0x18], ebx
ja 0x100240a9
jb 0x1002408d
cmp ebx, 0x20
ja 0x100240a9
push ebx
lea ecx, [ebp + 0x50]
lea eax, [esi + 0x24]
push ecx
push eax
mov dword [esi + 0x14], eax
call sub.MSVCR80.dll_memcpy
add esp, 0xc
mov word [esi + 0x1c], 0x210
jmp 0x100240b9
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x14], eax
mov word [esi + 0x1c], 0x50
and dword [esi + 0x20], 0
cmp dword [ebp - 0x6c], 0
je 0x100240d6
mov eax, dword [ebp - 0x130]
mov dword [esi], eax
mov eax, dword [ebp - 0x12c]
mov dword [esi + 4], eax
or word [esi + 0x1c], 0x800
mov eax, dword [ebp - 0x9c]
test eax, eax
mov byte [esi + 0x1f], 1
je case.0x10022b9a.13
cmp dword [ebp - 0x74], 0
je case.0x10022b9a.13
jmp 0x10022bd2
mov ebx, dword [ebx + 4]
test ebx, ebx
jl case.0x10022b9a.13
mov eax, dword [ebp - 0x64]
cmp ebx, dword [eax + 4]
jge case.0x10022b9a.13
mov ecx, dword [eax + 8]
imul ebx, ebx, 0x18
mov ebx, dword [ebx + ecx + 4]
test ebx, ebx
je case.0x10022b9a.13
cmp byte [eax + 0x1c], 0
jne case.0x10022b9a.13
push ebx
call fcn.10006d04
test eax, eax
pop ecx
jne case.0x10022b9a.13
push ebx
call fcn.10003f71
mov dword [ebp - 0x5c], eax
mov dword [edi + 0x154], 1
jmp 0x10026097
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x60], 1
mov cl, byte [ebx + 4]
mov dl, byte [ebx + 8]
mov byte [ebp - 0x85], cl
jle 0x1002419c
test cl, cl
je 0x1002419c
cmp byte [eax + 0x1c], 0
jne 0x1002419c
test dl, dl
mov eax, str.rollback
jne 0x1002417e
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
push str.cannot
add edi, 0x100
push edi
call fcn.10013a85
add esp, 0x14
jmp 0x100241d0
cmp cl, byte [eax + 0x1c]
jne 0x100261b3
test cl, cl
jne 0x100241b0
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x100241be
test dl, dl
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x100241be
mov eax, str.cannot_commit___no_transaction_is_active
push 0
push eax
add edi, 0x100
push edi
call fcn.10013a85
add esp, 0xc
mov dword [ebp - 0x5c], 1
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x64]
imul eax, eax, 0x18
mov ecx, dword [ecx + 8]
mov eax, dword [eax + ecx + 4]
test eax, eax
je case.0x10022b9a.13
push dword [ebx + 8]
push eax
call fcn.10003b7c
pop ecx
pop ecx
push 5
pop ecx
cmp eax, ecx
mov dword [ebp - 0x5c], eax
je 0x10026207
test eax, eax
je case.0x10022b9a.13
cmp eax, 8
jne 0x10025ac8
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
test eax, eax
mov ebx, dword [ebx + 8]
jge 0x10024236
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
neg ebx
imul eax, eax, 0x18
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx + 8]
inc ebx
push ebx
push dword [eax + ecx + 4]
call fcn.100064fc
add esp, 0xc
add esi, 0x48
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x60], esi
jmp 0x1002389d
mov edi, dword [ebx + 4]
mov eax, dword [ebp - 0x64]
imul edi, edi, 0x18
add edi, dword [eax + 8]
push esi
call fcn.10029791
push dword [esi]
mov eax, dword [ebx + 8]
inc eax
push eax
push dword [edi + 4]
call fcn.10006584
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
jne 0x100242a6
mov eax, dword [edi + 0x14]
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
or dword [eax + 0xc], 0x10
jmp 0x100242b3
cmp eax, 1
jne 0x100242b3
mov eax, dword [edi + 0x14]
mov cl, byte [esi]
mov byte [eax + 0x58], cl
sub esi, 0x48
cmp dword [ebx + 4], 1
mov dword [ebp - 0x60], esi
jne case.0x10022b9a.13
push dword [ebp - 0x64]
call fcn.10028535
jmp 0x10026097
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x64]
imul eax, eax, 0x18
mov ecx, dword [esi + 8]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x100242fb
lea ecx, [ebp - 0x114]
push ecx
push 1
push eax
call fcn.100064fc
add esp, 0xc
mov dword [ebp - 0x5c], eax
jmp 0x10024306
and dword [ebp - 0x5c], 0
and dword [ebp - 0x114], 0
cmp dword [ebp - 0x5c], 0
jne case.0x10022b9a.13
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebx + 8]
je case.0x10022b9a.13
add edi, 0x100
push dword [edi]
call sym.sqlite.dll_sqlite3_free
mov dword [esp], str.database_schema_has_changed
push esi
call fcn.10013a44
mov dword [edi], eax
mov ebx, dword [ebx + 4]
mov eax, ebx
imul eax, eax, 0x18
pop ecx
pop ecx
mov ecx, dword [esi + 8]
mov eax, dword [eax + ecx + 0x14]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x114]
je 0x1002435f
push ebx
push esi
call fcn.10008882
pop ecx
pop ecx
push esi
call fcn.10028535
mov dword [ebp - 0x5c], 0x11
jmp 0x10026097
mov eax, dword [ebx + 4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 8]
push esi
mov dword [ebp - 0x70], eax
call fcn.10029791
mov eax, dword [esi]
mov dword [ebp - 0x9c], eax
imul eax, eax, 0x18
pop ecx
mov ecx, dword [ebp - 0x64]
add eax, dword [ecx + 8]
sub esi, 0x48
cmp byte [ebx], 9
mov ecx, dword [eax + 4]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0xa4], ecx
jne 0x100243c7
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x58]
lea ecx, [edi + 0x109]
cmp al, byte [ecx]
mov dword [ebp - 0x74], 1
jae 0x100243cb
mov byte [ecx], al
jmp 0x100243cb
and dword [ebp - 0x74], 0
cmp dword [ebp - 0x70], 0
jg 0x100243e3
push esi
call fcn.10029791
mov eax, dword [esi]
sub esi, 0x48
pop ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x60], esi
push dword [ebp - 0x9c]
mov eax, dword [ebp - 0xcc]
call fcn.1002298d
mov edi, eax
test edi, edi
pop ecx
je 0x10022d0b
cmp dword [ebp - 0xa4], 0
mov byte [edi + 0x1c], 1
je case.0x10022b9a.13
push edi
push dword [ebx + 0xc]
push fcn.10028174
push dword [ebp - 0x74]
push dword [ebp - 0x70]
push dword [ebp - 0xa4]
call fcn.1000734e
mov ecx, dword [ebp - 0x84]
add esp, 0x18
cmp dword [ebx + 0x10], 0xfffffffa
mov dword [ebp - 0x5c], eax
jne 0x1002445b
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x4c], eax
mov edx, dword [edi + 0x4c]
add eax, 5
mov dword [edi + 0x48], eax
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [edx + 4], al
jmp 0x10024465
and dword [edi + 0x4c], 0
lea eax, [edi + 0x22]
mov dword [edi + 0x48], eax
cmp dword [ebp - 0x5c], 0
je 0x10024498
push 5
pop eax
cmp dword [ebp - 0x5c], eax
je 0x10026215
cmp dword [ebp - 0x5c], 0x10
jne 0x10025ac8
cmp dword [ebx + 0x10], 0xfffffffa
setne al
test al, al
mov byte [edi + 0x20], al
sete al
mov byte [edi + 0x21], al
jmp 0x10025b49
push dword [edi]
call fcn.100065f2
test al, 0xf0
pop ecx
jne 0x100244de
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x100244b3
cmp ecx, 2
jne 0x100244de
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [edi + 0x20], cl
mov byte [edi + 0x21], al
je 0x100244cc
cmp dword [ebx + 0x10], 0xfffffffa
je 0x100244de
test al, al
je case.0x10022b9a.13
cmp dword [ebx + 0x10], 0xfffffffa
je case.0x10022b9a.13
mov dword [ebp - 0x5c], 0xb
jmp 0x10025ac8
mov eax, dword [ebx + 4]
push 0xffffffffffffffff
call fcn.1002298d
mov esi, eax
test esi, esi
pop ecx
je 0x10022d0b
lea edi, [esi + 0x30]
push edi
push 0x41e
push 0x1f4
push 1
push 0
push dword [ebp - 0x64]
mov byte [esi + 0x1c], 1
call fcn.100132d7
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x100245c8
push 1
push dword [edi]
call fcn.10003b7c
mov dword [ebp - 0x5c], eax
xor eax, eax
cmp dword [ebp - 0x5c], eax
pop ecx
pop ecx
jne 0x100245c8
cmp dword [ebx + 0xc], eax
je 0x100245aa
push 2
lea eax, [ebp - 0x17c]
push eax
push dword [edi]
call fcn.100077d4
add esp, 0xc
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x100245a4
push esi
push dword [ebx + 0xc]
push fcn.10028174
push 1
push dword [ebp - 0x17c]
push dword [edi]
call fcn.1000734e
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x4c], eax
mov ecx, dword [ecx]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x59]
mov byte [eax + 4], cl
mov eax, dword [esi + 0x4c]
add esp, 0x18
add eax, 5
mov dword [esi + 0x48], eax
mov byte [esi + 0x20], 0
jmp 0x100245c8
push esi
push eax
push eax
push 1
push 1
push dword [edi]
call fcn.1000734e
mov dword [ebp - 0x5c], eax
lea eax, [esi + 0x22]
add esp, 0x18
mov byte [esi + 0x20], 1
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 8]
cmp byte [esi + 0x20], 0
mov dword [esi + 0x50], eax
sete al
mov byte [esi + 0x21], al
jmp case.0x10022b9a.13
mov ebx, dword [ebx + 4]
push 0xffffffffffffffff
mov eax, ebx
call fcn.1002298d
test eax, eax
pop ecx
je 0x10022d0b
lea ecx, [eax + 0x22]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov dword [eax + 0x48], ecx
mov byte [eax + 0x20], 1
mov byte [eax + 0x21], 0
jmp case.0x10022b9a.13
mov ebx, dword [ebx + 4]
test ebx, ebx
jl case.0x10022b9a.13
cmp ebx, dword [edi + 0x34]
jge case.0x10022b9a.13
mov eax, dword [edi + 0x38]
mov esi, ebx
shl esi, 2
push dword [esi + eax]
push edi
call fcn.100277b3
mov eax, dword [edi + 0x38]
and dword [esi + eax], 0
pop ecx
jmp 0x10026097
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov edi, dword [edx + ecx*4]
cmp dword [edi], 0
je 0x10024797
cmp eax, 7
mov byte [edi + 0x1c], 0
je 0x10024663
cmp eax, 0x59
je 0x10024663
xor eax, eax
jmp 0x10024666
xor eax, eax
inc eax
mov ecx, dword [edi + 0x48]
mov byte [ecx], al
cmp byte [edi + 0x20], 0
je 0x100246d9
push esi
call fcn.10029791
cmp dword [ebx + 8], 0
mov eax, dword [esi]
pop ecx
mov ecx, dword [esi + 4]
jne 0x1002469d
cmp byte [ebx], 0x81
jne 0x1002469d
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
mov byte [edi + 0x1f], 1
sub esi, 0x48
mov dword [ebp - 0x60], esi
jmp case.0x10022b9a.13
lea edx, [ebp - 0xac]
push edx
push 0
push ecx
push eax
push 0
push dword [edi]
call fcn.10004740
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov eax, dword [esi]
cmp dword [ebp - 0xac], 0
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
mov dword [edi + 0xc], eax
sete al
mov byte [edi + 0x19], al
jmp 0x10024712
test word [esi + 0x1c], 0x800
je 0x100246e8
push esi
call fcn.10029545
pop ecx
lea eax, [ebp - 0xac]
push eax
mov eax, dword [esi + 0x18]
push 0
cdq
push edx
push eax
push dword [esi + 0x14]
push dword [edi]
call fcn.10004740
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov byte [edi + 0x19], al
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp dword [ebp - 0x70], 0x81
mov byte [edi + 0x1f], 0
mov dword [edi + 0x68], eax
mov byte [ecx], al
je 0x1002476b
cmp dword [ebp - 0x70], 7
je 0x1002476b
cmp dword [ebp - 0xac], eax
jl 0x10024747
lea eax, [ebp - 0xac]
push eax
push dword [edi]
call fcn.100075fb
jmp 0x10024781
push dword [edi]
call fcn.100049a7
pop ecx
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x10024797
mov ebx, dword [ebx + 8]
test ebx, ebx
jle 0x10024793
dec ebx
mov dword [ebp - 0x78], ebx
jmp 0x10024797
cmp dword [ebp - 0xac], eax
jge 0x1002474f
lea eax, [ebp - 0xac]
push eax
push dword [edi]
call fcn.10007522
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov byte [edi + 0x19], al
jmp 0x10024755
mov byte [edi + 0x1c], 1
test byte [esi + 0x1c], 0x40
je 0x10024692
push esi
call fcn.100292d8
pop ecx
jmp 0x10024692
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov edi, dword [edx + ecx*4]
xor eax, eax
cmp dword [edi], eax
je 0x10024812
test byte [esi + 0x1c], 0x12
jne 0x100247da
movzx eax, byte [ebp - 0x98]
push eax
push esi
call fcn.100291ff
test eax, eax
pop ecx
pop ecx
jne 0x10022d0b
lea eax, [ebp - 0x170]
push eax
mov eax, dword [esi + 0x18]
push 0
cdq
push edx
push eax
push dword [esi + 0x14]
push dword [edi]
call fcn.10004740
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
cmp dword [ebp - 0x170], eax
mov byte [edi + 0x1f], 0
sete al
and dword [edi + 0x68], 0
mov cl, byte [ebx]
cmp cl, 0x87
jne 0x1002481f
test eax, eax
je 0x1002482a
jmp 0x10024823
test eax, eax
jne 0x1002482a
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
cmp cl, 0x71
je case.0x10022b9a.13
jmp 0x10024797
mov eax, dword [ebx + 4]
mov dword [ebp - 0x9c], eax
lea eax, [esi - 0x48]
push esi
mov dword [ebp - 0x68], eax
call fcn.10029791
mov eax, dword [esi]
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x14c], eax
mov eax, dword [edi + 0x38]
pop ecx
mov ecx, dword [ebp - 0x9c]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi]
test eax, eax
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x70], eax
je case.0x10022b9a.13
mov eax, esi
test byte [eax + 0x1c], 0x12
jne 0x1002489e
movzx eax, byte [ebp - 0x98]
push eax
push esi
call fcn.100291ff
test eax, eax
pop ecx
pop ecx
jne 0x10022d0b
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
push ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x9c], eax
call fcn.10028385
mov ecx, dword [ebp - 0x9c]
and dword [edi + 0x68], 0
sub ecx, eax
lea eax, [ebp - 0xe4]
push eax
mov eax, ecx
push 0
cdq
push edx
push eax
push dword [ebp - 0x74]
mov dword [ebp - 0x9c], ecx
push dword [ebp - 0x70]
call fcn.10004740
add esp, 0x1c
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
cmp dword [ebp - 0xe4], eax
jge 0x10024918
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0x70]
call fcn.10007522
cmp dword [ebp - 0xe4], 0
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10022bb1
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0x74]
push dword [ebp - 0x9c]
push edi
call fcn.10028480
add esp, 0x10
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
cmp dword [ebp - 0xe4], eax
jg 0x10022bb1
lea eax, [ebp - 0x168]
push eax
push dword [ebp - 0x70]
call fcn.100283b6
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x150]
jne 0x10024984
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x14c]
je 0x10022bb1
add esi, 0x48
mov dword [esi], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x60], esi
jmp 0x10023407
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je 0x10024797
mov ecx, dword [esi + 4]
mov eax, dword [esi]
lea edx, [ebp - 0x134]
push edx
push 0
push ecx
push eax
push 0
push dword [edi]
call fcn.10004740
mov dword [ebp - 0x5c], eax
mov eax, dword [esi]
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
mov dword [edi + 0xc], eax
xor eax, eax
add esp, 0x18
cmp dword [ebp - 0x134], eax
mov byte [edi + 0x1c], al
sete cl
cmp dword [ebp - 0x134], eax
mov byte [edi + 0x19], cl
mov dword [edi + 0x68], eax
je 0x10024797
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
mov byte [edi + 0x19], al
jmp 0x10024797
mov ebx, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, ebx
shl eax, 2
mov ecx, dword [eax + ecx]
mov edx, dword [ecx + 0x58]
add esi, 0x48
mov dword [esi], edx
mov ecx, dword [ecx + 0x5c]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 0x38]
mov eax, dword [eax + ecx]
add dword [eax + 0x58], 1
mov dword [ebp - 0x60], esi
adc dword [eax + 0x5c], 0
jmp 0x1002340a
and dword [ebp - 0x90], 0
and dword [ebp - 0x8c], 0
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x68], eax
mov eax, dword [eax]
test eax, eax
je 0x10024cc3
and dword [ebp - 0x70], 0
push eax
call fcn.100065f2
and al, 3
cmp al, 1
pop ecx
jne 0x100244de
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0x1b], 0
jne 0x10024bc5
cmp byte [eax + 0x1d], 0
je 0x10024a94
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x90], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x8c], eax
jmp 0x10024b0b
lea eax, [ebp - 0xf0]
push eax
mov eax, dword [ebp - 0x68]
push dword [eax]
call fcn.10004710
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
cmp dword [ebp - 0xf0], eax
je 0x10024acc
and dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 1
jmp 0x10024b0b
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x68]
push dword [eax]
call fcn.10007383
cmp dword [ebp - 0x90], 0xffffffff
pop ecx
pop ecx
jne 0x10024afd
cmp dword [ebp - 0x8c], 0x7fffffff
jne 0x10024afd
mov eax, dword [ebp - 0x68]
mov byte [eax + 0x1b], 1
jmp 0x10024b0b
add dword [ebp - 0x90], 1
adc dword [ebp - 0x8c], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10024b79
imul ebx, ebx, 0x48
add ebx, dword [edi + 0x54]
push ebx
call fcn.10029791
mov eax, dword [ebx]
cmp eax, 0xffffffff
pop ecx
mov ecx, dword [ebx + 4]
jne 0x10024b35
cmp ecx, 0x7fffffff
je 0x10026234
mov edx, dword [ebp - 0x68]
cmp byte [edx + 0x1b], 0
jne 0x10026234
mov edx, dword [ebp - 0x8c]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x10024b68
jl 0x10024b5c
cmp dword [ebp - 0x90], eax
jae 0x10024b68
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp - 0x90]
mov dword [ebx], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebx + 4], eax
cmp dword [ebp - 0x8c], 0x7fffffff
ja 0x10024bb1
jb 0x10024b90
cmp dword [ebp - 0x90], 0xffffffff
jae 0x10024bb1
mov eax, dword [ebp - 0x68]
mov byte [eax + 0x1d], 1
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
add ecx, 1
adc edx, 0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x10024bb8
mov eax, dword [ebp - 0x68]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0x1b], 0
je 0x10024cb4
mov edi, dword [ebp - 0x64]
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
xor ebx, ebx
jmp 0x10024be4
mov eax, dword [ebp - 0x90]
or eax, dword [ebp - 0x8c]
je 0x10024c18
cmp ebx, 2
jg 0x10024c18
lea eax, [ebp - 0xb1]
push eax
push 1
call fcn.1001bebe
movzx eax, byte [ebp - 0xb1]
inc eax
cdq
add dword [ebp - 0x90], eax
pop ecx
pop ecx
adc dword [ebp - 0x8c], edx
jmp 0x10024c3e
lea eax, [ebp - 0x90]
push eax
push 8
call fcn.1001bebe
cmp ebx, 5
pop ecx
pop ecx
jge 0x10024c3e
and dword [ebp - 0x90], 0xffffff
and dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x90]
or eax, dword [ebp - 0x8c]
je 0x10024c74
lea eax, [ebp - 0xf0]
push eax
mov eax, dword [ebp - 0x68]
push 0
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push 0
push dword [eax]
call fcn.10004740
add esp, 0x18
mov dword [ebp - 0x70], eax
inc ebx
cmp ebx, 0x3e8
jge 0x10024c8f
cmp dword [ebp - 0x70], 0
jne 0x10024c8f
cmp dword [ebp - 0xf0], 0
je 0x10024bde
cmp dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x90]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x8c]
mov dword [edi + 0x34], eax
jne 0x10024cb4
cmp dword [ebp - 0xf0], 0
je 0x10026234
mov eax, dword [ebp - 0x68]
and dword [eax + 0x68], 0
mov byte [eax + 0x19], 0
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0x90]
add esi, 0x48
mov dword [esi], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x60], esi
jmp 0x10023407
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
xor edx, edx
cmp dword [eax], edx
mov dword [ebp - 0x70], eax
jne 0x10024cf7
cmp byte [eax + 0x1e], dl
je 0x10024e6a
test byte [ebx + 8], 1
mov ecx, dword [esi - 0x48]
mov dword [ebp - 0x108], ecx
mov ecx, dword [esi - 0x44]
mov dword [ebp - 0x104], ecx
je 0x10024d15
inc dword [edi + 0x10c]
test byte [ebx + 8], 2
je 0x10024d2a
mov edi, dword [esi - 0x48]
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0x28], edi
mov edi, dword [esi - 0x44]
mov dword [ecx + 0x2c], edi
cmp byte [eax + 0x1d], 0
je 0x10024d46
mov ecx, dword [esi - 0x44]
cmp ecx, dword [eax + 0x14]
jl 0x10024d46
jg 0x10024d42
mov ecx, dword [esi - 0x48]
cmp ecx, dword [eax + 0x10]
jb 0x10024d46
mov byte [eax + 0x1d], 0
test byte [esi + 0x1c], 1
je 0x10024d52
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], edx
cmp byte [eax + 0x1e], 0
je 0x10024dcf
mov edi, dword [ebp - 0x70]
push dword [edi + 0x38]
call sym.sqlite.dll_sqlite3_free
mov eax, dword [ebp - 0x108]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x104]
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x34], eax
test byte [esi + 0x1c], 0x40
pop ecx
je 0x10024d90
mov eax, dword [esi + 0x14]
mov dword [edi + 0x38], eax
mov word [esi + 0x1c], 1
jmp 0x10024dc9
add eax, 2
push eax
call fcn.10013cad
test eax, eax
pop ecx
mov dword [edi + 0x38], eax
je 0x10022d0b
push dword [edi + 0x34]
push dword [esi + 0x14]
push eax
call sub.MSVCR80.dll_memcpy
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x34]
mov byte [eax + ecx], 0
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x34]
add esp, 0xc
mov byte [eax + ecx + 1], 0
mov byte [edi + 0x1c], 0
jmp 0x10024e0c
test word [esi + 0x1c], 0x800
je 0x10024ddb
mov eax, dword [esi]
jmp 0x10024ddd
xor eax, eax
mov ecx, dword [ebx + 8]
and ecx, 8
push ecx
push eax
push dword [esi + 0x18]
mov eax, dword [ebp - 0x70]
push dword [esi + 0x14]
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push 0
push dword [eax]
call fcn.10007b94
mov edi, dword [ebp - 0x70]
add esp, 0x20
mov dword [ebp - 0x5c], eax
and dword [edi + 0x68], 0
cmp dword [ebp - 0x5c], 0
mov byte [edi + 0x19], 0
mov byte [edi + 0x1f], 0
jne 0x10024e6a
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je 0x10024e6a
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10024e6a
push dword [ebp - 0x104]
mov edx, dword [edi + 4]
push dword [ebp - 0x108]
imul edx, edx, 0x18
push eax
mov eax, dword [ebp - 0x64]
mov esi, dword [eax + 8]
push dword [edx + esi]
mov edx, dword [ebx + 8]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push dword [eax + 0x84]
call ecx
add esp, 0x18
push 2
jmp 0x1002608f
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x74], eax
je 0x10024f35
mov edx, dword [ebp - 0x64]
cmp dword [edx + 0x88], 0
je 0x10024ecd
cmp dword [ebx + 0xc], 0
je 0x10024ecd
cmp byte [eax + 0x19], 0
je 0x10024eb3
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], eax
jmp 0x10024ecd
lea eax, [ebp - 0x148]
push eax
push ecx
call fcn.10007383
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
push dword [ebp - 0x74]
call fcn.10027db6
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov esi, dword [ebp - 0x74]
push dword [esi]
call fcn.10007d41
and dword [esi + 0x68], 0
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [esi + 0x1d], 0
jne 0x10024f35
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 0x88]
test edx, edx
je 0x10024f35
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x10024f35
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push ecx
mov ecx, dword [esi + 4]
mov esi, dword [eax + 8]
imul ecx, ecx, 0x18
push dword [ecx + esi]
push 9
push dword [eax + 0x84]
call edx
add esp, 0x18
test byte [ebx + 8], 1
je case.0x10022b9a.13
inc dword [edi + 0x10c]
jmp case.0x10022b9a.13
cmp dword [ebx + 4], 0
je 0x10024f60
push dword [edi + 0x10c]
push dword [ebp - 0x64]
call fcn.1002851a
pop ecx
pop ecx
and dword [edi + 0x10c], 0
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov ebx, dword [ecx + eax*4]
add esi, 0x48
cmp byte [ebx + 0x1c], 0
mov dword [ebp - 0x60], esi
jne 0x1002508d
mov eax, dword [ebx]
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x10025073
push ebx
call fcn.10027db6
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
cmp byte [ebx + 0x1c], al
je 0x10024fb4
mov word [esi + 0x1c], 1
jmp case.0x10022b9a.13
cmp byte [ebx + 0x21], 0
je 0x10024ff3
lea eax, [ebp - 0x1b0]
push eax
push dword [ebp - 0x6c]
call fcn.10007383
cmp dword [ebp - 0x1ac], 0
pop ecx
pop ecx
jg 0x1002332f
mov eax, dword [ebp - 0x1b0]
jl 0x10024feb
cmp eax, 0x3b9aca00
ja 0x1002332f
mov dword [ebp - 0xbc], eax
jmp 0x10025004
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0x6c]
call fcn.100073cc
pop ecx
pop ecx
mov eax, dword [ebp - 0xbc]
cmp eax, 0x3b9aca00
ja 0x1002332f
mov dword [esi + 0x18], eax
cmp dword [ebp - 0xbc], 0x20
ja 0x1002502c
mov word [esi + 0x1c], 0x210
lea eax, [esi + 0x24]
jmp 0x1002504a
push dword [ebp - 0xbc]
call fcn.10013cad
test eax, eax
pop ecx
je 0x10022d0b
mov word [esi + 0x1c], 0x50
and dword [esi + 0x20], 0
push eax
mov dword [esi + 0x14], eax
cmp byte [ebx + 0x21], 0
push dword [ebp - 0xbc]
push 0
push dword [ebp - 0x6c]
je 0x10025066
call fcn.1000443f
jmp 0x1002506b
call fcn.1000740c
add esp, 0x10
mov dword [ebp - 0x5c], eax
jmp 0x10025093
cmp byte [ebx + 0x1e], 0
je 0x1002508d
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x14], eax
mov word [esi + 0x1c], 0x110
jmp 0x10025093
mov word [esi + 0x1c], 1
mov byte [esi + 0x1f], 1
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
push edi
call fcn.10027db6
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
add esi, 0x48
cmp byte [edi + 0x19], al
mov dword [ebp - 0x60], esi
je 0x100250d0
mov eax, dword [edi + 8]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xc]
jmp 0x100250e2
cmp byte [edi + 0x1e], 0
je 0x100250ea
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x11c], eax
jmp 0x1002510d
cmp byte [edi + 0x1c], 0
jne 0x10024fa9
mov edi, dword [edi]
test edi, edi
je 0x10024fa9
lea eax, [ebp - 0x120]
push eax
push edi
call fcn.10007383
pop ecx
pop ecx
mov eax, dword [ebp - 0x120]
mov dword [esi], eax
mov eax, dword [ebp - 0x11c]
jmp 0x10023407
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x10025177
lea ecx, [ebp - 0x178]
push ecx
push eax
call fcn.10004710
and dword [esi + 0x68], 0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x178]
test eax, eax
pop ecx
pop ecx
mov byte [esi + 0x1c], al
mov byte [esi + 0x1f], 0
je case.0x10022b9a.13
mov ebx, dword [ebx + 8]
test ebx, ebx
jmp 0x100251dc
mov byte [esi + 0x1c], 0
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
xor edi, edi
cmp eax, edi
je 0x100251b8
lea ecx, [ebp - 0xfc]
push ecx
push eax
call fcn.100046e1
cmp dword [ebp - 0xfc], edi
mov dword [ebp - 0x5c], eax
pop ecx
sete al
pop ecx
mov byte [esi + 0x1a], al
mov byte [esi + 0x1f], 0
mov dword [esi + 0x68], edi
jmp 0x100251c2
mov dword [ebp - 0xfc], 1
mov al, byte [ebp - 0xfc]
mov byte [esi + 0x1c], al
cmp dword [ebp - 0xfc], edi
je case.0x10022b9a.13
mov ebx, dword [ebx + 8]
cmp ebx, edi
jle case.0x10022b9a.13
jmp 0x10022bb4
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0xa8], 0
jne 0x10026240
mov eax, dword [ebx + 4]
mov ecx, edi
mov ecx, dword [ecx + 0x38]
mov esi, dword [ecx + eax*4]
test esi, esi
je case.0x10022b9a.13
mov eax, dword [esi]
test eax, eax
je 0x1002525e
cmp byte [esi + 0x1c], 0
je 0x10025222
mov dword [ebp - 0x100], 1
jmp 0x10025262
cmp byte [ebp - 0x85], 0x6f
lea ecx, [ebp - 0x100]
push ecx
push eax
jne 0x1002523a
call fcn.10007522
jmp 0x1002523f
call fcn.100075fb
and dword [esi + 0x68], 0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x100]
test eax, eax
pop ecx
pop ecx
mov byte [esi + 0x1c], al
jne 0x10025262
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
jmp 0x10025262
mov byte [esi + 0x1c], 1
mov byte [esi + 0x19], 0
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
mov dword [ebp - 0x9c], eax
je 0x10024797
test word [esi + 0x1c], 0x800
je 0x10025298
push esi
call fcn.10029545
pop ecx
mov dword [ebp - 0x5c], eax
jmp 0x1002529c
and dword [ebp - 0x5c], 0
xor edx, edx
cmp dword [ebp - 0x5c], edx
jne 0x10024797
push dword [ebx + 8]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push edx
push edx
push 0x1002e771
cdq
push edx
push eax
push ecx
push dword [ebp - 0x9c]
call fcn.10007b94
add esp, 0x20
mov dword [ebp - 0x5c], eax
and dword [edi + 0x68], 0
jmp 0x10024797
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
mov ebx, dword [edi]
test ebx, ebx
je 0x10024797
lea eax, [ebp - 0x180]
push eax
mov eax, dword [esi + 0x18]
push 0
cdq
push edx
push eax
push dword [esi + 0x14]
push ebx
call fcn.10004740
add esp, 0x18
test eax, eax
mov dword [ebp - 0x5c], eax
jne 0x100252cc
cmp dword [ebp - 0x180], eax
jne 0x100252cc
push ebx
call fcn.10007d41
pop ecx
jmp 0x100252c9
mov ebx, dword [ebx + 4]
add esi, 0x48
mov word [esi + 0x1c], 1
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x60], esi
je case.0x10022b9a.13
cmp byte [eax + 0x1c], 0
jne 0x10024fa9
lea eax, [ebp - 0x188]
push eax
push ecx
call fcn.100283b6
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025ac8
mov word [esi + 0x1c], 4
mov eax, dword [ebp - 0x188]
mov dword [esi], eax
mov eax, dword [ebp - 0x184]
mov dword [esi + 4], eax
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je 0x10024797
test word [esi + 0x1c], 0x800
je 0x1002539b
push esi
call fcn.10029545
pop ecx
cmp dword [ebx + 0xc], 0
mov ecx, dword [edi + 0x48]
setne al
mov byte [ecx], al
lea eax, [ebp - 0xd8]
push eax
push dword [esi + 0x14]
push dword [esi + 0x18]
push edi
call fcn.10028480
mov ecx, dword [edi + 0x48]
add esp, 0x10
test eax, eax
mov dword [ebp - 0x5c], eax
mov byte [ecx], 0
jne case.0x10022b9a.13
mov al, byte [ebx]
cmp al, 0x27
jne 0x100253dc
neg dword [ebp - 0xd8]
jmp 0x100253e6
cmp al, 0x49
jne 0x100253e6
inc dword [ebp - 0xd8]
cmp dword [ebp - 0xd8], 0
jle 0x10024797
mov ebx, dword [ebx + 8]
jmp 0x10024765
mov edi, dword [ebp - 0x64]
mov eax, dword [edi + 0x5c]
xor ecx, ecx
test eax, eax
je 0x10025438
cmp dword [eax + 0x4c], 0xbdf20da3
jne 0x10025420
cmp byte [eax + 0x10a], 2
jae 0x10025420
cmp dword [eax + 0x78], 0
jl 0x10025420
inc ecx
mov eax, dword [eax + 8]
test eax, eax
jne 0x10025407
cmp ecx, 1
jle 0x10025438
mov dword [ebp - 0x5c], 6
jmp case.0x10022b9a.13
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x118]
push eax
mov eax, dword [ebx + 8]
push dword [ebx + 4]
imul eax, eax, 0x18
push dword [eax + ecx + 4]
call fcn.10008187
add esi, 0x48
mov dword [ebp - 0x5c], eax
mov word [esi + 0x1c], 4
mov eax, dword [ebp - 0x118]
cdq
add esp, 0xc
cmp dword [ebp - 0x5c], 0
mov dword [esi], eax
mov dword [ebp - 0x60], esi
mov dword [esi + 4], edx
jne case.0x10022b9a.13
cmp dword [ebp - 0x118], 0
je case.0x10022b9a.13
mov eax, dword [ebx + 8]
push dword [ebx + 4]
imul eax, eax, 0x18
push dword [ebp - 0x118]
add eax, dword [edi + 8]
push eax
call fcn.1000960e
jmp 0x10022c26
mov eax, dword [ebx + 8]
push dword [ebx + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx + 8]
push dword [eax + ecx + 4]
call fcn.10007f79
pop ecx
jmp 0x10023d2a
mov ebx, dword [ebx + 4]
mov eax, dword [ebp - 0x64]
imul ebx, ebx, 0x18
add ebx, dword [eax + 8]
xor eax, eax
cmp byte [ebp - 0x85], 0x34
setne al
dec eax
and eax, 3
inc eax
inc eax
push eax
lea eax, [ebp - 0x10c]
push eax
push dword [ebx + 4]
call fcn.100077d4
add esi, 0x48
add esp, 0xc
test eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], esi
jne 0x10024fa9
mov eax, dword [ebp - 0x10c]
jmp 0x1002389d
cmp dword [ebx + 8], 0
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x64]
jne 0x10025533
mov esi, dword [ecx + 8]
mov edx, eax
imul edx, edx, 0x18
mov edx, dword [edx + esi + 0x14]
test byte [edx + 0x5a], 1
je case.0x10022b9a.13
cmp eax, 1
mov edx, str.sqlite_temp_master
je 0x10025542
mov edx, str.sqlite_master
push dword [ebx + 0xc]
mov dword [ebp - 0x1bc], eax
imul eax, eax, 0x18
push edx
mov edx, dword [ecx + 8]
add edi, 0x100
mov dword [ebp - 0x1c0], ecx
mov dword [ebp - 0x1b8], edi
push dword [eax + edx]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ecx
call fcn.1001bd01
mov edi, eax
add esp, 0x14
test edi, edi
je 0x10022d0b
mov esi, dword [ebp - 0x64]
push esi
call fcn.1002262a
push 0
lea eax, [ebp - 0x1c0]
push eax
push fcn.1001a7b9
push edi
push esi
mov byte [esi + 0x50], 1
call sym.sqlite.dll_sqlite3_exec
add esp, 0x18
cmp eax, 4
mov dword [ebp - 0x5c], eax
jne 0x100255b5
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x5c], eax
push edi
call sym.sqlite.dll_sqlite3_free
push esi
mov byte [esi + 0x50], 0
call fcn.100225fa
cmp dword [ebp - 0x5c], 7
pop ecx
pop ecx
je 0x10022d0b
jmp case.0x10022b9a.13
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.10001e1c
jmp 0x100254be
push dword [ebx + 0xc]
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.10008ab3
jmp 0x10022c26
push dword [ebx + 0xc]
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.10008802
jmp 0x10022c26
push dword [ebx + 0xc]
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.10020758
jmp 0x10022c26
and dword [ebp - 0x7c], 0
cmp esi, dword [edi + 0x24]
jb 0x10025642
mov eax, esi
test byte [eax + 0x1c], 4
je 0x10025642
inc dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x7c]
imul ecx, ecx, 0x48
mov eax, esi
sub eax, ecx
cmp eax, dword [edi + 0x24]
jae 0x1002562a
mov eax, dword [ebp - 0x7c]
lea eax, [eax*4 + 4]
push eax
call fcn.10013cad
test eax, eax
pop ecx
mov dword [ebp - 0x6c], eax
je 0x10022d0b
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
mov ecx, edi
add eax, dword [ecx + 0x54]
mov dword [ebp - 0x9c], eax
xor eax, eax
cmp dword [ebp - 0x7c], eax
jle 0x10025687
mov ecx, dword [esi]
mov edx, dword [ebp - 0x6c]
mov dword [edx + eax*4], ecx
inc eax
sub esi, 0x48
cmp eax, dword [ebp - 0x7c]
jl 0x10025676
mov ecx, dword [ebp - 0x6c]
push dword [ebp - 0x7c]
and dword [ecx + eax*4], 0
lea edi, [ebp - 0x60]
call fcn.10022969
mov edi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0x128]
push eax
mov eax, dword [ebx + 8]
push dword [edi]
imul eax, eax, 0x18
push dword [ebp - 0x7c]
add esi, 0x48
push dword [ebp - 0x6c]
mov dword [ebp - 0x60], esi
push dword [eax + ecx + 4]
call fcn.10007800
mov ecx, eax
mov eax, dword [ebp - 0x128]
cdq
add esp, 0x18
sub dword [edi], eax
sbb dword [edi + 4], edx
cmp dword [ebp - 0x128], 0
jne 0x100256ee
mov word [esi + 0x1c], 1
jmp 0x10025705
push ecx
mov dword [esi + 0x14], ecx
call sub.MSVCR80.dll_strlen
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], 0x62
and dword [esi + 0x20], 0
pop ecx
movzx eax, byte [ebp - 0x98]
push eax
push esi
mov byte [esi + 0x1f], 1
call fcn.100291e4
push dword [ebp - 0x6c]
call sym.sqlite.dll_sqlite3_free
jmp 0x10022c26
push esi
call fcn.10029791
push dword [esi + 4]
add edi, 0x60
push dword [esi]
push edi
call fcn.10029111
add esp, 0x10
cmp eax, 7
je 0x10022d0b
jmp 0x10024692
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0xa8], 0
jne 0x10026240
lea eax, [ebp - 0x198]
push eax
mov eax, edi
add eax, 0x60
push eax
call fcn.1002916e
cmp eax, 0x65
pop ecx
pop ecx
je 0x10022bb1
mov eax, dword [ebp - 0x198]
add esi, 0x48
mov dword [esi], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x60], esi
jmp 0x10023407
mov esi, dword [edi + 0x6c]
cmp esi, dword [edi + 0x70]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
jl 0x100257c0
mov dword [edi + 0x70], eax
lea eax, [esi + 1]
imul eax, eax, 0x18
push eax
push dword [edi + 0x74]
push dword [ebp - 0x64]
call fcn.100139ad
add esp, 0xc
test eax, eax
mov dword [edi + 0x74], eax
je 0x10022d0b
mov ecx, dword [ebp - 0x64]
imul esi, esi, 0x18
mov edx, dword [ecx + 0x28]
mov eax, edi
add esi, dword [eax + 0x74]
add eax, 0x60
mov dword [esi], edx
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0xac]
mov dword [esi + 8], ecx
lea edi, [esi + 0xc]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.10029100
jmp 0x10026097
mov eax, edi
dec dword [eax + 0x6c]
mov ecx, dword [eax + 0x6c]
imul ecx, ecx, 0x18
add ecx, dword [eax + 0x74]
lea edi, [eax + 0x60]
mov esi, ecx
mov edx, dword [esi]
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0x28], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x2c], edx
mov ecx, dword [esi + 8]
push edi
mov dword [eax + 0x10c], ecx
call fcn.100291bd
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x10026097
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
add eax, dword [edi + 0x54]
push esi
push eax
call fcn.10029853
sub esi, 0x48
cmp dword [ebx + 8], 0
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], esi
jne case.0x10022b9a.13
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
add esi, 0x48
add eax, dword [edi + 0x54]
push 0x100
jmp 0x10022cb1
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x48
add ebx, dword [edi + 0x54]
push ebx
call fcn.10029791
push esi
call fcn.10029791
mov eax, dword [esi]
mov esi, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
cmp ecx, esi
jg case.0x10022b9a.13
jl 0x1002589e
mov ecx, dword [ebx]
cmp ecx, eax
jae case.0x10022b9a.13
mov dword [ebx], eax
mov dword [ebx + 4], esi
jmp case.0x10022b9a.13
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
imul ecx, ecx, 0x48
add ecx, dword [edi + 0x54]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x54]
imul eax, eax, 0x48
cmp dword [eax + edi + 4], 0
jl case.0x10022b9a.13
jg 0x10022bb1
cmp dword [eax + edi], 0
jbe case.0x10022b9a.13
jmp 0x10022bb1
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x54]
imul eax, eax, 0x48
cmp dword [eax + edi + 4], 0
jg case.0x10022b9a.13
jl 0x10022bb1
cmp dword [eax + edi], 0
jae case.0x10022b9a.13
jmp 0x10022bb1
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x54]
imul eax, eax, 0x48
mov ecx, dword [eax + edi]
or ecx, dword [eax + edi + 4]
jne case.0x10022b9a.13
jmp 0x10022bb1
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
add eax, dword [edi + 0x54]
push eax
call fcn.10029348
jmp 0x10026097
mov eax, dword [ebx + 4]
cdq
push edx
push eax
mov eax, dword [ebx + 8]
imul eax, eax, 0x48
add eax, dword [edi + 0x54]
push eax
call fcn.1002939a
jmp 0x10022c26
mov eax, dword [ebx + 8]
mov edi, dword [edi + 0x54]
imul eax, eax, 0x48
add eax, edi
push eax
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
add eax, edi
push eax
call fcn.10029853
jmp 0x100254be
mov edx, dword [ebx + 8]
and dword [ebp - 0x6c], 0
mov eax, edx
imul eax, eax, 0x48
sub esi, eax
add esi, 0x48
test edx, edx
mov ecx, esi
mov esi, dword [edi + 0x2c]
mov dword [ebp - 0x74], edx
jle 0x100259ac
mov eax, dword [ebp - 0x6c]
mov dword [esi + eax*4], ecx
call fcn.1002293d
inc dword [ebp - 0x6c]
add ecx, 0x48
cmp dword [ebp - 0x6c], edx
jl 0x10025996
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 4]
imul eax, eax, 0x48
add eax, dword [edi + 0x54]
mov dword [ebp + 0x40], eax
inc dword [eax + 0x18]
xor eax, eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], eax
mov byte [ebp + 0x44], al
mov dword [ebp + 0x48], eax
mov eax, dword [ebp - 0x10]
mov word [ebp + 0x14], 1
mov dword [ebp + 8], ecx
cmp byte [eax + 3], 0
je 0x100259ea
mov ecx, dword [ebx - 8]
mov dword [ebp + 0x48], ecx
push esi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x10]
push ecx
call dword [eax + 0x14]
push dword [ebp - 0x74]
lea edi, [ebp - 0x60]
call fcn.10022969
add esp, 0x10
cmp byte [ebp + 0x44], 0
je 0x10025a31
lea eax, [ebp - 8]
push 0
push eax
call sym.sqlite.dll_sqlite3_value_text
pop ecx
push eax
mov eax, dword [ebp - 0x84]
add eax, 0x100
push eax
call fcn.10013a85
add esp, 0xc
mov dword [ebp - 0x5c], 1
lea eax, [ebp - 8]
push eax
call fcn.100292d8
jmp 0x10026097
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
imul eax, eax, 0x48
add eax, dword [edi + 0x54]
push eax
mov dword [ebp - 0x74], eax
call fcn.1002924e
cmp eax, 1
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
jne 0x10025a79
push 0
push dword [ebp - 0x74]
call sym.sqlite.dll_sqlite3_value_text
pop ecx
push eax
lea eax, [edi + 0x100]
push eax
call fcn.10013a85
add esp, 0xc
push dword [ebp - 0x74]
call fcn.100293f8
test eax, eax
pop ecx
jne 0x1002332f
jmp case.0x10022b9a.13
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
push dword [ebp - 0x64]
add edi, 0x100
push edi
call fcn.1002271c
push dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
call fcn.100225fa
add esp, 0xc
test eax, eax
je case.0x10022b9a.13
mov dword [ebp - 0x5c], 0x15
mov edi, dword [ebp - 0x84]
add edi, 0x100
cmp dword [edi], 0
jne 0x10025afe
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x1e], 0
je 0x10025ae9
mov dword [ebp - 0x5c], 7
push 0
push dword [ebp - 0x5c]
call fcn.10012de2
pop ecx
push eax
push edi
call fcn.10013a85
add esp, 0xc
cmp dword [ebp - 0x5c], 0
je 0x10026275
mov eax, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x84]
mov dword [edi + 0x7c], eax
mov dword [ebp - 0x5c], 1
jmp 0x10026282
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x64]
imul eax, eax, 0x18
mov ecx, dword [ecx + 8]
push dword [eax + ecx + 4]
call fcn.10007048
cmp eax, 0x65
pop ecx
mov dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
and dword [ebp - 0x5c], 0
jmp case.0x10022b9a.13
cmp dword [ebx + 4], 0
je 0x100242c3
mov byte [edi + 0x108], 1
jmp case.0x10022b9a.13
mov eax, dword [ebx + 4]
test eax, eax
setl byte [ebp - 0x124]
cmp byte [ebp - 0x124], 0
je 0x10025b84
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
push dword [ebp - 0x124]
imul eax, eax, 0x18
push dword [ebx + 8]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx + 8]
push dword [eax + ecx + 4]
call fcn.10006d97
add esp, 0xc
cmp eax, 6
mov dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
push 0
push dword [ebx + 0xc]
add edi, 0x100
push str.database_table_is_locked:
push edi
call fcn.10013a85
add esp, 0x10
jmp case.0x10022b9a.13
push dword [ebx + 0xc]
push dword [ebp - 0x64]
call fcn.1002a734
jmp 0x100254be
add edi, 0x100
push edi
push dword [ebx + 0xc]
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.1002a472
add esp, 0x10
mov dword [ebp - 0x5c], eax
jmp case.0x10022b9a.13
lea esi, [edi + 0x10a]
mov byte [esi], 2
push dword [ebx + 0xc]
push dword [ebx + 4]
push dword [ebp - 0x64]
call fcn.1002a5d8
add esp, 0xc
mov dword [ebp - 0x5c], eax
mov byte [esi], 0
jmp case.0x10022b9a.13
mov edi, dword [ebx + 0xc]
and dword [ebp - 0x6c], 0
mov eax, dword [edi]
push dword [ebp - 0x64]
mov dword [ebp - 0x74], eax
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x74]
push edi
call dword [eax + 0x18]
push dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
call fcn.100225fa
add esp, 0xc
test eax, eax
jne 0x10025ac1
cmp dword [ebp - 0x5c], eax
jne case.0x10022b9a.13
mov eax, dword [ebp - 0x6c]
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x84]
push 0xffffffffffffffff
call fcn.1002298d
test eax, eax
pop ecx
je 0x10025c97
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [eax + 0x64], ecx
jmp case.0x10022b9a.13
mov eax, dword [ebp - 0x64]
push dword [ebp - 0x6c]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0x74]
call dword [eax + 0x1c]
jmp 0x10026097
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi - 0x48]
xor edx, edx
cmp eax, edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x74], ecx
jle 0x10025cfc
inc eax
imul eax, eax, 0x48
mov ecx, esi
sub ecx, eax
mov eax, dword [ebp - 0x74]
mov dword [eax + edx*4], ecx
call fcn.1002293d
inc edx
add ecx, 0x48
cmp edx, dword [ebp - 0x70]
jl 0x10025ce8
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
push dword [ebp - 0x74]
mov eax, dword [ebp - 0xa4]
push dword [ebp - 0x70]
add edi, 0x10a
mov byte [edi], 1
push dword [ebx + 0xc]
push dword [esi]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xb0]
call dword [eax + 0x20]
add esp, 0x14
test eax, eax
mov dword [ebp - 0x5c], eax
mov byte [edi], 0
jne 0x10025d59
mov eax, dword [ebp - 0xa4]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xb0]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xd0], eax
push dword [ebp - 0x64]
call fcn.100225fa
test eax, eax
pop ecx
jne 0x10025ac1
cmp dword [ebp - 0xd0], eax
je 0x10025d79
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x78], ebx
mov eax, dword [ebp - 0x70]
add eax, 2
jmp 0x10023980
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
cmp dword [eax + 0x30], 0
mov dword [ebp - 0x9c], eax
jne 0x10025dac
push 0
push str.Unsupported_module_operation:_xRowid
jmp 0x100241c1
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
lea eax, [ebp - 0x190]
push eax
push dword [ebx + 0x60]
mov eax, dword [ebp - 0x9c]
call dword [eax + 0x30]
push dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
call fcn.100225fa
add esp, 0xc
test eax, eax
jne 0x10025ac1
add esi, 0x48
mov word [esi + 0x1c], 4
mov eax, dword [ebp - 0x190]
mov dword [esi], eax
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x60], esi
jmp 0x10025372
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x9c], eax
mov eax, dword [eax + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
cmp dword [eax + 0x2c], 0
mov dword [ebp - 0xcc], eax
jne 0x10025e33
push 0
push str.Unsupported_module_operation:_xColumn
jmp 0x100241c1
push 0x60
lea eax, [ebp - 0x10]
push 0
push eax
call sub.MSVCR80.dll_memset
mov eax, dword [ebp - 0x64]
push eax
mov word [ebp + 0x14], 1
mov dword [ebp + 8], eax
call fcn.1002262a
add esp, 0x10
test eax, eax
jne 0x10025ac1
push dword [ebx + 8]
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x9c]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x2c]
mov dword [ebp - 0x5c], eax
movzx eax, byte [ebp - 0x98]
push eax
lea eax, [ebp - 8]
push eax
call fcn.100291e4
and word [esi + 0x64], 0
lea eax, [ebp - 8]
add esi, 0x48
push eax
push esi
mov dword [ebp - 0x60], esi
call fcn.10029853
push dword [ebp - 0x64]
call fcn.100225fa
add esp, 0x20
test eax, eax
jne 0x10025ac1
push esi
jmp 0x10025a7c
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
and dword [ebp - 0xb0], 0
mov dword [ebp - 0x74], eax
mov eax, dword [eax + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
cmp dword [eax + 0x24], 0
mov dword [ebp - 0xa4], eax
jne 0x10025eea
push 0
push str.Unsupported_module_operation:_xNext
jmp 0x100241c1
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
mov eax, dword [ebp - 0x74]
add edi, 0x10a
mov byte [edi], 1
push dword [eax + 0x60]
mov eax, dword [ebp - 0xa4]
call dword [eax + 0x24]
test eax, eax
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [edi], 0
jne 0x10025f34
mov eax, dword [ebp - 0x74]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xa4]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xb0], eax
push dword [ebp - 0x64]
call fcn.100225fa
test eax, eax
pop ecx
jne 0x10025ac1
cmp dword [ebp - 0xb0], eax
jmp 0x10025921
test byte [esi + 0x1c], 0x12
mov ebx, dword [ebx + 0xc]
jne 0x10025f71
movzx eax, byte [ebp - 0x98]
push eax
push esi
call fcn.100291ff
test eax, eax
pop ecx
pop ecx
jne 0x10022d0b
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
push ebx
call fcn.10029d9e
push dword [esi + 0x14]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x4c]
push ebx
push dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
call fcn.10029da6
push dword [ebp - 0x64]
call fcn.100225fa
add esp, 0x18
test eax, eax
jne 0x10025ac1
push 1
jmp 0x1002608f
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
cmp dword [eax + 0x34], 0
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x74], edx
jne 0x10025ff3
push 0
push str.read_only_table
add edi, 0x100
push edi
call fcn.10013a85
add esp, 0xc
mov dword [ebp - 0x5c], 1
jmp 0x1002608c
and dword [ebp - 0x6c], 0
mov edi, dword [edi + 0x2c]
mov eax, edx
imul eax, eax, 0x48
mov ecx, esi
sub ecx, eax
add ecx, 0x48
test edx, edx
jle 0x10026020
call fcn.1002293d
mov eax, dword [ebp - 0x6c]
inc dword [ebp - 0x6c]
mov dword [edi + eax*4], ecx
add ecx, 0x48
cmp dword [ebp - 0x6c], edx
jl 0x1002600a
push dword [ebp - 0x64]
call fcn.1002262a
test eax, eax
pop ecx
jne 0x10025ac1
push dword [ebp - 0x70]
call fcn.10029d9e
lea eax, [ebp - 0x1a0]
push eax
mov eax, dword [ebp - 0x9c]
push edi
push dword [ebp - 0x74]
push dword [ebp - 0x70]
call dword [eax + 0x34]
push dword [ebp - 0x70]
mov edi, dword [ebp - 0x64]
push edi
mov dword [ebp - 0x5c], eax
call fcn.10029da6
push edi
call fcn.100225fa
add esp, 0x20
test eax, eax
jne 0x10025ac1
cmp dword [ebx + 4], eax
je 0x1002608c
cmp dword [ebp - 0x5c], eax
jne 0x1002608c
mov eax, dword [ebp - 0x1a0]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x19c]
mov dword [edi + 0x2c], eax
push dword [ebp - 0x74]
lea edi, [ebp - 0x60]
call fcn.10022969
pop ecx
inc dword [ebp - 0x78]
cmp dword [ebp - 0x5c], 0
mov esi, dword [ebp - 0x60]
je 0x10022b5f
jmp 0x10025afe
mov dword [edi + 0x28], esi
mov eax, dword [ebx + 4]
mov dword [edi + 0x7c], eax
mov dword [edi + 0x78], ecx
mov eax, dword [ebx + 8]
mov dword [edi + 0x84], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x100260db
push 0
lea eax, [edi + 0x100]
push ebx
push eax
call fcn.10013a85
add esp, 0xc
push edi
call fcn.10028723
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x100261fc
mov edi, dword [edi + 0x7c]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
mov dword [ebp - 0x5c], edi
jmp 0x1002628c
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x48
mov eax, esi
sub eax, ecx
mov ecx, dword [edi + 0x24]
cmp ecx, eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x68], ecx
jae 0x1002614b
mov eax, dword [ebp - 0x68]
test word [eax + 0x1c], 0x100
je 0x1002613c
push eax
call fcn.100295bd
test eax, eax
pop ecx
jne 0x10022d0b
mov edi, dword [ebp - 0x84]
add dword [ebp - 0x68], 0x48
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x10c]
jb 0x1002611c
mov eax, dword [edi + 0x5c]
inc eax
inc eax
or eax, 1
mov dword [edi + 0x5c], eax
jmp 0x1002616d
push dword [ebp - 0x68]
call fcn.1002963e
pop ecx
mov ecx, dword [ebp - 0x68]
call fcn.1002293d
add dword [ebp - 0x68], 0x48
cmp dword [ebp - 0x68], esi
jbe 0x10026158
inc dword [edi + 0x58]
mov byte [edi + 0x104], 1
mov eax, dword [ebx + 4]
mov dword [edi + 0xfc], eax
mov eax, dword [ebp - 0x78]
inc eax
mov dword [edi + 0x78], eax
mov dword [ebp - 0x5c], 0x64
jmp 0x10026289
lea eax, [ebp - 8]
push eax
call fcn.100292d8
pop ecx
jmp 0x10022d0b
mov dword [ebp - 0x5c], 0x14
jmp 0x10025ac8
cmp dword [ebx + 8], 0
je 0x100261cb
mov esi, eax
push esi
call fcn.10012d52
pop ecx
mov byte [esi + 0x1c], 1
jmp 0x100260ed
mov ebx, eax
mov al, byte [ebp - 0x85]
push edi
mov byte [ebx + 0x1c], al
call fcn.10028723
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x100260ed
mov eax, dword [ebp - 0x78]
mov dword [edi + 0x78], eax
mov al, 1
sub al, byte [ebp - 0x85]
mov dword [edi + 0x28], esi
mov byte [ebx + 0x1c], al
mov dword [ebp - 0x5c], ecx
mov dword [edi + 0x7c], ecx
jmp 0x1002628c
mov eax, dword [ebp - 0x78]
mov dword [edi + 0x78], eax
mov dword [ebp - 0x5c], ecx
mov dword [edi + 0x7c], ecx
jmp 0x10026289
mov edx, dword [ebp - 0x78]
mov dword [ecx + 0x7c], eax
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ecx + 0x78], edx
cmp dword [ebx + 8], eax
setle al
inc eax
imul eax, eax, 0x48
add eax, esi
mov dword [ecx + 0x28], eax
jmp 0x1002628c
mov dword [ebp - 0x5c], 0xd
jmp 0x10025ac8
mov ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x84]
xor eax, eax
cmp dword [ecx + 0x38], 0xf03b7906
push 0
sete al
dec eax
and eax, 0xc
add eax, 9
push eax
mov dword [ebp - 0x5c], eax
mov dword [edi + 0x7c], eax
call fcn.10012de2
add edi, 0x100
jmp 0x10025af3
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x5c], 0x65
push edi
call fcn.10028723
pop ecx
mov dword [edi + 0x28], esi
push dword [ebp - 0x15c]
call fcn.1000284b
mov eax, dword [ebp - 0x5c]
pop ecx
pop esi
mov ecx, dword [ebp + 0x70]
pop edi
xor ecx, ebp
pop ebx
call fcn.1002d058
add ebp, 0x74
leave
ret