Function at 0x411a25
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor eax, eax
push edi
mov ecx, dword [edi + 4]
mov esi, dword [edi]
mov ebx, dword [edi + 8]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [esi + 8]
and byte [ebp + 0xb], al
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], eax
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 8], esi
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe4], ebx
mov cl, byte [ecx + 0x49]
mov dword [ebp - 0x10], eax
mov byte [ebp - 0xdc], cl
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf0], eax
call fcn.0040f73c
cmp dword [edi + 0x5c], 7
pop ecx
je 0x416451
xor eax, eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x14], eax
mov dword [esi + 0x1b4], eax
cmp dword [esi + 0xe0], eax
jne 0x416553
xor ecx, ecx
cmp dword [esi + 0x114], eax
mov eax, dword [edi + 0x58]
setne cl
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xc], eax
jmp 0x411ac4
mov ebx, dword [ebp - 0xe4]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x416451
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xf4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp dword [ebp - 0xfc], ecx
je 0x411b24
mov eax, dword [eax + 0x11c]
cmp eax, dword [ebp - 0xec]
jne 0x411b1b
mov eax, dword [ebp - 8]
push dword [eax + 0x118]
call dword [eax + 0x114]
test eax, eax
pop ecx
jne 0x416314
and dword [ebp - 0xec], eax
xor ecx, ecx
inc dword [ebp - 0xec]
mov eax, dword [ebp - 8]
test byte [esi + 2], 2
je 0x411b4b
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0x10], eax
call fcn.0040dcda
mov eax, dword [ebp - 0x10]
pop ecx
xor ecx, ecx
mov word [eax + 0x1c], 4
mov eax, dword [ebp - 8]
movzx edx, byte [esi]
dec edx
cmp edx, 0x90
ja case.0x411b5b.17
jmp dword [edx*4 + 0x4165f2]
cmp dword [eax + 0xe0], ecx
jne 0x416553
jmp 0x415839
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebp - 0xc]
cdq
mov dword [ebx + 0x10], eax
mov word [ebx + 0x1c], 4
mov dword [ebx + 0x14], edx
mov eax, dword [esi + 8]
dec eax
jmp 0x411bc6
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov eax, dword [ebx + eax*8 + 0x10]
jmp 0x411bc6
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebx + 0x10]
mov word [ebx + 0x1c], 4
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc]
cdq
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc], eax
jmp case.0x411b5b.17
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
je case.0x411b5b.17
cmp dword [esi + 4], ecx
jne 0x416320
mov ebx, dword [edi + 0xd8]
lea eax, [edi + 0xd8]
cmp ebx, ecx
je 0x416320
push dword [edi + 0x6c]
mov ecx, dword [ebx + 0x3c]
dec dword [edi + 0xe0]
mov dword [eax], ecx
push dword [ebp - 8]
call fcn.0040f847
push ebx
call fcn.0040f0d2
add esp, 0xc
cmp dword [esi + 8], 4
mov dword [ebp - 0xc], eax
jne 0x411c32
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0xe4], eax
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
jmp 0x416298
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 4]
jmp 0x414bec
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 8
mov ecx, dword [esi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x411b5b.17
push dword [esi + 0x10]
mov byte [esi], 9
call fcn.00403f85
cmp byte [ebp - 0xdc], 1
pop ecx
mov dword [esi + 4], eax
je 0x411d04
push 0
push 1
push 0xffffffffffffffff
push dword [esi + 0x10]
push dword [ebp - 0x10]
call fcn.0040d947
add esp, 0x14
cmp eax, 0x12
mov dword [ebp - 4], eax
je 0x416579
movzx eax, byte [ebp - 0xdc]
push eax
push dword [ebp - 0x10]
call fcn.0040fd03
pop ecx
test eax, eax
pop ecx
jne 0x416451
mov ebx, dword [ebp - 0x10]
and dword [ebx + 0x24], eax
mov ax, word [ebx + 0x1c]
and ax, 0xfbff
or ah, 8
mov word [ebx + 0x1c], ax
cmp byte [esi + 1], 0xff
jne 0x411cf4
push dword [esi + 0x10]
push dword [ebp - 8]
call fcn.00402cfd
pop ecx
pop ecx
or byte [esi + 1], 0xff
mov eax, dword [ebx + 4]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x48]
jg 0x416579
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov cl, byte [ebp - 0xdc]
jmp 0x413d87
push 0
push 0
push dword [esi + 4]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x10]
push esi
call fcn.0040d947
mov al, byte [ebp - 0xdc]
add esp, 0x14
mov byte [esi + 0x1f], al
jmp case.0x411b5b.17
mov esi, dword [esi + 4]
mov ecx, dword [edi + 0x48]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*8 - 0x28]
push eax
mov dword [ebp - 0xd0], eax
call fcn.0041b70a
test eax, eax
pop ecx
jne 0x416579
push 0x800
push dword [ebp - 0xd0]
push dword [ebp - 0x10]
call fcn.0041b732
jmp 0x4154b6
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0xc4], ecx
lea esi, [ebx + eax*8]
lea eax, [ecx + ecx*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
dec dword [ebp - 0xcc]
mov dword [ebp - 0x10], ebx
test eax, eax
je case.0x411b5b.17
mov eax, dword [ebx + 0x24]
push esi
mov dword [ebp - 0xd0], eax
and dword [ebx + 0x24], 0
push ebx
call fcn.004118e0
mov eax, dword [ebp - 0xd0]
add ebx, 0x28
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xcc]
add esi, 0x28
dec dword [ebp - 0xcc]
pop ecx
test eax, eax
pop ecx
jne 0x411dcf
mov dword [ebp - 0x10], ebx
jmp case.0x411b5b.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea ecx, [ebx + ecx*8]
lea eax, [ebx + eax*8]
push ecx
push eax
mov dword [ebp - 0x10], eax
call fcn.0041b732
mov eax, dword [ebp - 0x10]
add esp, 0xc
test byte [eax + 0x1d], 0x10
je case.0x411b5b.17
push eax
call fcn.0040dc0d
test eax, eax
pop ecx
jne 0x416451
jmp case.0x411b5b.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea ecx, [ebx + ecx*8]
lea eax, [ebx + eax*8]
push ecx
mov dword [ebp - 0x10], eax
push eax
jmp 0x411d87
push 0
push edi
call fcn.0040f77b
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne case.0x411b5b.17
push 1
push edi
call fcn.0040f61c
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x4163a1
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xd4], edx
lea eax, [eax + eax*4]
mov dx, word [edx + 0x1c]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd8], eax
lea eax, [esi + esi*4]
mov esi, dword [ebp - 0xd8]
lea ebx, [ebx + eax*8]
mov al, dl
or al, byte [esi + 0x1c]
mov dword [ebp - 0x10], ebx
test al, 1
je 0x411ee9
push ebx
call fcn.0040ddce
jmp 0x415d0a
test dh, 0x40
je 0x411efc
push dword [ebp - 0xd4]
call fcn.0040dc64
pop ecx
jmp 0x411efe
xor eax, eax
test eax, eax
jne 0x416451
mov eax, dword [ebp - 0xd8]
test byte [eax + 0x1d], 0x40
je 0x411f1b
push eax
call fcn.0040dc64
pop ecx
jmp 0x411f1d
xor eax, eax
test eax, eax
jne 0x416451
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1c], 0x12
jne 0x411f49
movzx ecx, byte [ebp - 0xdc]
push ecx
push eax
call fcn.00410145
pop ecx
test eax, eax
pop ecx
jne 0x416451
mov ecx, dword [ebp - 0xd8]
test byte [ecx + 0x1c], 0x12
jne 0x411f73
movzx eax, byte [ebp - 0xdc]
push eax
push ecx
call fcn.00410145
pop ecx
test eax, eax
pop ecx
jne 0x416451
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xcc], edx
mov eax, dword [eax + 0x48]
cdq
cmp dword [ebp - 0xcc], edx
jg 0x416579
jl 0x411fad
cmp dword [ebp - 0xd0], eax
ja 0x416579
mov ax, word [ebx + 0x1c]
and ax, 0xbf02
or al, 2
mov word [ebx + 0x1c], ax
xor eax, eax
cmp ebx, dword [ebp - 0xd8]
sete al
push eax
mov eax, dword [ebp - 0xd0]
add eax, 2
push eax
push ebx
call fcn.0040db1e
add esp, 0xc
test eax, eax
jne 0x416451
mov esi, dword [ebp - 0xd8]
cmp ebx, esi
je 0x411ffd
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ebx + 4]
call fcn.00464990
add esp, 0xc
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.00464990
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
add esp, 0xc
and byte [eax + ecx], 0
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
and byte [eax + ecx + 1], 0
or byte [ebx + 0x1d], 2
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x18], eax
mov al, byte [ebp - 0xdc]
mov byte [ebx + 0x1f], al
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.004119b8
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xd8], eax
call fcn.004119b8
mov eax, dword [esi + 0xc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [ebx + 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xd8]
movzx eax, word [eax + 0x1c]
or eax, ecx
test al, 1
mov dword [ebp - 0xd0], eax
jne 0x412313
mov ecx, dword [ebp - 0xd8]
mov al, byte [ecx + 0x1c]
and al, byte [ebx + 0x1c]
and al, 4
cmp al, 4
jne 0x4121ed
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 0x14]
mov dword [ebp - 0xc4], ebx
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xc0], edx
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0xbc], ecx
movzx ecx, byte [esi]
sub ecx, 0x56
je 0x4121bb
dec ecx
je 0x4121ad
dec ecx
je 0x412198
dec ecx
mov ecx, eax
je 0x41214c
or ecx, ebx
je 0x412313
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x41212b
push 1
xor ebx, ebx
pop eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc8], eax
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00464640
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x4121c7
or ecx, ebx
je 0x412313
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x412183
cmp dword [ebp - 0xc0], 0
jne 0x412183
cmp dword [ebp - 0xbc], 0x80000000
jne 0x412183
push 1
xor ebx, ebx
pop eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc8], eax
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00464740
jmp 0x41213e
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00464700
jmp 0x41213e
sub dword [ebp - 0xc0], eax
sbb dword [ebp - 0xbc], ebx
jmp 0x4121c7
add dword [ebp - 0xc0], eax
adc dword [ebp - 0xbc], ebx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x14], ecx
mov cx, word [eax + 0x1c]
and cx, 0xbf04
or ecx, 4
jmp 0x4127d1
push ebx
call fcn.004101d1
push dword [ebp - 0xd8]
fstp qword [ebp - 0xb8]
call fcn.004101d1
fstp qword [ebp - 0xb0]
movzx eax, byte [esi]
pop ecx
sub eax, 0x56
pop ecx
je 0x4122eb
dec eax
je 0x4122dd
dec eax
je 0x4122cf
fld qword [ebp - 0xb8]
dec eax
je 0x4122b6
call fcn.00464470
fld qword [ebp - 0xb0]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
call fcn.00464470
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc0], eax
or ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
je 0x412313
mov ecx, dword [ebp - 0xc8]
and ecx, dword [ebp - 0xc4]
cmp ecx, 0xffffffff
jne 0x41228f
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], 1
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push edx
push eax
call fcn.00464640
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
fild qword [ebp - 0x108]
jmp 0x4122f7
fcomp qword [0x4868d8]
fnstsw ax
sahf
je 0x412313
fld qword [ebp - 0xb0]
fdiv qword [ebp - 0xb8]
jmp 0x4122f7
fld qword [ebp - 0xb0]
fmul qword [ebp - 0xb8]
jmp 0x4122f7
fld qword [ebp - 0xb0]
fsub qword [ebp - 0xb8]
jmp 0x4122f7
fld qword [ebp - 0xb0]
fadd qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
fld qword [ebp - 0xb0]
push ecx
push ecx
fstp qword [esp]
call fcn.00403f63
pop ecx
test eax, eax
pop ecx
je 0x41231b
push dword [ebp - 0x10]
jmp 0x411edf
mov eax, dword [ebp - 0x10]
fld qword [ebp - 0xb0]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
and cx, 0xbf08
or ecx, 8
mov word [eax + 0x1c], cx
test byte [ebp - 0xd0], 8
jne case.0x411b5b.17
push eax
call fcn.0041b590
jmp 0x415d0a
movzx edx, byte [esi + 3]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
mov eax, dword [esi + 0xc]
cmp edx, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xcc], ebx
jle 0x4123db
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], ebx
mov eax, dword [ebp - 0xcc]
test byte [eax + 0x1d], 0x10
je 0x4123ab
push eax
call fcn.0040dc0d
test eax, eax
pop ecx
jne 0x416451
push dword [ebp - 0xcc]
call fcn.00411983
mov ebx, dword [ebp - 0xcc]
pop ecx
mov ecx, dword [ebp - 0xd0]
add ebx, 0x28
inc ecx
mov dword [ebp - 0xcc], ebx
cmp ecx, dword [ebp - 0x84]
mov dword [ebp - 0xd0], ecx
jl 0x412387
cmp byte [esi + 1], 0xfb
mov eax, dword [esi + 0x10]
jne 0x4123f3
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], eax
jmp 0x412401
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
push dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
and dword [ebp - 0xa0], 0
and dword [ebp - 0x9c], 0
lea eax, [ebp - 0xc0]
mov word [ebp - 0xa4], 1
push eax
mov dword [ebp - 0xc0], ebx
call fcn.004118e0
mov eax, dword [ebp - 0xa4]
and dword [ebp - 0x94], 0
and ax, 0xbf01
pop ecx
or al, 1
pop ecx
mov word [ebp - 0xa4], ax
mov eax, dword [ebp - 0xc8]
test byte [eax + 3], 8
je 0x412461
mov ecx, dword [esi - 4]
mov dword [ebp - 0x90], ecx
push dword [ebp - 0x88]
lea ecx, [ebp - 0xc8]
push dword [ebp - 0x84]
push ecx
call dword [eax + 0xc]
add esp, 0xc
cmp byte [ebx + 0x1e], 0
jne 0x416444
cmp dword [ebp - 0xc4], 0
je 0x4124aa
push dword [esi + 4]
push dword [ebp - 0xc4]
call fcn.0040e0bb
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf9
cmp dword [ebp - 0x94], 0
je 0x4124db
lea eax, [ebp - 0xc0]
push eax
call fcn.0041041e
push eax
push 0x4a4878
lea eax, [edi + 0x38]
push ebx
push eax
call fcn.0040f7d6
mov eax, dword [ebp - 0x94]
add esp, 0x14
mov dword [ebp - 4], eax
movzx eax, byte [ebp - 0xdc]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.0040fd03
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0x10]
call fcn.004118e0
push dword [ebp - 0x10]
jmp 0x416090
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 8]
mov dword [ebp - 0xd4], edx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov al, byte [ecx + 0x1c]
or al, byte [edx + 0x1c]
mov dword [ebp - 0x10], ebx
test al, 1
jne 0x411ede
push ecx
call fcn.0041021e
push dword [ebp - 0xd4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.0041021e
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
movzx edx, byte [esi]
pop ecx
sub edx, 0x52
pop ecx
je 0x4125ad
dec edx
je 0x412599
dec edx
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
je 0x412592
call fcn.00466770
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x4125bf
call fcn.00466750
jmp 0x412584
or dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc4]
or dword [ebp - 0xcc], eax
jmp 0x4125bf
and dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc4]
and dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x14], eax
mov ax, word [ebx + 0x1c]
and ax, 0xbf04
or al, 4
jmp 0x412af5
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041b5e9
mov eax, dword [esi + 8]
pop ecx
cdq
add dword [ebx + 0x10], eax
adc dword [ebx + 0x14], edx
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
push dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push 0x63
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041c782
mov ax, word [ebx + 0x1c]
add esp, 0xc
test al, 4
jne 0x4125d5
mov esi, dword [esi + 8]
test esi, esi
je 0x416476
jmp 0x41583c
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 4
lea eax, [ebx + eax*8]
je case.0x411b5b.17
push eax
call fcn.0041b60d
jmp 0x415d0a
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
mov ax, word [ebx + eax*8 + 0x1c]
test al, 1
jne case.0x411b5b.17
push dword [ebp - 0xdc]
mov cl, al
shr cl, 3
and ecx, 2
push 0x61
or ecx, eax
push esi
mov word [esi + 0x1c], cx
call fcn.0041c782
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x412697
push esi
call fcn.0040dc64
pop ecx
mov dword [ebp - 4], eax
jmp 0x41269b
and dword [ebp - 4], 0
and word [esi + 0x1c], 0xbfe3
jmp case.0x411b5b.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
mov ax, word [ebx + eax*8 + 0x1c]
test al, 1
jne case.0x411b5b.17
test al, 0x10
jne 0x4126e4
push dword [ebp - 0xdc]
push 0x61
push esi
call fcn.0041c782
mov ax, word [esi + 0x1c]
add esp, 0xc
and ax, 0xbf10
or al, 0x10
mov word [esi + 0x1c], ax
jmp case.0x411b5b.17
and ax, 0xff10
jmp 0x4126db
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0041b62e
jmp 0x415d0a
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x411b5b.17
push eax
call fcn.0041b5e9
jmp 0x415d0a
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x411b5b.17
jmp 0x412645
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd4], edx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd8], eax
mov ax, word [edx + 0x1c]
mov word [ebp - 0xca], ax
mov eax, dword [ebp - 0xd8]
mov ax, word [eax + 0x1c]
mov word [ebp - 0xc8], ax
mov eax, dword [ebp - 0xd8]
mov dx, word [edx + 0x1c]
mov ax, word [eax + 0x1c]
mov word [ebp - 0xe0], ax
or al, dl
test al, 1
mov al, byte [esi + 3]
je 0x4127e1
test al, 0x80
je 0x4127b4
mov eax, dword [ebp - 0xd4]
mov dx, word [eax + 0x1c]
mov eax, dword [ebp - 0xe0]
and eax, edx
not al
and eax, 1
mov dword [ebp - 0xd0], eax
jmp 0x41286e
test al, 0x10
je 0x4127da
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov cx, word [ebx + eax*8 + 0x1c]
lea eax, [ebx + eax*8]
and cx, 0xbf01
mov dword [ebp - 0x10], eax
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x411b5b.17
test al, 8
jmp 0x41425a
and al, 0x67
mov byte [ebp - 0xcc], al
je 0x412829
push dword [ebp - 0xdc]
push dword [ebp - 0xcc]
push dword [ebp - 0xd4]
call fcn.0041c782
push dword [ebp - 0xdc]
push dword [ebp - 0xcc]
push dword [ebp - 0xd8]
call fcn.0041c782
mov eax, dword [ebp - 8]
add esp, 0x18
cmp byte [eax + 0x1e], 0
jne 0x416451
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1d], 0x40
je 0x41283c
push eax
call fcn.0040dc64
pop ecx
mov eax, dword [ebp - 0xd8]
test byte [eax + 0x1d], 0x40
je 0x41284f
push eax
call fcn.0040dc64
pop ecx
push dword [esi + 0x10]
push dword [ebp - 0xd4]
push dword [ebp - 0xd8]
call fcn.0041b76b
add esp, 0xc
mov dword [ebp - 0xd0], eax
xor ecx, ecx
movzx edx, byte [esi]
sub edx, 0x4b
je 0x4128af
dec edx
je 0x4128a6
dec edx
je 0x41289d
dec edx
je 0x412894
dec edx
je 0x41288b
xor edx, edx
cmp eax, ecx
setge dl
jmp 0x4128b6
xor edx, edx
cmp eax, ecx
setl dl
jmp 0x4128b6
xor edx, edx
cmp eax, ecx
setle dl
jmp 0x4128b6
xor edx, edx
cmp eax, ecx
setg dl
jmp 0x4128b6
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x4128b6
xor edx, edx
cmp eax, ecx
setne dl
mov dword [ebp - 0xd0], edx
test byte [esi + 3], 0x10
je 0x4128eb
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0x10], ebx
mov ax, word [ebx + 0x1c]
and ax, 0xbf04
or al, 4
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x4128fa
cmp dword [ebp - 0xd0], ecx
je 0x4128fa
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0xd4]
mov cx, word [eax + 0x1c]
mov dl, cl
xor dl, byte [ebp - 0xca]
and dx, 0xff
xor edx, ecx
mov word [eax + 0x1c], dx
mov eax, dword [ebp - 0xd8]
mov cx, word [eax + 0x1c]
mov dl, cl
xor dl, byte [ebp - 0xc8]
and dx, 0xff
xor edx, ecx
mov word [eax + 0x1c], dx
jmp case.0x411b5b.17
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf0], eax
jmp case.0x411b5b.17
mov ebx, dword [esi + 0xc]
mov dword [ebp - 0xd0], ebx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xc0], edx
mov eax, dword [esi + 4]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xc4], eax
xor eax, eax
cmp ebx, ecx
mov dword [ebp - 0xcc], eax
jle 0x412a10
mov esi, dword [ebp - 0xe4]
jmp 0x412989
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0x412998
mov ecx, dword [ecx + eax*4]
jmp 0x41299a
mov ecx, eax
mov dword [ebp - 0xbc], ecx
mov ebx, dword [edx + eax*4 + 0xc]
mov dword [ebp - 0xb8], ebx
mov edx, dword [edx + 8]
push ebx
movzx eax, byte [edx + eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc4]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov eax, dword [ebp - 0xc8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.0041b76b
add esp, 0xc
mov dword [ebp - 0xe8], eax
test eax, eax
jne 0x4129ff
mov eax, dword [ebp - 0xcc]
inc eax
cmp eax, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
jl 0x412983
jmp 0x412a10
cmp dword [ebp - 0xb4], 0
je 0x412a10
neg eax
mov dword [ebp - 0xe8], eax
and dword [ebp - 0xf0], 0
jmp case.0x411b5b.17
cmp dword [ebp - 0xe8], ecx
jge 0x412a2c
mov esi, dword [esi + 4]
jmp 0x41583c
je 0x415839
mov esi, dword [esi + 0xc]
jmp 0x41583c
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x412a56
mov dword [ebp - 0xd0], 2
jmp 0x412a74
push eax
call fcn.0041021e
or eax, edx
pop ecx
je 0x412a6d
mov dword [ebp - 0xd0], 1
jmp 0x412a74
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x412a90
mov dword [ebp - 0xcc], 2
jmp 0x412aae
push eax
call fcn.0041021e
or eax, edx
pop ecx
je 0x412aa7
mov dword [ebp - 0xcc], 1
jmp 0x412aae
and dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
cmp byte [esi], 0x45
lea ecx, [ecx + eax*2]
jne 0x412acc
movzx eax, byte [eax + ecx + 0x483af0]
jmp 0x412ad4
movzx eax, byte [eax + ecx + 0x483afc]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 0xc]
cmp eax, 2
lea ecx, [esi + esi*4]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0x10], ebx
jne 0x412afe
mov ax, word [ebx + 0x1c]
and ax, 0xbf01
or al, 1
mov word [ebx + 0x1c], ax
jmp case.0x411b5b.17
cdq
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x4125d1
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
lea esi, [ebx + ecx*8]
mov dword [ebp - 0x10], esi
jne 0x412b5d
push eax
call fcn.0041021e
or eax, edx
pop ecx
jne 0x412b36
push 1
pop eax
jmp 0x412b38
xor eax, eax
cdq
push edx
push eax
push esi
jmp 0x4154b1
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
lea esi, [ebx + ecx*8]
mov dword [ebp - 0x10], esi
je 0x412b63
push esi
jmp 0x411edf
push eax
call fcn.0041021e
not edx
not eax
push edx
push eax
push esi
call fcn.00410550
jmp 0x415d70
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x412b8f
mov eax, dword [esi + 0xc]
jmp 0x412bc4
push eax
call fcn.004101d1
fcomp qword [0x4868d8]
pop ecx
fnstsw ax
sahf
je 0x412bad
mov dword [ebp - 0xd0], 1
jmp 0x412bb4
and dword [ebp - 0xd0], 0
cmp byte [esi], 0x1b
jne 0x412bca
xor eax, eax
cmp dword [ebp - 0xd0], eax
sete al
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jmp 0x41425a
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x41425a
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x415833
mov eax, dword [esi + 4]
push 0x28
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 8]
and dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x90]
push 0
push eax
call fcn.004644a0
mov eax, dword [esi + 0xc]
add esp, 0xc
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x94], eax
mov cx, word [eax + 0x1c]
and cx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [edi + 0x44]
mov ecx, dword [ebp - 0xc0]
and dword [ebp - 0xb4], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xb0], ecx
je 0x412cfd
push eax
call fcn.0041ba6c
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x1c], 0
je 0x412c94
and dword [ebp - 0xd0], 0
jmp case.0x411b5b.17
mov ecx, dword [eax + 0x4c]
cmp ecx, dword [edi + 0x54]
jne 0x412cb3
mov ecx, dword [eax + 0x50]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [eax + 0x5c]
mov dword [ebp - 0xb4], ecx
jmp 0x412d38
cmp byte [eax + 0x1f], 0
je 0x412ce4
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xb0]
call fcn.0040d48b
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc8]
pop ecx
mov dword [ebp - 0xd0], eax
pop ecx
mov eax, dword [ebp - 0xb8]
jmp 0x412d38
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0xb0]
call fcn.004178c7
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x412cdc
mov ecx, dword [eax + 0x10]
test ecx, ecx
jle 0x412d31
lea ecx, [ecx + ecx*4]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0x50], ebx
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xb4], ecx
test byte [esi + 3], 0x20
je 0x412d29
xor ecx, ecx
jmp 0x412d2c
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x4c], ecx
jmp 0x412cdc
and dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xd0]
test ecx, ecx
je case.0x411b5b.17
mov edx, dword [ebp - 8]
cmp ecx, dword [edx + 0x48]
ja 0x416579
mov edx, dword [eax + 0x14]
mov dword [ebp - 0xa4], edx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0xac], ecx
mov ebx, dword [eax + 0x4c]
cmp ebx, dword [edi + 0x54]
jne 0x412d7a
mov eax, dword [eax + 0x58]
mov dword [ebp - 0xa8], eax
jmp 0x412fd2
and dword [ebp - 0x54], 0
lea ecx, [ecx + edx*4]
mov dword [ebp - 0xa8], ecx
mov dword [eax + 0x58], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebp - 0xb8]
mov eax, dword [edi + 0x54]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x412db7
mov dword [ebp - 0x98], eax
jmp 0x412e07
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x1f], 0
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0xb0]
je 0x412dd4
call fcn.004179c9
jmp 0x412dd9
call fcn.00417a41
pop ecx
mov dword [ebp - 0x98], eax
pop ecx
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [ebp - 0x54]
ja 0x412dfd
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
mov dword [ecx + 0x5c], eax
jmp 0x412e07
mov eax, dword [ebp - 0xb8]
and dword [eax + 0x5c], 0
mov ecx, dword [ebp - 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x412e1e
movzx eax, al
push 1
mov dword [ebp - 0x60], eax
pop eax
jmp 0x412e2d
lea eax, [ebp - 0x60]
push eax
push ecx
call fcn.0040c56d
pop ecx
pop ecx
movzx eax, al
cmp dword [ebp - 0x60], 0x18003
movzx eax, al
mov dword [ebp - 0x58], eax
jbe 0x412e4f
push 0xf567
call fcn.0043f14a
pop ecx
mov dword [ebp - 4], eax
jmp case.0x411b5b.17
mov ecx, dword [ebp - 0xa4]
lea eax, [ecx + ecx*4 + 3]
cmp eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
jle 0x412e6d
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
xor ebx, ebx
cmp dword [ebp - 0xb4], ebx
jne 0x412ecd
cmp dword [ebp - 0x54], eax
jge 0x412ecd
lea ecx, [ebp - 0x90]
mov word [ebp - 0x74], bx
push ecx
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x90], ebx
movzx ecx, byte [ecx + 0x1f]
push ecx
push eax
push ebx
push dword [ebp - 0xb0]
call fcn.0041b912
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 4], eax
jne case.0x411b5b.17
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x98], edx
jmp 0x412ed3
mov edx, dword [ebp - 0x98]
add eax, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x58]
add eax, edx
mov dword [ebp - 0x68], eax
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x9c], eax
jle 0x412f8d
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0xa8]
jae 0x412f67
mov edx, dword [ebp - 0x60]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x412f24
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0x9c]
movzx eax, al
push 1
mov dword [ecx + edx*4], eax
pop eax
jmp 0x412f3f
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xac]
lea eax, [edx + eax*4]
push eax
push ecx
call fcn.0040c56d
pop ecx
pop ecx
movzx eax, al
mov ecx, dword [ebp - 0x9c]
movzx eax, al
add dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xac]
push dword [eax + ecx*4]
call fcn.0041bbf7
add dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], eax
pop ecx
mov dword [ebp - 0x5c], eax
jb 0x412f86
jmp 0x412f6b
and dword [ecx + eax*4], 0
mov eax, dword [ebp - 0x9c]
inc eax
cmp eax, dword [ebp - 0xa4]
mov dword [ebp - 0x9c], eax
jl 0x412ef0
jmp 0x412f8d
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x90]
push eax
call fcn.0040dcb5
pop ecx
mov word [ebp - 0x74], 1
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x64]
ja 0x413132
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0xd0]
ja 0x413132
cmp ecx, dword [ebp - 0x64]
jne 0x412fcc
cmp eax, dword [ebp - 0xd0]
jne 0x413132
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xa8]
shl eax, 2
cmp dword [eax + edx], 0
je 0x4130cf
cmp dword [ebp - 0xb4], 0
je 0x413034
push dword [ebp - 0x94]
call fcn.0040dcda
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xac]
shl eax, 2
push dword [eax + ecx]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [eax + ecx]
add eax, dword [ebp - 0xb4]
push eax
call fcn.0041bcd2
add esp, 0x10
jmp 0x4130be
push dword [eax + ecx]
call fcn.0041bbf7
push dword [ebp - 0x94]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x90]
push eax
call fcn.004118e0
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0xbc]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0xa0]
push dword [eax + ecx*4]
push dword [ebp - 0xb0]
call fcn.0041b912
add esp, 0x20
mov dword [ebp - 4], eax
test eax, eax
jne case.0x411b5b.17
mov eax, dword [ebp - 0x8c]
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x98], eax
push dword [ecx + edx*4]
push eax
call fcn.0041bcd2
add esp, 0xc
mov eax, dword [ebp - 0x94]
mov cl, byte [ebp - 0xdc]
mov byte [eax + 0x1f], cl
jmp 0x4130eb
cmp byte [esi + 1], 0xf8
jne 0x4130eb
push 0x800
push dword [esi + 0x10]
push dword [ebp - 0x94]
call fcn.0041b732
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x413122
mov eax, dword [ebp - 0x94]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [ebp - 0x94]
or byte [eax + 0x1d], 2
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x8c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 0x24], eax
push dword [ebp - 0x94]
call fcn.0040dc0d
jmp 0x412e46
push 0xf5b1
jmp 0x412e41
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea esi, [ebx + ecx*8]
mov cl, byte [eax]
inc eax
mov byte [ebp - 0xcc], cl
test cl, cl
mov dword [ebp - 0xd0], eax
je case.0x411b5b.17
test byte [esi + 0x1d], 0x40
je 0x413172
push esi
call fcn.0040dc64
pop ecx
push dword [ebp - 0xdc]
push dword [ebp - 0xcc]
push esi
call fcn.0041c782
mov eax, dword [ebp - 0xd0]
add esp, 0xc
add esi, 0x28
mov al, byte [eax]
inc dword [ebp - 0xd0]
test al, al
mov byte [ebp - 0xcc], al
jne 0x413165
jmp case.0x411b5b.17
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x9c], eax
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*4]
mov dword [ebp - 0x98], ecx
lea edx, [ebx + eax*8]
mov dword [ebp - 0xa4], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x9c], eax
lea eax, [eax + eax*4]
lea eax, [edx + eax*8 - 0x28]
mov dword [ebp - 0xa0], eax
cmp edx, dword [ebp - 0xa0]
movzx eax, byte [edi + 0x66]
mov dword [ebp - 0x94], eax
mov esi, dword [esi + 0xc]
lea eax, [esi + esi*4]
mov esi, edx
mov dword [ebp - 0xcc], esi
lea eax, [ebx + eax*8]
mov dword [ebp - 0x10], eax
ja 0x4132f3
jmp 0x413237
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xa4]
test ecx, ecx
je 0x41325e
push dword [ebp - 0xdc]
mov eax, esi
sub eax, edx
push 0x28
cdq
pop ebx
idiv ebx
mov al, byte [eax + ecx]
push eax
push esi
call fcn.0041c782
mov esi, dword [ebp - 0xcc]
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x413277
cmp dword [esi + 0x18], 0
jle 0x413277
push esi
call fcn.0040dc64
mov esi, dword [ebp - 0xcc]
pop ecx
push dword [ebp - 0x94]
push esi
call fcn.0041bb2e
push eax
mov dword [ebp - 0xa8], eax
call fcn.0041bbf7
mov dword [ebp - 0x8c], eax
cdq
add dword [ebp - 0xc8], eax
adc dword [ebp - 0xc4], edx
xor ebx, ebx
push ebx
push dword [ebp - 0xa8]
call fcn.004168ea
mov esi, dword [ebp - 0xcc]
add dword [ebp - 0xc0], eax
add esp, 0x14
test byte [esi + 0x1d], 0x40
je 0x4132d0
mov eax, dword [esi + 0x10]
add dword [ebp - 0xb0], eax
jmp 0x4132de
cmp dword [ebp - 0x8c], ebx
je 0x4132de
mov dword [ebp - 0xb0], ebx
add esi, 0x28
cmp esi, dword [ebp - 0xa0]
mov dword [ebp - 0xcc], esi
jbe 0x41322b
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.004168ea
add dword [ebp - 0xc0], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.004168ea
add esp, 0x10
cmp dword [ebp - 0xac], eax
jge 0x41332c
inc dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb0]
cdq
mov ebx, eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xe0], ebx
mov ebx, edx
cdq
mov esi, eax
mov eax, dword [ebp - 0xe0]
mov ecx, edx
sub esi, eax
mov eax, dword [ebp - 8]
sbb ecx, ebx
add esi, dword [ebp - 0xc8]
adc ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x416579
jl 0x413383
cmp esi, eax
ja 0x416579
push 0
push esi
mov esi, dword [ebp - 0x10]
push esi
call fcn.0040db1e
add esp, 0xc
test eax, eax
jne 0x416451
mov eax, dword [esi + 4]
mov ebx, 0x80
cmp dword [ebp - 0xc0], ebx
mov dword [ebp - 0xd0], eax
jae 0x4133bd
mov cl, byte [ebp - 0xc0]
push 1
mov byte [eax], cl
pop eax
jmp 0x4133cb
push dword [ebp - 0xc0]
push eax
call fcn.00416836
pop ecx
pop ecx
movzx eax, al
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
ja 0x413448
push dword [ebp - 0x94]
push dword [ebp - 0xcc]
call fcn.0041bb2e
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0xa8], eax
jae 0x413419
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0xd0]
push 1
mov byte [ecx + edx], al
pop eax
jmp 0x413430
mov ecx, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xd0]
add ecx, eax
push ecx
call fcn.00416836
pop ecx
pop ecx
movzx eax, al
add dword [ebp - 0x90], eax
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x4133e0
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
ja 0x41349d
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x90]
push dword [ebp - 0xcc]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0xd0]
add eax, ecx
push eax
call fcn.0041bc0e
add dword [ebp - 0x90], eax
add esp, 0x10
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x413454
mov eax, dword [ebp - 0xb8]
and dword [esi + 0x20], 0
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], 0x410
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x4134c3
mov dword [esi + 0x10], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov eax, dword [eax]
cmp eax, ecx
mov dword [ebp - 0xc8], eax
je 0x4134f5
lea ecx, [ebp - 0xd0]
push ecx
push eax
call fcn.0041a8a4
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x413501
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xcc]
jmp 0x414bec
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 0x10]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
jne 0x4135ec
cmp dword [eax + 0x90], ecx
jle 0x413544
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x4138a5
push esi
call fcn.00403f85
mov dword [ebp - 0xc8], eax
add eax, 0x19
push eax
push dword [ebp - 8]
call fcn.00402ef7
add esp, 0xc
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x411b5b.17
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc8]
inc eax
push eax
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xcc]
push dword [eax]
call fcn.00464990
mov eax, dword [ebp - 8]
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x4135a6
and byte [eax + 0x1c], 0
mov byte [eax + 0x1e8], 1
jmp 0x4135ac
inc dword [eax + 0x1e0]
mov esi, dword [ebp - 0xc4]
mov edx, dword [eax + 0x1dc]
lea ecx, [eax + 0x1dc]
mov dword [esi + 0x10], edx
mov edx, dword [ebp - 0xc4]
mov dword [ecx], edx
mov edx, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x1f0]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [eax + 0x1f4]
mov dword [ecx + 0xc], eax
jmp case.0x411b5b.17
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 0x1dc]
cmp eax, ecx
mov dword [ebp - 0xc0], eax
je 0x41363c
push dword [ebp - 0xcc]
push dword [eax]
call fcn.00403fa3
pop ecx
test eax, eax
pop ecx
je 0x413630
mov eax, dword [ebp - 0xc0]
inc dword [ebp - 0xb8]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [ebp - 0xc0], eax
jne 0x413602
jmp 0x413636
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
cmp eax, ecx
jne 0x413662
push dword [ebp - 0xcc]
lea eax, [edi + 0x38]
push str.no_such_savepoint:__s
push dword [ebp - 8]
push eax
call fcn.0040f7d6
add esp, 0x10
mov dword [ebp - 4], 1
jmp case.0x411b5b.17
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x90], ecx
jg 0x413819
cmp dword [ebp - 0xd0], 2
jne 0x413687
cmp dword [ebx + 0x8c], 1
jg 0x413822
cmp dword [eax + 0x10], ecx
jne 0x4136e7
cmp byte [ebx + 0x1e8], 0
je 0x4136e7
push 1
pop edx
cmp dword [ebp - 0xd0], edx
mov dword [ebp - 0xe0], edx
jne 0x4136ed
push edx
push edi
call fcn.0040f77b
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x4165de
push edi
mov byte [ebx + 0x1c], 1
call fcn.0040e2ad
pop ecx
push 5
pop esi
cmp eax, esi
je 0x416482
and byte [ebx + 0x1e8], 0
mov eax, dword [edi + 0x5c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc0]
jmp 0x413787
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebx + 0x1e0]
mov dword [ebp - 0xb4], ecx
sub edx, dword [ebp - 0xb8]
dec edx
mov dword [ebp - 0xb8], edx
cmp dword [ebx + 4], ecx
jle 0x413755
jmp 0x413713
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 8]
push edx
push dword [ebp - 0xd0]
mov eax, dword [eax + 8]
shl ecx, 4
push dword [ecx + eax + 4]
call fcn.0040f6d1
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x416529
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 8]
inc ecx
mov dword [ebp - 0xb4], ecx
cmp ecx, dword [eax + 4]
jl 0x41370d
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0xd0], 2
jne 0x413787
mov esi, dword [ebp - 8]
mov ebx, 0x200
test dword [esi + 0xc], ebx
je 0x41378a
push esi
call fcn.0041c344
push 0
push esi
call fcn.0041e27e
add esp, 0xc
or dword [esi + 0xc], ebx
mov eax, dword [ebp - 0xc0]
jmp 0x41378a
mov esi, dword [ebp - 8]
mov ecx, dword [esi + 0x1dc]
cmp ecx, eax
je 0x4137c5
mov dword [ebp - 0xbc], ecx
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1dc], eax
push dword [ebp - 0xbc]
push esi
call fcn.00402cfd
dec dword [esi + 0x1e0]
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
mov ecx, dword [esi + 0x1dc]
jmp 0x413790
cmp dword [ebp - 0xd0], 1
jne 0x413800
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1dc], eax
push dword [ebp - 0xc0]
push esi
call fcn.00402cfd
cmp dword [ebp - 0xe0], 0
pop ecx
pop ecx
jne case.0x411b5b.17
mov eax, dword [ebp - 8]
dec dword [eax + 0x1e0]
jmp case.0x411b5b.17
add eax, 8
mov ecx, dword [eax]
mov dword [esi + 0x1f0], ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x1f4], eax
jmp case.0x411b5b.17
cmp dword [ebp - 0xd0], 2
jne 0x413829
mov eax, str.rollback
jmp 0x41382e
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
lea eax, [edi + 0x38]
push ebx
push eax
call fcn.0040f7d6
add esp, 0x10
jmp 0x4138b4
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
je 0x41387b
cmp byte [eax + 0x1c], 0
jne 0x41387b
push 1
cmp esi, ecx
pop ebx
mov dword [ebp - 0xc8], ebx
je 0x413898
cmp dword [eax + 0x8c], ebx
jle 0x413881
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4138a5
mov dword [ebp - 0xc8], ecx
movzx eax, byte [eax + 0x1c]
cmp edx, eax
jne 0x416491
cmp edx, ecx
jne 0x4138c0
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4138ce
cmp dword [eax + 0x90], ecx
jle 0x413881
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
add esp, 0xc
mov dword [ebp - 4], 5
jmp case.0x411b5b.17
cmp esi, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x4138ce
mov eax, str.cannot_commit___no_transaction_is_active
push eax
lea eax, [edi + 0x38]
push dword [ebp - 8]
push eax
call fcn.0040f7d6
add esp, 0xc
jmp 0x413656
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
cmp eax, ecx
mov dword [ebp - 0xd0], eax
je case.0x411b5b.17
push dword [esi + 8]
push eax
call fcn.0040a98c
pop ecx
mov dword [ebp - 4], eax
pop ecx
push 5
pop eax
cmp dword [ebp - 4], eax
je 0x416502
cmp dword [ebp - 4], 0
jne 0x416529
cmp dword [esi + 8], 0
je case.0x411b5b.17
cmp byte [edi + 0x68], 0
je case.0x411b5b.17
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1c], 0
je 0x41394c
cmp dword [esi + 0x8c], 1
jle case.0x411b5b.17
cmp dword [edi + 0x74], 0
jne 0x41396f
inc dword [esi + 0x1e4]
mov ecx, dword [esi + 0x1e0]
lea eax, [esi + 0x1e4]
mov eax, dword [esi + 0x1e4]
add ecx, eax
mov dword [edi + 0x74], ecx
push dword [edi + 0x74]
push dword [ebp - 0xd0]
call fcn.004177c6
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x1f0]
mov dword [edi + 0xc8], eax
mov eax, dword [esi + 0x1f4]
pop ecx
mov dword [edi + 0xcc], eax
pop ecx
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
mov esi, dword [esi + 0xc]
push ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc8], esi
push esi
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0040cf50
add esp, 0xc
mov eax, dword [ebp - 0xd0]
jmp 0x416298
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 8]
shl eax, 4
add eax, dword [ecx + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041b5e9
push dword [ebx + 0x10]
mov eax, dword [ebp - 0xd0]
push dword [esi + 8]
push dword [eax + 4]
call fcn.0040cf85
mov dword [ebp - 4], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x413a33
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
or byte [eax + 0xd], 2
jmp 0x413a47
cmp eax, 2
jne 0x413a47
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x48], cl
cmp dword [esi + 4], 1
jne case.0x411b5b.17
push dword [ebp - 8]
call fcn.0041c344
pop ecx
jmp 0x416158
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
cmp eax, ecx
mov dword [ebp - 0xcc], eax
je 0x413a8a
lea ecx, [ebp - 0xd0]
push ecx
push 1
push eax
call fcn.0040cf50
add esp, 0xc
jmp 0x413a90
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xd0]
cmp eax, dword [esi + 8]
je case.0x411b5b.17
push dword [edi + 0x38]
mov ebx, dword [ebp - 8]
push ebx
call fcn.00402cfd
push str.database_schema_has_changed
push ebx
call fcn.004107e8
mov dword [edi + 0x38], eax
mov esi, dword [esi + 4]
mov ecx, dword [ebx + 8]
mov eax, esi
shl eax, 4
add esp, 0x10
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd0]
je 0x413ade
push esi
push ebx
call fcn.0041e27e
pop ecx
pop ecx
push ebx
call fcn.0041c344
pop ecx
mov dword [ebp - 4], 0x11
jmp case.0x411b5b.17
cmp byte [edi + 0x64], 0
je 0x413b03
mov dword [ebp - 4], 4
jmp case.0x411b5b.17
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov edx, dword [esi + 8]
mov dword [ebp - 0xc8], edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0xc4], edx
shl edx, 4
add edx, dword [eax + 8]
mov dword [ebp - 0xb4], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
cmp byte [esi], 0x27
jne 0x413b55
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x48]
cmp al, byte [edi + 0x66]
jae 0x413b5b
mov byte [edi + 0x66], al
jmp 0x413b5b
mov dword [ebp - 0xc0], ecx
cmp byte [esi + 3], 0
je 0x413b86
mov eax, dword [ebp - 0xc8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041b5e9
mov ebx, dword [ebx + 0x10]
pop ecx
cmp ebx, 2
mov dword [ebp - 0xc8], ebx
jl 0x416512
mov cl, byte [esi + 1]
mov eax, dword [ebp - 0xd0]
cmp cl, 0xfa
jne 0x413bb8
mov eax, dword [esi + 0x10]
mov ecx, dword [edi]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x49]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0xcc]
movzx eax, word [eax + 6]
inc eax
jmp 0x413bc0
cmp cl, 0xf2
jne 0x413bc6
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
push 1
push dword [ebp - 0xc4]
push eax
push dword [esi + 4]
push edi
call fcn.0041c6a6
add esp, 0x14
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x416451
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x20], 1
mov eax, dword [ebp - 0xb8]
push dword [eax]
push dword [ebp - 0xcc]
push dword [ebp - 0xc0]
push dword [ebp - 0xc8]
push dword [ebp - 0xbc]
call fcn.004177f0
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xcc]
add esp, 0x14
cmp eax, 0x10
mov dword [ebp - 4], eax
mov dword [ecx + 8], edx
jne 0x413c43
mov eax, dword [ebp - 0xb8]
and dword [eax], 0
and dword [ebp - 4], 0
cmp byte [esi + 1], 0xfa
mov ecx, dword [ebp - 0xb8]
setne al
mov byte [ecx + 0x1e], al
mov eax, dword [ebp - 0xb8]
jmp 0x413d80
push 1
push 0xffffffffffffffff
push dword [esi + 8]
push dword [esi + 4]
push edi
call fcn.0041c6a6
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x416451
mov byte [eax + 0x1c], 1
push dword [0x483b08]
movzx eax, byte [esi + 3]
or al, 9
push eax
mov eax, dword [ebp - 0xd0]
add eax, 4
push eax
push dword [ebp - 8]
push 0
call fcn.00416dcd
add esp, 0x14
mov dword [ebp - 4], eax
test eax, eax
jne 0x413d6a
mov eax, dword [ebp - 0xd0]
push 1
pop ebx
push ebx
push dword [eax + 4]
call fcn.0040a98c
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x413d6a
cmp dword [esi + 0x10], eax
je 0x413d46
lea eax, [ebp - 0xf8]
push 2
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 4]
call fcn.0041a356
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x413d3a
mov eax, dword [ebp - 0xd0]
push dword [eax]
push dword [esi + 0x10]
push ebx
push dword [ebp - 0xf8]
push dword [eax + 4]
call fcn.004177f0
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x10]
add esp, 0x14
mov dword [ecx + 8], eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1e], 0
jmp 0x413d6a
mov eax, dword [ebp - 0xd0]
push dword [eax]
push 0
push ebx
push ebx
push dword [eax + 4]
call fcn.004177f0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0x14
mov byte [eax + 0x1e], 1
cmp byte [esi + 3], 0x10
mov ecx, dword [ebp - 0xd0]
setne al
mov byte [ecx + 0x20], al
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1e], 0
sete cl
mov byte [eax + 0x1f], cl
jmp case.0x411b5b.17
push 0
push 0xffffffffffffffff
push dword [esi + 0xc]
push dword [esi + 4]
push edi
call fcn.0041c6a6
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x416451
mov byte [eax + 0x1c], 1
mov ecx, dword [ebp - 0xd0]
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1f], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
push dword [ecx + eax*4]
push edi
call fcn.0040e5e8
mov eax, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x44]
and dword [ecx + eax*4], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc8], eax
cmp dword [eax], ecx
je 0x415839
movzx ecx, byte [esi]
mov dword [ebp - 0xcc], ecx
and byte [eax + 0x1c], 0
mov ecx, dword [ebp - 0xc8]
cmp byte [ecx + 0x1e], 0
je 0x413fda
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.004119b8
push ebx
call fcn.0041021e
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], edx
pop ecx
and byte [eax + 0x19], 0
mov ax, word [ebx + 0x1c]
test al, 4
pop ecx
jne 0x413f6f
test al, 8
je 0x415839
cmp dword [ebp - 0xa0], 0
jne 0x413f23
mov eax, 0x80000000
cmp dword [ebp - 0x9c], eax
jne 0x413f23
and dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], eax
fild qword [ebp - 0x110]
fcomp qword [ebx + 8]
fnstsw ax
sahf
ja 0x413eb5
fld qword [ebx + 8]
fcomp qword [0x4868d8]
fnstsw ax
sahf
jbe 0x413f23
mov dword [ebp - 0xd0], 1
fld qword [ebx + 8]
fcomp qword [0x4868d8]
fnstsw ax
sahf
jae 0x413ef0
cmp dword [ebp - 0xcc], 0x2e
jl 0x415839
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00417a5d
jmp 0x413f11
cmp dword [ebp - 0xcc], 0x2d
jg 0x415839
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00417cb9
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x416529
jmp 0x412bca
cmp dword [ebp - 0xcc], 0x2c
je 0x413f53
cmp dword [ebp - 0xcc], 0x2e
je 0x413f53
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jbe 0x413f6f
add dword [ebp - 0xa0], 0xffffffff
adc dword [ebp - 0x9c], 0xffffffff
jmp 0x413f6f
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jae 0x413f6f
add dword [ebp - 0xa0], 1
adc dword [ebp - 0x9c], 0
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
push 0
push dword [eax]
call fcn.00417d64
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x416529
cmp dword [ebp - 0xd0], eax
jne 0x414060
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 1
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xa0]
mov dword [ecx + 0x40], eax
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 0x44], eax
jmp 0x414060
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov al, byte [ebp - 0xcc]
and eax, 1
shl eax, 3
mov word [ebp - 0xba], ax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb0], eax
test byte [eax + 0x1d], 0x40
je 0x41402f
push eax
call fcn.0040dc64
pop ecx
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0xd0]
xor ebx, ebx
push eax
push ebx
push ebx
lea eax, [ebp - 0xc0]
push ebx
push eax
push dword [ecx]
call fcn.00417d64
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x19], bl
mov eax, dword [ebp - 0xc8]
xor ebx, ebx
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x4c], ebx
cmp dword [ebp - 0xcc], 0x2e
jl 0x4140b2
cmp dword [ebp - 0xd0], ebx
jl 0x41409c
jne 0x414091
cmp dword [ebp - 0xcc], 0x2f
je 0x41409c
mov dword [ebp - 0xd0], ebx
jmp case.0x411b5b.17
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418043
jmp 0x4140ec
cmp dword [ebp - 0xd0], ebx
jg 0x4140d8
jne 0x4140c5
cmp dword [ebp - 0xcc], 0x2c
je 0x4140d8
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418035
pop ecx
jmp 0x412bc4
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0041817b
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x19], 0
jmp 0x412bca
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
cmp dword [eax], ecx
je case.0x411b5b.17
and byte [eax + 0x1c], 0
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0041021e
pop ecx
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 1
jmp case.0x411b5b.17
mov edx, dword [edi + 0x44]
mov dword [ebp - 0xd0], ecx
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov edx, dword [esi + 0xc]
cmp dword [eax], ecx
lea edx, [edx + edx*4]
lea ebx, [ebx + edx*8]
je 0x41424f
cmp dword [esi + 0x10], ecx
jle 0x4141ba
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc0], ecx
mov cx, word [esi + 0x10]
mov word [ebp - 0xbc], cx
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xb0], ebx
mov word [ebp - 0xba], 0x10
mov dword [ebp - 0xc4], ecx
jmp 0x4141ef
lea ecx, [ebp - 0xa8]
push 0x97
push ecx
push dword [ebx + 4]
push dword [ebx + 0x18]
push dword [eax + 8]
call fcn.0041bec9
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x416451
or byte [eax + 6], 0x10
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0xc8]
xor ebx, ebx
push ecx
push ebx
push ebx
push ebx
push dword [ebp - 0xc4]
push dword [eax]
call fcn.00417d64
add esp, 0x18
cmp dword [esi + 0x10], ebx
mov dword [ebp - 4], eax
jne 0x41421f
push dword [ebp - 0xc4]
call fcn.0041bfee
pop ecx
cmp dword [ebp - 4], ebx
jne case.0x411b5b.17
xor eax, eax
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xcc]
and dword [eax + 0x4c], 0
xor ecx, ecx
cmp byte [esi], 0x32
jne 0x414265
cmp dword [ebp - 0xd0], ecx
je case.0x411b5b.17
jmp 0x415839
cmp dword [ebp - 0xd0], ecx
jmp 0x415833
mov eax, dword [esi + 0xc]
mov edx, dword [edi + 0x44]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov dword [eax + 0x48], ecx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xc0]
mov edx, dword [eax]
mov dword [ebp - 0xc8], edx
mov edx, dword [eax + 8]
mov dx, word [edx + 6]
mov word [ebp - 0xd0], cx
cmp dx, cx
mov word [ebp - 0xc4], dx
jbe 0x41430e
movzx edx, word [ebp - 0xd0]
lea edx, [edx + edx*4]
test byte [ebx + edx*8 + 0x1c], 1
jne 0x414301
mov dx, word [ebp - 0xc4]
inc word [ebp - 0xd0]
cmp word [ebp - 0xd0], dx
jb 0x4142d7
jmp 0x41430e
mov edx, dword [esi + 8]
mov dword [ebp - 0xc8], ecx
dec edx
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc8], ecx
je case.0x411b5b.17
mov eax, dword [eax + 8]
mov dword [ebp - 0xa8], ebx
mov ebx, dword [ebp - 0xd8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
push ebx
inc eax
mov word [ebp - 0xb2], 0x20
mov word [ebp - 0xb4], ax
call fcn.0041b5e9
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x48
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc8]
call fcn.00417d64
add esp, 0x1c
mov dword [ebp - 4], eax
test byte [ebp - 0xb2], 0x20
jne 0x415839
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp - 0xa0]
jne 0x4143b2
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebp - 0x9c]
je 0x415839
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xac]
mov dword [ebx + 0x14], eax
jmp case.0x411b5b.17
mov eax, dword [esi + 0xc]
mov edx, dword [edi + 0x44]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je 0x41448a
and dword [ebp - 0xc8], 0
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0xbc], ecx
lea ecx, [ebp - 0xc8]
push ecx
push 0
push dword [ebp - 0xbc]
push eax
push 0
push edx
call fcn.00417d64
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x10]
add esp, 0x18
mov dword [ecx + 0x40], eax
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebx + 0x14]
mov dword [ecx + 0x44], eax
cmp dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0xd0]
sete al
mov byte [ecx + 0x19], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1c], 0
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x41447c
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x48], eax
jmp case.0x411b5b.17
mov esi, dword [esi + 8]
mov dword [eax + 0x48], ecx
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
mov ebx, dword [edx + 0x30]
mov dword [eax + 0x10], ebx
mov edx, dword [edx + 0x34]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], ecx
jmp case.0x411b5b.17
mov edx, dword [edi + 0x44]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xc8], edx
cmp dword [edx], ecx
je 0x413501
mov dword [ebp - 0xc0], ecx
cmp byte [edx + 0x1b], 0
jne 0x414694
push dword [edx]
call fcn.004178bc
mov dword [ebp - 0xd0], eax
or eax, edx
pop ecx
mov dword [ebp - 0xcc], edx
jne 0x41459e
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00417cb9
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x416529
cmp dword [ebp - 0xc4], eax
je 0x414556
and dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], 1
jmp 0x41459e
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0040d48b
cmp dword [ebp - 0xd0], 0xffffffff
pop ecx
pop ecx
mov dword [ebp - 4], eax
jne 0x414590
cmp dword [ebp - 0xcc], 0x7fffffff
jne 0x414590
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1b], 1
jmp 0x41459e
add dword [ebp - 0xd0], 1
adc dword [ebp - 0xcc], 0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x41464b
mov eax, dword [edi + 0xd8]
test eax, eax
je 0x4145d2
mov dword [ebp - 0xb8], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4145c4
mov eax, ecx
jmp 0x4145b3
mov esi, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*8]
jmp 0x4145d8
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xbc], eax
call fcn.0041b5e9
mov eax, dword [ebp - 0xbc]
pop ecx
add eax, 0x10
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x414604
cmp edx, 0x7fffffff
je 0x416522
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 0x1b], 0
jne 0x416522
mov esi, dword [ebp - 0xcc]
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x41463a
jl 0x41462e
cmp dword [ebp - 0xd0], ecx
jae 0x41463a
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
mov ecx, dword [ebp - 0xd0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xcc]
cmp ecx, 0x7fffffff
jg 0x41466e
mov eax, dword [ebp - 0xd0]
jl 0x414666
cmp eax, 0xffffffff
jae 0x41466e
add eax, 1
adc ecx, 0
jmp 0x414672
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00417895
mov edx, dword [ebp - 0xc8]
add esp, 0xc
cmp byte [edx + 0x1b], 0
je 0x414774
mov ecx, dword [ebp - 8]
push 0
pop esi
lea ebx, [ebp - 0xc4]
mov eax, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x34]
and ecx, 0x3fffffff
add eax, 1
adc ecx, esi
push ebx
push esi
push ecx
push eax
push esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc0], esi
push dword [edx]
call fcn.00417d64
add esp, 0x18
cmp eax, esi
mov dword [ebp - 4], eax
jne 0x41476c
cmp dword [ebp - 0xc4], esi
jne 0x41475c
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0x64
jge 0x41475c
lea eax, [ebp - 0xd0]
push eax
push 8
call fcn.00403e2b
cmp dword [ebp - 0xc0], 5
pop ecx
pop ecx
jge 0x41471c
and byte [ebp - 0xcd], 0
and dword [ebp - 0xcc], esi
jmp 0x414723
and byte [ebp - 0xc9], 0x3f
add dword [ebp - 0xd0], 1
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc8]
push esi
adc dword [ebp - 0xcc], esi
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push esi
push dword [eax]
call fcn.00417d64
add esp, 0x18
cmp eax, esi
mov dword [ebp - 4], eax
je 0x4146dd
cmp eax, esi
jne 0x41476c
cmp dword [ebp - 0xc4], esi
je 0x416522
mov edx, dword [ebp - 0xc8]
jmp 0x414776
xor esi, esi
and byte [edx + 0x19], 0
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x4c], esi
jmp 0x413501
mov eax, dword [esi + 8]
mov edx, dword [edi + 0x44]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc0], eax
cmp byte [esi], 0x37
mov eax, dword [esi + 0xc]
jne 0x4147d2
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebx + 0x14]
jmp 0x4147d9
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
test byte [esi + 3], 1
je 0x4147e8
inc dword [edi + 0x6c]
test byte [esi + 3], 2
je 0x4147fd
mov edx, dword [ebp - 8]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x1c], 1
je 0x41481b
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xd0]
test byte [esi + 3], 0x10
je 0x414832
mov edx, dword [ebp - 0xc0]
mov edx, dword [edx + 0x48]
mov dword [ebp - 0xb8], edx
jmp 0x414838
mov dword [ebp - 0xb8], ecx
test byte [eax + 0x1d], 0x40
je 0x414849
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xbc], eax
jmp 0x41484f
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0xc0]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00417895
mov al, byte [esi + 3]
push dword [ebp - 0xb8]
and eax, 8
push eax
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0xbc]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push ebx
push dword [eax]
call fcn.00418285
mov ecx, dword [ebp - 0xc0]
add esp, 0x30
mov dword [ebp - 4], eax
and byte [ecx + 0x19], bl
mov ecx, dword [ebp - 0xc0]
and byte [ecx + 0x1d], bl
mov ecx, dword [ebp - 0xc0]
cmp eax, ebx
mov dword [ecx + 0x4c], ebx
jne case.0x411b5b.17
mov eax, dword [ebp - 8]
cmp dword [eax + 0xbc], ebx
je case.0x411b5b.17
cmp dword [esi + 0x10], ebx
je case.0x411b5b.17
mov eax, dword [ebp - 0xc0]
push dword [ebp - 0xc4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
shl ecx, 4
mov edx, dword [eax + 8]
push dword [ebp - 0xc8]
mov ecx, dword [ecx + edx]
mov dword [ebp - 0xb4], ecx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xb0], edx
mov bl, byte [esi + 3]
and bl, 4
push edx
neg bl
sbb ebx, ebx
push ecx
and ebx, 5
add ebx, 0x12
push ebx
mov dword [ebp - 0xac], ebx
push dword [eax + 0xb8]
call dword [eax + 0xbc]
jmp 0x4162ff
mov ebx, dword [edi + 0x44]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov edx, dword [esi + 4]
mov edx, dword [ebx + edx*4]
mov dword [ebp - 0xc8], edx
cmp dword [eax + 0xbc], ecx
je 0x41496e
cmp dword [esi + 0x10], ecx
je 0x41496e
mov eax, dword [edx + 0x40]
mov dword [ebp - 0xd0], eax
mov eax, dword [edx + 0x44]
mov dword [ebp - 0xcc], eax
push edx
call fcn.0041ba6c
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xc8]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00417895
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0041a143
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 4], eax
mov dword [ecx + 0x4c], ebx
jne 0x4149f1
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xbc]
cmp edx, ebx
je 0x4149f1
mov ecx, dword [esi + 0x10]
cmp ecx, ebx
je 0x4149f1
push dword [ebp - 0xcc]
mov ebx, dword [eax + 8]
push dword [ebp - 0xd0]
push ecx
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx + 0xc]
shl ecx, 4
push dword [ecx + ebx]
push 9
push dword [eax + 0xb8]
call edx
add esp, 0x18
test byte [esi + 8], 1
je case.0x411b5b.17
jmp 0x41623e
push dword [edi + 0x6c]
push dword [ebp - 8]
call fcn.0040f847
and dword [edi + 0x6c], 0
pop ecx
pop ecx
jmp case.0x411b5b.17
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x44]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 4]
mov dword [ebp - 0x10], ebx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xd0], eax
push eax
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
call fcn.0041ba6c
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], 0
je 0x414a98
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xcc]
call fcn.0040d48b
mov eax, dword [ebp - 8]
pop ecx
pop ecx
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0xbc]
cdq
cmp ecx, edx
mov ecx, dword [ebp - 0xc0]
jg 0x416579
jl 0x414a90
cmp ecx, eax
ja 0x416579
mov dword [ebp - 0xc8], ecx
jmp 0x414abe
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xcc]
call fcn.004178c7
mov eax, dword [ebp - 8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [eax + 0x48]
ja 0x416579
push 0
push dword [ebp - 0xc8]
push ebx
call fcn.0040db1e
add esp, 0xc
test eax, eax
jne 0x416451
mov eax, dword [ebp - 0xc8]
push dword [ebx + 4]
mov dword [ebx + 0x18], eax
mov ax, word [ebx + 0x1c]
and ax, 0xbf10
or al, 0x10
mov word [ebx + 0x1c], ax
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
push 0
cmp byte [eax + 0x1f], 0
push dword [ebp - 0xcc]
je 0x414b12
call fcn.0040d522
jmp 0x414b17
call fcn.004178e0
add esp, 0x10
mov dword [ebp - 4], eax
mov byte [ebx + 0x1f], 1
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
cmp byte [eax + 0x1c], 0
je 0x414b49
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
jmp case.0x411b5b.17
cmp byte [eax + 0x1d], 0
je 0x414b63
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0xc4], eax
jmp 0x414bda
mov edx, dword [eax + 0x24]
cmp edx, ecx
je 0x414b9b
mov ecx, dword [edx]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xc0], ecx
push edx
mov ecx, dword [ecx]
mov dword [ebp - 0xbc], ecx
push dword [eax + 0x24]
call dword [ecx + 0x30]
push dword [ebp - 0xc0]
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0x10
jmp 0x414bda
push eax
call fcn.0041ba6c
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x19], 0
je 0x414bc7
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0x44]
jmp 0x414b5b
lea ecx, [ebp - 0xc8]
push ecx
push dword [eax]
call fcn.0040d48b
pop ecx
mov dword [ebp - 4], eax
pop ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x14], ecx
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
cmp eax, ecx
je case.0x411b5b.17
push eax
call fcn.0040d473
jmp 0x415d0a
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
jne 0x414c53
mov dword [ebp - 0xc8], 1
jmp 0x414c6d
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.00417cb9
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
pop ecx
xor ecx, ecx
mov dl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], dl
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], ecx
mov esi, dword [esi + 8]
cmp esi, ecx
jle case.0x411b5b.17
cmp dword [ebp - 0xc8], ecx
je case.0x411b5b.17
jmp 0x41583c
inc dword [edi + 0x7c]
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je 0x414d22
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.00417a5d
cmp dword [ebp - 0xc8], 0
pop ecx
pop ecx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xd0]
sete al
mov byte [ecx + 0x1a], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
xor ecx, ecx
mov dl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], dl
cmp dword [ebp - 0xc8], ecx
jmp 0x41425a
cmp dword [eax + 0xe0], ecx
jne 0x416553
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + eax*4]
test eax, eax
mov dword [ebp - 0xd0], eax
je case.0x411b5b.17
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xcc], ecx
jne 0x414d6e
mov byte [eax + 0x1c], 1
jmp case.0x411b5b.17
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], 1
cmp byte [esi], 0x43
push eax
push ecx
jne 0x414d8c
call fcn.00418043
jmp 0x414d91
call fcn.0041817b
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
pop ecx
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x4c], 0
cmp dword [ebp - 0xc8], 0
jne 0x414dd1
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xc], eax
mov al, byte [esi + 3]
test al, al
je 0x414dd1
movzx eax, al
inc dword [edi + eax*4 + 0x74]
lea eax, [edi + eax*4 + 0x74]
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x19], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xd0], edx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edx]
cmp eax, ecx
mov dword [ebp - 0xcc], eax
je case.0x411b5b.17
test byte [ebx + 0x1d], 0x40
je 0x414e20
push ebx
call fcn.0040dc64
mov edx, dword [ebp - 0xd0]
pop ecx
mov dword [ebp - 4], eax
jmp 0x414e23
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne case.0x411b5b.17
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc4], ebx
test byte [esi + 3], 0x10
je 0x414e4a
mov edx, dword [edx + 0x48]
jmp 0x414e4c
xor edx, edx
push edx
push dword [esi + 0xc]
cdq
push 0
push 0
push 0x4aa26c
push edx
push eax
push ebx
push dword [ebp - 0xcc]
call fcn.00418285
add esp, 0x24
jmp 0x414ef0
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je case.0x411b5b.17
mov eax, dword [eax + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [esi + 0xc]
mov word [ebp - 0xbc], ax
xor eax, eax
mov word [ebp - 0xba], ax
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xb0], ecx
lea ecx, [ebp - 0xc8]
push ecx
push eax
push eax
push eax
lea eax, [ebp - 0xc0]
push eax
push edx
call fcn.00417d64
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x414ef3
cmp dword [ebp - 0xc8], eax
jne 0x414ef3
push dword [ebp - 0xcc]
call fcn.0041a143
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x4c], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0xd0], ecx
je case.0x411b5b.17
push dword [ebp - 0xcc]
call fcn.0041ba6c
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x416529
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x1c], 0
jne case.0x411b5b.17
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xd0]
push dword [ebp - 8]
call fcn.0041c1ae
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x416529
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x14], ecx
mov word [eax + 0x1c], 4
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xd0], edx
cmp dword [edx], ecx
je case.0x411b5b.17
mov eax, dword [edx + 8]
mov dword [ebp - 0xc8], eax
mov ax, word [esi + 0x10]
mov word [ebp - 0xc4], ax
mov al, byte [esi + 3]
neg al
sbb eax, eax
and eax, 8
add eax, 4
mov word [ebp - 0xc2], ax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.0041c2ad
add esp, 0xc
cmp byte [esi], 0x51
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xcc]
jne 0x41500f
neg eax
jmp 0x415010
inc eax
test eax, eax
mov dword [ebp - 0xcc], eax
jle case.0x411b5b.17
jmp 0x415839
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x88]
cmp eax, ecx
mov dword [ebp - 0xc8], eax
je 0x415058
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x415053
cmp byte [eax + 0x67], 2
jae 0x415053
cmp dword [eax + 0x58], ecx
jl 0x415053
inc dword [ebp - 0xcc]
mov eax, dword [eax + 0x40]
jmp 0x41502f
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0xcc], 1
jle 0x41507a
mov dword [ebp - 4], 6
mov byte [edi + 0x60], 2
jmp case.0x411b5b.17
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0xd0]
push ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc4], eax
push dword [esi + 4]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041a6da
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
add esp, 0xc
cmp dword [ebp - 4], 0
mov word [ecx + 0x1c], 4
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne case.0x411b5b.17
cmp dword [ebp - 0xd0], 0
je case.0x411b5b.17
mov eax, dword [ebp - 0xc4]
push dword [esi + 4]
mov ecx, dword [ebp - 8]
push dword [ebp - 0xd0]
shl eax, 4
add eax, dword [ecx + 8]
push eax
call fcn.0041e63e
add esp, 0xc
mov byte [ebp + 0xb], 1
jmp case.0x411b5b.17
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xd0]
and eax, ecx
mov ecx, dword [ebp - 8]
push eax
mov eax, dword [esi + 8]
push dword [esi + 4]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041a553
add esp, 0xc
cmp dword [esi + 0xc], 0
mov dword [ebp - 4], eax
je case.0x411b5b.17
mov eax, dword [ebp - 0xd0]
add dword [edi + 0x6c], eax
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x411b5b.17
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8 + 0x10]
jmp 0x415811
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 8]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [ebp - 0xc8], eax
cmp byte [esi], 0x62
setne cl
inc ecx
mov dword [ebp - 0xcc], ecx
push ecx
lea ecx, [ebp - 0xd0]
push ecx
push dword [eax + 4]
call fcn.0041a356
add esp, 0xc
mov dword [ebp - 4], eax
jmp 0x4139ce
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 4]
push ebx
mov dword [ebp - 0xd0], eax
call fcn.004062d6
cmp dword [esi + 8], 0
mov eax, dword [ebp - 0xd0]
pop ecx
jne 0x4151d8
mov edx, dword [ebx + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
mov cl, byte [ecx + 0x4a]
and cl, 1
cmp cl, 1
jne 0x415286
cmp eax, 1
mov dword [ebp - 0xcc], str.sqlite_temp_master
je 0x4151f1
mov dword [ebp - 0xcc], str.sqlite_master
mov dword [ebp - 0xc4], ebx
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc0], ecx
lea ecx, [edi + 0x38]
mov dword [ebp - 0xbc], ecx
push dword [esi + 0x10]
mov ecx, dword [ebx + 8]
push dword [ebp - 0xcc]
shl eax, 4
push dword [eax + ecx]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0040f54d
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x41523c
mov dword [ebp - 4], 7
jmp 0x415286
lea eax, [ebp - 0xc4]
push 0
push eax
push fcn.004204e5
mov byte [ebx + 0x7c], 1
push dword [ebp - 0xc8]
and dword [ebp - 0xb8], 0
push ebx
call fcn.0041ff9e
add esp, 0x14
mov dword [ebp - 4], eax
test eax, eax
jne 0x415274
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 4], eax
push dword [ebp - 0xc8]
push ebx
call fcn.00402cfd
and byte [ebx + 0x7c], 0
pop ecx
pop ecx
push ebx
call fcn.00406399
cmp dword [ebp - 4], 7
pop ecx
je 0x416451
jmp case.0x411b5b.17
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041d754
pop ecx
jmp 0x412e46
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041e5a8
jmp 0x4154b6
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041df64
jmp 0x4154b6
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00421791
jmp 0x4154b6
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], eax
lea eax, [eax*4 + 4]
push eax
push dword [ebp - 8]
call fcn.00402ef7
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
pop ecx
je 0x416451
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
cmp dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], eax
jle 0x415368
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0041021e
mov edx, dword [ebp - 0xcc]
pop ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xc8]
inc eax
cmp eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
jl 0x415337
mov ecx, dword [ebp - 0xcc]
and dword [ecx + eax*4], 0
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax + 0x10]
movzx eax, byte [esi + 3]
push dword [ebp - 0xd0]
mov esi, dword [ebp - 8]
shl eax, 4
push dword [ebp - 0xcc]
mov ecx, dword [esi + 8]
push dword [eax + ecx + 4]
call fcn.0041a990
push dword [ebp - 0xcc]
mov dword [ebp - 0xc0], eax
push esi
call fcn.00402cfd
mov eax, dword [ebp - 0xbc]
push ebx
lea ecx, [eax + 0x10]
mov eax, dword [ebp - 0xc4]
cdq
sub dword [ecx], eax
sbb dword [ecx + 4], edx
call fcn.0040ddce
add esp, 0x20
cmp dword [ebp - 0xc4], 0
je 0x415402
cmp dword [ebp - 0xc0], 0
je 0x416451
push fcn.00402ca6
push 1
push 0xffffffffffffffff
push dword [ebp - 0xc0]
push ebx
call fcn.0040d947
add esp, 0x14
movzx eax, byte [ebp - 0xdc]
push eax
push ebx
call fcn.0040fd03
pop ecx
jmp 0x415d0a
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 0x20
lea eax, [ebx + eax*8]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0xd4], eax
jne 0x415448
mov esi, eax
push esi
call fcn.0041b68c
test byte [esi + 0x1c], 0x20
pop ecx
je 0x416451
push dword [ebx + 0x14]
mov eax, dword [ebp - 0xd4]
push dword [ebx + 0x10]
push dword [eax + 0x10]
call fcn.00416913
jmp 0x4154b6
cmp dword [eax + 0xe0], ecx
jne 0x416553
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 0x20
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd4], eax
je 0x4154be
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x10]
call fcn.0041698d
pop ecx
test eax, eax
pop ecx
je 0x4154be
mov esi, dword [esi + 0xc]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00410550
add esp, 0xc
jmp case.0x411b5b.17
push dword [ebp - 0xd4]
call fcn.0040ddce
pop ecx
jmp 0x415839
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd4], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
test byte [ecx + 0x1c], 0x20
jne 0x415513
push ecx
call fcn.0041b68c
mov eax, dword [ebp - 0xd4]
pop ecx
test byte [eax + 0x1c], 0x20
je 0x416451
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x415448
jl 0x415522
and eax, 0xf
jmp 0x415527
mov eax, 0xff
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x10]
call fcn.00416b55
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x415839
mov eax, dword [ebp - 0xd0]
test eax, eax
jl case.0x411b5b.17
jmp 0x415448
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xb8], edx
mov edx, dword [esi + 0xc]
lea edx, [edx + edx*4]
lea edx, [ebx + edx*8]
mov dword [ebp - 0xc8], edx
cmp byte [esi + 3], 0
mov esi, dword [ebp - 0xb8]
je 0x4155b7
mov edx, dword [edi + 0xd8]
mov ebx, dword [esi + 0x10]
cmp edx, ecx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xbc], edx
je 0x4155b7
cmp dword [edx + 0x20], ebx
je 0x4155af
mov edx, dword [edx + 0x3c]
cmp edx, ecx
mov dword [ebp - 0xbc], edx
jne 0x41559d
cmp edx, ecx
jne case.0x411b5b.17
mov ecx, dword [edi + 0xe0]
cmp ecx, dword [eax + 0x70]
jl 0x4155df
push str.too_many_levels_of_trigger_recursion
lea eax, [edi + 0x38]
push dword [ebp - 8]
mov dword [ebp - 4], 1
push eax
call fcn.0040f7d6
jmp 0x4154b6
mov eax, dword [ebp - 0xc8]
test byte [eax + 0x1c], 0x40
jne 0x415735
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
lea eax, [eax*4 + 0x40]
push eax
mov dword [ebp - 0xcc], eax
push dword [ebp - 8]
call fcn.00406632
pop ecx
mov dword [ebp - 0xbc], eax
test eax, eax
pop ecx
je 0x416451
push dword [ebp - 0xc8]
call fcn.0040dcb5
mov eax, dword [ebp - 0xc8]
pop ecx
mov word [eax + 0x1c], 0x40
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xbc]
mov dword [eax], edi
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x44]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0xbc]
mov ax, word [edi + 0x32]
mov word [ecx + 0x1c], ax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 4]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x24]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8 + 0x40]
lea ecx, [eax + 0x40]
cmp ecx, edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], ecx
je 0x41573e
mov word [ecx + 0x1c], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc4]
add ecx, 0x28
cmp ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], ecx
jne 0x415705
mov eax, dword [ebp - 0xbc]
jmp 0x41573e
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xbc], eax
mov ecx, dword [edi + 0xd8]
inc dword [edi + 0xe0]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xbc]
and dword [edi + 0x6c], 0
mov dword [edi + 0xd8], eax
lea ecx, [eax + 0x18]
mov dword [edi + 8], ecx
mov edx, dword [eax + 0x24]
mov dword [edi + 0x18], edx
mov ax, word [eax + 0x28]
mov word [edi + 0x32], ax
mov eax, edx
inc eax
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0xe4], ecx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [edi + 0x44], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
mov dword [edi + 4], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0xf4], ecx
mov dword [edi + 0x1c], eax
jmp case.0x411b5b.17
mov ecx, dword [edi + 0xd8]
push 0x1000
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 4]
add eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xcc], eax
push eax
jmp 0x411d84
cmp dword [esi + 4], ecx
je 0x41581c
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x1f0]
mov eax, dword [esi + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x411b5b.17
lea ecx, [edi + 0xc0]
jmp 0x41580e
cmp dword [esi + 4], ecx
je 0x415845
add eax, 0x1f0
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x411b5b.17
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x411b5b.17
lea eax, [edi + 0xc0]
jmp 0x41582e
mov eax, dword [edi + 0xd8]
cmp eax, ecx
je 0x415876
mov dword [ebp - 0xcc], eax
mov edx, dword [eax + 0x3c]
cmp edx, ecx
je 0x415868
mov eax, edx
jmp 0x415857
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x41587f
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xd0], eax
call fcn.0041b5e9
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
push esi
call fcn.0041b5e9
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
add eax, 0x10
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov edx, dword [eax + 4]
cmp edx, esi
jg case.0x411b5b.17
jl 0x4158c2
mov edx, dword [eax]
cmp edx, ecx
jae case.0x411b5b.17
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 0x14], ecx
lea ebx, [ebx + eax*8 + 0x10]
jl case.0x411b5b.17
jg 0x415839
cmp dword [ebx], ecx
jbe case.0x411b5b.17
jmp 0x415839
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 0x14], ecx
lea ebx, [ebx + eax*8 + 0x10]
jg case.0x411b5b.17
jl 0x415839
cmp dword [ebx], ecx
jae case.0x411b5b.17
jmp 0x415839
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
cdq
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], edx
mov eax, dword [ecx + 0x10]
or eax, dword [ecx + 0x14]
jmp 0x415833
movzx edx, byte [esi + 3]
mov dword [ebp - 0xd0], edx
mov eax, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xcc], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0x80], eax
jle 0x41599c
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xcc]
mov dword [eax + ecx*4], ebx
push dword [ebp - 0xc4]
call fcn.00411983
inc dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xcc]
add ebx, 0x28
cmp eax, dword [ebp - 0xd0]
pop ecx
mov dword [ebp - 0xc4], ebx
jl 0x415961
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0xc]
xor ebx, ebx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], eax
inc dword [eax + 0x18]
mov eax, dword [ebp - 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc0]
mov word [ebp - 0x9c], 1
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
test byte [eax + 3], 8
je 0x415a0a
mov ecx, dword [esi - 4]
mov dword [ebp - 0x88], ecx
push dword [ebp - 0x80]
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xd0]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0x8c], ebx
je 0x415a52
lea eax, [ebp - 0xb8]
push eax
call fcn.0041041e
push eax
push 0x4a4878
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
mov eax, dword [ebp - 0x8c]
add esp, 0x14
mov dword [ebp - 4], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0040dcb5
jmp 0x415d0a
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd0], eax
push dword [esi + 0x10]
push eax
call fcn.0040dd71
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x415aa4
push dword [ebp - 0xd0]
call fcn.0041041e
push eax
push 0x4a4878
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
add esp, 0x14
movzx eax, byte [ebp - 0xdc]
push eax
push dword [ebp - 0xd0]
call fcn.0040fd03
push dword [ebp - 0xd0]
call fcn.0041b70a
add esp, 0xc
jmp 0x416098
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0043e7b1
jmp 0x4152a7
mov eax, dword [esi + 0xc]
cmp dword [edi + 0x84], ecx
mov dword [ebp - 0xc8], eax
jne 0x415afd
push dword [esi + 4]
push edi
call fcn.0041b9d7
push edi
call fcn.0040f73c
add esp, 0xc
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
shl eax, 4
mov ecx, dword [ecx + 8]
mov eax, dword [eax + ecx + 4]
push eax
mov dword [ebp - 0xd0], eax
call fcn.004063df
push eax
mov dword [ebp - 0xcc], eax
call fcn.0040974e
cmp dword [ebp - 0xc8], 0xffffffff
pop ecx
pop ecx
mov dword [ebp - 0xc4], eax
jne 0x415b3c
mov dword [ebp - 0xc8], eax
push dword [ebp - 0xcc]
call fcn.00416d1b
test eax, eax
pop ecx
jne 0x415b58
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], eax
push dword [ebp - 0xcc]
call fcn.0040f5a2
cmp dword [ebp - 0xc8], 5
pop ecx
mov dword [ebp - 0xc0], eax
jne 0x415b94
cmp byte [eax], 0
je 0x415b88
push dword [ebp - 0xcc]
call fcn.0040b523
test eax, eax
pop ecx
jne 0x415b94
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc4]
cmp dword [ebp - 0xc8], edx
je 0x415c26
push 5
pop ecx
cmp edx, ecx
je 0x415bb5
cmp dword [ebp - 0xc8], ecx
jne 0x415c26
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1c], 0
je 0x415c8f
cmp dword [eax + 0x8c], 1
jg 0x415c8f
cmp edx, ecx
jne 0x415bee
push dword [ebp - 0xcc]
call fcn.00416d43
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x415c2c
push dword [ebp - 0xc8]
jmp 0x415bf5
cmp edx, 4
jne 0x415c02
push 2
push dword [ebp - 0xcc]
call fcn.00416c63
pop ecx
pop ecx
cmp dword [ebp - 4], 0
jne 0x415c2c
xor eax, eax
cmp dword [ebp - 0xc8], 5
sete al
inc eax
push eax
push dword [ebp - 0xd0]
call fcn.0041b52c
pop ecx
mov dword [ebp - 4], eax
pop ecx
cmp dword [ebp - 4], 0
je 0x415c38
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], eax
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
call fcn.00416c63
mov dword [ebp - 0xc8], eax
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
mov dword [ebp - 0x10], esi
mov word [esi + 0x1c], 0xa02
push dword [ebp - 0xc8]
call fcn.004204d1
push eax
mov dword [esi + 4], eax
call fcn.00403f85
mov dword [esi + 0x18], eax
mov byte [esi + 0x1f], 1
movzx eax, byte [ebp - 0xdc]
push eax
push esi
call fcn.0040fd03
jmp 0x4162ff
cmp dword [ebp - 0xc8], ecx
mov dword [ebp - 4], 1
mov eax, str.into
je 0x415ca8
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x415d64
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0042181e
jmp 0x4152a7
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
shl eax, 4
mov ecx, dword [ecx + 8]
mov eax, dword [eax + ecx + 4]
push eax
mov dword [ebp - 0xd0], eax
call fcn.0041775d
cmp eax, 0x65
pop ecx
mov dword [ebp - 4], eax
jne case.0x411b5b.17
mov esi, dword [esi + 8]
dec esi
and dword [ebp - 4], 0
mov dword [ebp - 0xc], esi
jmp case.0x411b5b.17
cmp dword [esi + 4], ecx
jne 0x415d10
push dword [ebp - 8]
call fcn.0041c344
pop ecx
jmp case.0x411b5b.17
mov byte [edi + 0x64], 1
jmp case.0x411b5b.17
mov cl, byte [esi + 0xc]
test cl, cl
mov byte [ebp - 0x100], cl
jne 0x415d30
test byte [eax + 0xe], 8
jne case.0x411b5b.17
push dword [ebp - 0x100]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041b47f
add esp, 0xc
cmp al, 6
mov dword [ebp - 4], eax
jne case.0x411b5b.17
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
add esp, 0x10
jmp case.0x411b5b.17
mov esi, dword [esi + 0x10]
push esi
mov dword [ebp - 0xd0], esi
push dword [ebp - 8]
call fcn.00422574
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
pop ecx
test eax, eax
pop ecx
je case.0x411b5b.17
push dword [eax + 8]
push edi
call fcn.0041c7d0
jmp 0x415410
lea eax, [edi + 0x38]
push eax
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00421f61
add esp, 0x10
jmp 0x412e47
mov byte [edi + 0x67], 2
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00422410
add esp, 0xc
and byte [edi + 0x67], 0
mov dword [ebp - 4], eax
jmp case.0x411b5b.17
xor ebx, ebx
lea edx, [ebp - 0xcc]
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], ebx
mov eax, dword [esi + 0x10]
push edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xc8], eax
push eax
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
call dword [ecx + 0x18]
push dword [ebp - 0xc8]
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0x10
cmp dword [ebp - 4], ebx
jne case.0x411b5b.17
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
push ebx
push 0xffffffffffffffff
push ebx
mov dword [ecx], eax
push dword [esi + 4]
push edi
call fcn.0041c6a6
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x415e77
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ecx + 0x28], eax
jmp case.0x411b5b.17
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x1c]
jmp 0x415d0a
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov ebx, dword [edi + 0x44]
mov dword [ebp - 0xc4], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0xc0], edx
mov edx, dword [esi + 4]
mov edx, dword [ebx + edx*4]
mov dword [ebp - 0xb4], edx
mov edx, dword [edx + 0x24]
mov dword [ebp - 0xbc], edx
mov ebx, dword [edx]
mov dword [ebp - 0xb8], ebx
mov ebx, dword [ebx]
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0xc0]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0xd0], ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xcc], eax
mov eax, dword [edi + 0xc]
cmp ebx, ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], ecx
jle 0x415f49
mov edx, dword [ebp - 0xc0]
lea eax, [ecx + ecx*4 + 5]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0xa8]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
push dword [ecx + eax*4]
call fcn.00411983
pop ecx
mov ecx, dword [ebp - 0xac]
inc ecx
cmp ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xac], ecx
jl 0x415f03
mov edx, dword [ebp - 0xbc]
push dword [ebp - 0xa8]
mov eax, dword [ebp - 0xc8]
mov byte [edi + 0x67], 1
push dword [ebp - 0xd0]
push dword [esi + 0x10]
push dword [ebp - 0xcc]
push edx
call dword [eax + 0x20]
push dword [ebp - 0xb8]
and byte [edi + 0x67], 0
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0x1c
cmp dword [ebp - 4], 0
jne 0x415f9e
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
je 0x415fae
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0xb4]
and byte [eax + 0x1c], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xe0], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xc8], ebx
cmp byte [ecx + 0x1c], 0
jne 0x411ede
mov ebx, ecx
push 0x40
push 0
mov eax, dword [ebx + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.004644a0
push dword [ebp - 0xc8]
lea eax, [ebp - 0xb8]
push eax
call fcn.004118e0
mov eax, dword [ebp - 0x9c]
and ax, 0xbf01
or al, 1
mov word [ebp - 0x9c], ax
push dword [esi + 8]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xcc]
push dword [ebx + 0x24]
call dword [eax + 0x2c]
push dword [ebp - 0xd0]
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
mov eax, dword [ebp - 0x8c]
add esp, 0x28
test eax, eax
je 0x416064
mov dword [ebp - 4], eax
movzx eax, byte [ebp - 0xdc]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0040fd03
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc8]
call fcn.004118e0
push dword [ebp - 0xc8]
call fcn.0041b70a
add esp, 0x14
test eax, eax
jne 0x416579
jmp case.0x411b5b.17
mov dword [ebp - 0xc8], ecx
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
cmp byte [eax + 0x1c], 0
jne case.0x411b5b.17
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ecx]
mov byte [edi + 0x67], 1
mov dword [ebp - 0xcc], ecx
push dword [eax + 0x24]
call dword [ecx + 0x24]
push dword [ebp - 0xd0]
and byte [edi + 0x67], 0
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0xc
cmp dword [ebp - 4], 0
jne 0x416116
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jmp 0x415833
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xcc], ecx
mov edx, dword [eax]
push dword [ecx + 4]
push eax
call dword [edx + 0x4c]
push dword [ebp - 0xd0]
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0x10
and byte [edi + 0x64], 0
jmp case.0x411b5b.17
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
mov dword [ebp - 0xcc], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xc8], eax
cmp dword [edx + 0x34], ecx
je case.0x411b5b.17
mov eax, dword [edi + 0xc]
cmp dword [ebp - 0xc8], ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xc4], ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb4], eax
jle 0x4161ef
push dword [ebp - 0xb4]
call fcn.00411983
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb4]
pop ecx
mov ecx, dword [ebp - 0xc4]
mov dword [edx + ecx*4], eax
add dword [ebp - 0xb4], 0x28
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0xc8]
jl 0x4161ad
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb8]
push dword [ebp - 0xc8]
push dword [ebp - 0xd0]
call dword [edx + 0x34]
push dword [ebp - 0xd0]
mov dword [ebp - 4], eax
push edi
call fcn.0041c7d0
add esp, 0x18
cmp dword [ebp - 4], 0
jne 0x41623e
cmp dword [esi + 4], 0
je 0x41623e
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x34], ecx
inc dword [edi + 0x6c]
jmp case.0x411b5b.17
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
shl eax, 4
mov ecx, dword [ecx + 8]
push dword [eax + ecx + 4]
call fcn.0040a976
pop ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x10], eax
and dword [ecx + 0x14], 0
jmp case.0x411b5b.17
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
shl edx, 4
mov ebx, dword [edx + eax + 4]
xor eax, eax
cmp dword [esi + 0xc], ecx
je 0x41628f
push ebx
call fcn.0040a976
mov esi, dword [esi + 0xc]
pop ecx
cmp eax, esi
jae 0x41628f
mov eax, esi
push eax
push ebx
call fcn.0041771a
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x411b5b.17
mov esi, dword [esi + 0x10]
cmp esi, ecx
je 0x4162b3
mov dword [ebp - 0xd0], esi
jmp 0x4162bf
mov edx, dword [edi + 0xd0]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], ecx
je case.0x411b5b.17
cmp dword [eax + 0x98], ecx
lea esi, [eax + 0x98]
je case.0x411b5b.17
push dword [ebp - 0xd0]
push edi
call fcn.0041c35c
mov ebx, dword [ebp - 8]
push eax
mov dword [ebp - 0xe0], eax
push dword [ebx + 0x9c]
call dword [esi]
push dword [ebp - 0xe0]
push ebx
call fcn.00402cfd
add esp, 0x18
inc dword [ebp - 0xc]
cmp dword [ebp - 4], 0
je 0x411abe
jmp 0x416594
mov dword [ebp - 4], 9
jmp 0x416594
mov eax, dword [esi + 4]
mov dword [edi + 0x5c], eax
mov al, byte [esi + 8]
mov byte [edi + 0x60], al
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x58], eax
mov eax, dword [esi + 0x10]
cmp eax, ecx
je 0x416369
push eax
push 0x4a4878
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
push dword [esi + 0x10]
push dword [edi + 0xd0]
push dword [ebp - 0xc]
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.00403db9
add esp, 0x24
jmp 0x416387
cmp dword [edi + 0x5c], ecx
je 0x416387
push dword [edi + 0xd0]
push dword [ebp - 0xc]
push str.constraint_failed_at__d_in___s_
push dword [esi + 4]
call fcn.00403db9
add esp, 0x10
push edi
call fcn.0040e2ad
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x4164ac
mov dword [edi + 0x5c], esi
jmp 0x4165de
mov eax, dword [edi + 0x54]
inc eax
inc eax
or al, 1
mov dword [edi + 0x54], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
mov dword [edi + 0x14], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], eax
cmp dword [esi + 8], eax
jle 0x41642c
mov edx, dword [ebp - 0xd0]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x1d], 0x10
lea ecx, [edx + ecx*8]
je 0x4163ee
push ecx
call fcn.0040dc0d
test eax, eax
pop ecx
jne 0x416451
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004100fc
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00411983
mov eax, dword [ebp - 0xcc]
pop ecx
inc eax
pop ecx
mov dword [ebp - 0xcc], eax
cmp eax, dword [esi + 8]
jl 0x4163ca
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x416451
mov eax, dword [ebp - 0xc]
push 0x64
inc eax
pop esi
mov dword [edi + 0x58], eax
jmp 0x4165de
lea eax, [ebp - 0xc0]
push eax
call fcn.0040dcb5
pop ecx
mov eax, dword [ebp - 8]
push str.out_of_memory
push eax
mov byte [eax + 0x1e], 1
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
add esp, 0xc
mov dword [ebp - 4], 7
jmp 0x416594
mov dword [ebp - 4], 0x14
jmp 0x416529
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x58], eax
and byte [ebx + 0x1c], 0
jmp 0x416399
cmp esi, ecx
je 0x4164be
mov esi, dword [ebp - 8]
push esi
call fcn.0043e049
pop ecx
mov byte [esi + 0x1c], 1
mov ebx, esi
push ebx
call fcn.0043dd69
pop ecx
mov esi, dword [edi + 0x5c]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4165de
push 1
push edi
call fcn.0040f77b
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x4165de
mov ebx, dword [ebp - 8]
mov al, byte [ebp - 0xd0]
push edi
mov byte [ebx + 0x1c], al
call fcn.0040e2ad
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x4164a5
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x58], eax
mov al, 1
sub al, byte [ebp - 0xd0]
mov byte [ebx + 0x1c], al
jmp 0x416399
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov dword [edi + 0x58], ecx
mov dword [edi + 0x5c], eax
jmp 0x4165de
push 0xf8ac
call fcn.0043f14a
pop ecx
mov dword [ebp - 4], eax
jmp 0x416529
mov dword [ebp - 4], 0xd
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1e], 0
je 0x416539
mov dword [ebp - 4], 7
cmp dword [ebp - 4], 0xc0a
je 0x416594
push dword [ebp - 4]
call fcn.0043e0f7
push eax
push 0x4a4878
push esi
jmp 0x41656b
push 9
pop eax
push eax
mov dword [ebp - 4], eax
mov dword [edi + 0x5c], eax
call fcn.0043e0f7
push eax
push 0x4a4878
push dword [ebp - 8]
lea eax, [edi + 0x38]
push eax
call fcn.0040f7d6
add esp, 0x14
jmp 0x416594
push str.string_or_blob_too_big
lea eax, [edi + 0x38]
push dword [ebp - 8]
push eax
call fcn.0040f7d6
add esp, 0xc
mov dword [ebp - 4], 0x12
push dword [edi + 0x38]
mov esi, dword [ebp - 4]
mov dword [edi + 0x5c], esi
push dword [edi + 0xd0]
push dword [ebp - 0xc]
push str.statement_aborts_at__d:___s___s
push esi
call fcn.00403db9
push edi
call fcn.0040e2ad
add esp, 0x18
cmp esi, 0xc0a
jne 0x4165c9
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
cmp byte [ebp + 0xb], 0
push 1
pop esi
je 0x4165de
push 0
push dword [ebp - 8]
call fcn.0041e27e
pop ecx
pop ecx
add edi, 0x84
push edi
call fcn.0040e4dd
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret