Function at 0x1003d7a0
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x360
push ebx
push ebp
push esi
mov esi, dword [esp + 0x370]
xor ecx, ecx
push edi
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esi]
mov dword [esp + 0x10], ecx
mov byte [esp + 0xa0], cl
mov edx, dword [eax + 0x10]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov edx, dword [edx + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + 0x20]
mov dl, byte [edx + 0x4d]
push esi
mov byte [esp + 0x38], dl
mov edx, dword [esi + 8]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
call fcn.10039510
mov eax, dword [esi + 0x50]
add esp, 4
cmp eax, 7
je 0x1003f081
mov ebx, esi
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x88], ecx
mov dword [ebx + 0x8c], ecx
mov dword [ebx + 0x14], ecx
mov eax, dword [esi + 0xe8]
mov dword [esi + 0x1bc], ecx
cmp eax, ecx
jne 0x100422d4
cmp dword [esi + 0x11c], ecx
je 0x1003d878
mov eax, dword [ebx + 0x7c]
cmp eax, ecx
jne 0x1003d86c
mov eax, dword [esi + 0x124]
mov dword [esp + 0x78], eax
jmp 0x1003d878
xor edx, edx
div dword [esi + 0x124]
mov dword [esp + 0x78], edx
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 0x1c], ecx
mov al, byte [esi + 0x40]
test al, al
jne 0x1003f081
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x64]
lea edx, [eax + eax*4]
mov al, byte [ebx + edx*4 + 2]
inc ecx
lea ebp, [ebx + edx*4]
mov dword [esp + 0x74], ecx
test al, 2
je 0x1003d8d5
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test word [edi + eax*8 + 0x1c], 0x2460
lea esi, [edi + eax*8]
mov dword [esp + 0x18], esi
je 0x1003d8cf
push esi
call fcn.10038c30
add esp, 4
mov word [esi + 0x1c], 4
mov cl, byte [ebp]
mov eax, ecx
and eax, 0xff
lea edx, [eax - 1]
cmp edx, 0x9b
ja case.default.0x1003d8ee
jmp dword [edx*4 + 0x10042300]
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
cdq
lea ecx, [edi + ecx*8]
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov edx, dword [ebp + 8]
dec edx
mov dword [esp + 0x1c], edx
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov ecx, dword [edi + eax*8 + 0x10]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], ecx
mov word [eax + 0x1c], 0x80
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
dec eax
lea ecx, [edi + edx*8]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov word [ecx + 0x1c], 4
mov ebp, dword [ebp + 8]
test ebp, ebp
mov dword [esp + 0x18], ecx
je case.default.0x1003d8ee
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov ecx, dword [edi + eax*8 + 0x10]
lea eax, [edi + eax*8]
lea ecx, [ecx + ecx*4]
mov ecx, dword [ebx + ecx*4 + 8]
mov word [eax + 0x1c], 0x80
dec ecx
mov dword [esp + 0x1c], ecx
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x1c]
lea edx, [ebp + ebp*4]
mov esi, dword [edi + edx*8 + 0x10]
lea ecx, [edi + edx*8]
cdq
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov dword [esp + 0x1c], esi
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
je case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x374]
test eax, eax
jne 0x100420cd
mov esi, dword [ebx + 0xb0]
test esi, esi
je 0x100420cd
mov eax, dword [ebx + 0xb8]
mov edx, dword [ebx + 0x5c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
dec eax
push edx
push edi
mov dword [ebx + 0xb0], ecx
mov dword [ebx + 0xb8], eax
call fcn.1003b000
push esi
call fcn.1003a5e0
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp ecx, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x60], edx
jne 0x1003da40
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x64], ecx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx]
mov dword [eax + 0x10], ecx
mov edx, dword [edx + 4]
mov dword [eax + 0x14], edx
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], 8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0xc], ecx
jmp case.default.0x1003d8ee
mov esi, dword [ebp + 0x10]
mov byte [ebp], 0x1b
push esi
call fcn.1002b0d0
mov dword [ebp + 4], eax
mov al, byte [esp + 0x38]
add esp, 4
cmp al, 1
je 0x1003db2a
mov edx, dword [esp + 0x18]
push 0
push 1
push 0xffffffffffffffff
push esi
push edx
call fcn.10038840
add esp, 0x14
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x10041744
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
and eax, 0xff
push eax
push ecx
call fcn.1003b290
add esp, 8
test eax, eax
jne 0x1003f081
mov esi, dword [esp + 0x18]
or byte [esi + 0x1d], 8
mov dword [esi + 0x24], eax
cmp byte [ebp + 1], 0xff
jne 0x1003db1a
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.10029770
add esp, 8
mov byte [ebp + 1], 0xff
mov ecx, dword [esi + 4]
mov dword [ebp + 0x10], ecx
mov edx, dword [esi + 0x18]
mov dword [ebp + 4], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
cmp eax, dword [ecx + 0x58]
jg 0x10041744
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], 0xa02
mov edx, dword [ebp + 0x10]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 4]
mov dl, byte [esp + 0x34]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1e], dl
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov ebp, dword [ebp + 4]
mov esi, dword [esp + 0x18]
sub eax, ebx
neg ebp
sbb ebp, ebp
and ebp, 0x100
inc ebp
test eax, eax
mov word [esi + 0x1c], bp
jle case.default.0x1003d8ee
mov edi, eax
add esi, 0x28
test word [esi + 0x1c], 0x2460
je 0x1003db98
push esi
call fcn.10038c30
add esp, 4
dec edi
mov word [esi + 0x1c], bp
jne 0x1003db84
mov dword [esp + 0x18], esi
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov cx, word [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
and ecx, 0xff7f
mov dword [esp + 0x18], eax
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x18]
push 0
push 0
push edx
push eax
push esi
call fcn.10038840
mov cl, byte [esp + 0x48]
add esp, 0x14
mov byte [esi + 0x1e], cl
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x374]
mov ecx, dword [eax + 0x3c]
lea edx, [ebp + ebp*4]
lea esi, [ecx + edx*8 - 0x28]
push esi
call fcn.10048a70
add esp, 4
test eax, eax
jne 0x10041744
mov edx, dword [esp + 0x18]
push 0x800
push esi
push edx
call fcn.10048aa0
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea ebx, [edi + ecx*8]
lea eax, [edi + edx*8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
test word [eax + 0x1c], 0x2460
je 0x1003dc63
push eax
call fcn.10038c30
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, 0xa
mov esi, ebx
mov edi, edx
mov eax, dword [edx + 0x24]
add ebx, 0x28
rep movsd dword es:[edi], dword [esi]
mov dword [ebx - 4], eax
mov eax, dword [esp + 0x20]
mov word [ebx - 0xc], 0x80
mov dword [ebx - 8], 0
add edx, 0x28
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
jne 0x1003dc4e
jmp case.default.0x1003d8ee
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x20], ecx
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea ebx, [edi + edx*8]
lea esi, [edi + eax*8]
push 0x1000
push ebx
push esi
mov dword [esp + 0x24], esi
call fcn.10048aa0
add esp, 0xc
test byte [esi + 0x1d], 0x10
je 0x1003dce3
push esi
call fcn.10038b60
add esp, 4
test eax, eax
jne 0x1003f081
mov eax, dword [esp + 0x20]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x20], eax
je case.default.0x1003d8ee
add esi, 0x28
add ebx, 0x28
jmp 0x1003dcb9
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
push 0x1000
lea edx, [eax + eax*4]
lea ecx, [ebp + ebp*4]
lea eax, [edi + edx*8]
lea edx, [edi + ecx*8]
push edx
push eax
mov dword [esp + 0x24], eax
call fcn.10048aa0
add esp, 0xc
jmp case.default.0x1003d8ee
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x11c]
test eax, eax
je 0x1003dd57
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jb 0x1003dd57
mov edx, dword [esi + 0x120]
push edx
call eax
add esp, 4
test eax, eax
jne 0x10042188
mov ebx, dword [esp + 0x374]
push 0
push ebx
call fcn.1003ae00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
push 1
push ebx
call fcn.1003ac60
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
mov ecx, dword [ebx + 0x48]
add ecx, 2
or ecx, 1
mov dword [ebx + 0x48], ecx
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [ebx + 0x14], edi
mov eax, dword [ebp + 8]
xor ebx, ebx
test eax, eax
jle 0x1003dddc
test byte [edi + 0x1d], 0x10
je 0x1003ddc8
push edi
call fcn.10038b60
add esp, 4
test eax, eax
jne 0x1003f081
mov esi, dword [esp + 0x14]
push edi
call fcn.1003b700
mov eax, dword [ebp + 8]
add esp, 4
inc ebx
add edi, 0x28
cmp ebx, eax
jl 0x1003ddad
mov al, byte [esi + 0x40]
test al, al
jne 0x1003f081
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x374]
mov esi, dword [esp + 0x14]
inc eax
mov dword [ebx + 0x4c], eax
mov ebp, 0x64
jmp 0x10041e5f
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x2c], esi
lea ecx, [eax + eax*4]
mov ax, word [esi + 0x1c]
lea edx, [ebp + ebp*4]
lea ebx, [edi + ecx*8]
lea edi, [edi + edx*8]
mov cl, byte [ebx + 0x1c]
mov dword [esp + 0x18], edi
or cl, al
test cl, 1
je 0x1003de44
push edi
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
test ah, 0x40
je 0x1003de5a
push esi
call fcn.10038bc0
add esp, 4
test eax, eax
jne 0x1003f081
test byte [ebx + 0x1d], 0x40
je 0x1003de71
push ebx
call fcn.10038bc0
add esp, 4
test eax, eax
jne 0x1003f081
test byte [esi + 0x1c], 0x12
jne 0x1003de93
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
push esi
call fcn.1003b750
add esp, 8
test eax, eax
jne 0x1003f081
test byte [ebx + 0x1c], 0x12
jne 0x1003deb4
mov eax, dword [esp + 0x34]
and eax, 0xff
push eax
push ebx
call fcn.1003b750
add esp, 8
test eax, eax
jne 0x1003f081
mov eax, dword [esi + 0x18]
mov ebp, dword [ebx + 0x18]
add eax, ebp
cdq
mov ecx, edx
mov edx, dword [esp + 0x14]
mov ebp, eax
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x10041744
jl 0x1003dedb
cmp ebp, eax
ja 0x10041744
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, ebx
lea edx, [ebp + 2]
sete cl
push ecx
push edx
push eax
call fcn.10038a40
add esp, 0xc
test eax, eax
jne 0x1003f081
mov eax, dword [esp + 0x18]
mov cx, word [eax + 0x1c]
and ecx, 0xbe02
or ecx, 2
cmp eax, ebx
mov word [eax + 0x1c], cx
je 0x1003df30
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 4]
mov edi, dword [eax + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x2c]
mov edi, dword [ebx + 0x18]
mov edx, dword [eax + 4]
mov ecx, dword [esi + 0x18]
mov esi, dword [esi + 4]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov byte [ecx + ebp], 0
mov edx, dword [eax + 4]
mov cl, byte [esp + 0x34]
mov byte [edx + ebp + 1], 0
or byte [eax + 0x1d], 2
mov dword [eax + 0x18], ebp
mov byte [eax + 0x1e], cl
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
push esi
call fcn.1004a560
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
push ebx
call fcn.1004a560
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
add esp, 8
lea ecx, [eax + eax*4]
mov al, byte [ebx + 0x1c]
lea edx, [edi + ecx*8]
mov dword [esp + 0x18], edx
mov dl, byte [esi + 0x1c]
or al, dl
test al, 1
jne 0x1003e1e4
mov cl, byte [esp + 0x20]
mov dl, byte [esp + 0x30]
and cl, dl
test cl, 4
je 0x1003e0cd
mov edx, dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x68], edx
mov ecx, dword [ebx + 0x14]
mov byte [esp + 0x3f], 1
mov dword [esp + 0x6c], ecx
xor ecx, ecx
mov cl, byte [ebp]
add ecx, 0xffffffa7
cmp ecx, 3
ja case.default.0x1003dff1
jmp dword [ecx*4 + 0x10042570]
push edi
lea edx, [esp + 0x6c]
push eax
push edx
call fcn.100426a0
add esp, 0xc
test eax, eax
jne 0x1003e0d2
jmp 0x1003e0a5
push edi
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10042740
add esp, 0xc
test eax, eax
jne 0x1003e0d2
jmp 0x1003e0a5
push edi
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.100427a0
add esp, 0xc
test eax, eax
jne 0x1003e0d2
jmp 0x1003e0a5
mov ecx, eax
or ecx, edi
je 0x1003e1e4
mov ecx, eax
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1003e067
test edx, edx
jne 0x1003e067
cmp dword [esp + 0x6c], 0x80000000
je 0x1003e0d2
push edi
push eax
mov eax, dword [esp + 0x74]
push eax
push edx
call fcn.1007e390
jmp 0x1003e09d
mov ecx, eax
or ecx, edi
je 0x1003e1e4
mov ecx, eax
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1003e090
mov eax, 1
xor edi, edi
push edi
push eax
mov eax, dword [esp + 0x74]
push eax
push edx
call fcn.1007e2d0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x6c]
and ecx, 0xbe04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.default.0x1003d8ee
mov byte [esp + 0x3f], 0
push esi
call fcn.1003b7f0
fstp qword [esp + 0x48]
push ebx
call fcn.1003b7f0
xor eax, eax
add esp, 8
mov al, byte [ebp]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x1003e0f2
jmp dword [eax*4 + 0x10042580]
fadd qword [esp + 0x44]
jmp 0x1003e178
fsub qword [esp + 0x44]
jmp 0x1003e178
fmul qword [esp + 0x44]
jmp 0x1003e178
fld qword [esp + 0x44]
fcomp qword [0x10084808]
fnstsw ax
test ah, 0x44
jnp 0x1003e1e2
fdiv qword [esp + 0x44]
jmp 0x1003e178
fld qword [esp + 0x44]
call sub.MSVCRT.dll__ftol
mov esi, eax
mov edi, edx
call sub.MSVCRT.dll__ftol
mov ecx, esi
mov dword [esp + 0x68], eax
or ecx, edi
mov dword [esp + 0x6c], edx
je 0x1003e1e4
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1003e15a
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.1007e2d0
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], edx
fild qword [esp + 0x134]
fstp qword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.1002b080
add esp, 8
test eax, eax
jne 0x1003e1e4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov bl, byte [esp + 0x30]
mov dword [eax + 8], edx
mov dx, word [eax + 0x1c]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x20]
and edx, 0xbe08
or cl, bl
or edx, 8
test cl, 8
mov word [eax + 0x1c], dx
jne case.default.0x1003d8ee
mov cl, byte [esp + 0x3f]
test cl, cl
jne case.default.0x1003d8ee
push eax
call fcn.100488b0
add esp, 4
jmp case.default.0x1003d8ee
fstp st(0)
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
test ebp, ebp
je case.default.0x1003d8ee
lea eax, [ebp + ebp*4]
push 0
push 0
lea ecx, [edi + eax*8]
push ecx
call fcn.1003bd40
add esp, 0xc
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x374]
xor ebx, ebx
mov bl, byte [ebp + 3]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edx, [edi + ecx*8]
mov dword [esp + 0x18], edx
lea esi, [edi + eax*8]
xor edi, edi
test ebx, ebx
jle 0x1003e273
mov ecx, dword [esp + 0x20]
mov dword [ecx + edi*4], esi
test byte [esi + 0x1d], 0x10
je 0x1003e26b
push esi
call fcn.10038b60
add esp, 4
test eax, eax
jne 0x1003f081
inc edi
add esi, 0x28
cmp edi, ebx
jl 0x1003e24d
mov ecx, dword [esp + 0x374]
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x258], ecx
mov ecx, 0xa
mov esi, ebx
lea edi, [esp + 0x228]
mov dword [esp + 0x220], edx
mov dword [esp + 0x25c], eax
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov word [ebx + 0x1c], 1
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], edi
mov edx, dword [esp + 0x244]
mov eax, dword [esp + 0x220]
and edx, 0xbe01
mov byte [esp + 0x265], 0
or edx, 1
mov word [esp + 0x244], dx
mov cl, byte [eax + 2]
test cl, 0x20
je 0x1003e2f1
mov ecx, dword [ebp - 4]
mov dword [esp + 0x254], ecx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x20]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x24]
push edx
lea edx, [esp + 0x224]
push ecx
push edx
call dword [eax + 0xc]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x68], eax
mov al, byte [esi + 0x40]
add esp, 0xc
mov dword [esp + 0x60], ecx
test al, al
jne 0x10042194
mov al, byte [esp + 0x265]
test al, al
je 0x1003e393
cmp dword [esp + 0x260], edi
je 0x1003e37a
lea edx, [esp + 0x228]
push edx
call fcn.1003bb90
push eax
mov eax, dword [esp + 0x37c]
push 0x1009133c
add eax, 0x2c
push esi
push eax
call fcn.1003ae80
mov ecx, dword [esp + 0x274]
add esp, 0x14
mov dword [esp + 0x10], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x374]
push edx
push eax
push ecx
call fcn.1003af30
add esp, 0xc
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x228]
and edx, 0xff
push edx
push eax
call fcn.1003b290
mov ecx, 0xa
lea esi, [esp + 0x230]
mov edi, ebx
push ebx
rep movsd dword es:[edi], dword [esi]
jmp 0x10041734
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov bl, byte [edi + ecx*8 + 0x1c]
lea edx, [eax + eax*4]
lea esi, [edi + ecx*8]
mov ecx, dword [ebp + 0xc]
lea eax, [edi + edx*8]
lea ecx, [ecx + ecx*4]
mov dl, byte [eax + 0x1c]
or dl, bl
lea edi, [edi + ecx*8]
test dl, 1
mov dword [esp + 0x18], edi
je 0x1003e3fc
push edi
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
push eax
call fcn.1003b870
push esi
mov ebx, eax
mov edi, edx
call fcn.1003b870
mov esi, eax
mov al, byte [ebp]
add esp, 8
cmp al, 0x55
jne 0x1003e421
and ebx, esi
and edi, edx
jmp 0x1003e4e6
cmp al, 0x56
jne 0x1003e42e
or ebx, esi
or edi, edx
jmp 0x1003e4e6
mov ecx, esi
or ecx, edx
je 0x1003e4e6
test edx, edx
jg 0x1003e466
jl 0x1003e442
test esi, esi
jae 0x1003e45b
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x1003e466
jg 0x1003e454
cmp esi, 0xffffffc0
jbe 0x1003e466
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x1003e487
jg 0x1003e466
cmp esi, 0x40
jb 0x1003e487
test edi, edi
jg 0x1003e47e
jl 0x1003e470
test ebx, ebx
jae 0x1003e47e
cmp al, 0x57
je 0x1003e47e
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x1003e4e6
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x1003e4e6
cmp al, 0x57
mov ecx, esi
mov edx, edi
mov eax, ebx
jne 0x1003e4a1
call fcn.1007e4f0
mov ebp, eax
mov dword [esp + 0xd8], edx
jmp 0x1003e4dd
call fcn.1007e4d0
test edi, edi
mov ebp, eax
mov dword [esp + 0xd8], edx
jg 0x1003e4dd
jl 0x1003e4b9
test ebx, ebx
jae 0x1003e4dd
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.1007e4f0
or ebp, eax
mov eax, dword [esp + 0xd8]
or eax, edx
mov dword [esp + 0xd8], eax
mov edi, dword [esp + 0xd8]
mov ebx, ebp
mov eax, dword [esp + 0x18]
mov dx, word [eax + 0x1c]
mov dword [eax + 0x10], ebx
and edx, 0xbe04
mov dword [eax + 0x14], edi
or edx, 4
mov word [eax + 0x1c], dx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
push esi
call fcn.10048910
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
cdq
add esp, 4
add ecx, eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], ecx
adc eax, edx
mov dword [esi + 0x14], eax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 0x1c]
test al, 4
lea esi, [edi + ecx*8]
jne 0x1003e57a
mov edx, dword [esp + 0x34]
push edx
push 0x63
push esi
call fcn.1004a500
mov ax, word [esi + 0x1c]
add esp, 0xc
test al, 4
jne 0x1003e57a
mov ebp, dword [ebp + 8]
test ebp, ebp
jne 0x10040076
mov ebx, dword [esp + 0x374]
mov dword [esp + 0x10], 0x14
jmp 0x1004228f
and eax, 0xbe04
or al, 4
mov word [esi + 0x1c], ax
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 4
je case.default.0x1003d8ee
push eax
call fcn.10048940
add esp, 4
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov ax, word [edi + ecx*8 + 0x1c]
lea esi, [edi + ecx*8]
test al, 1
jne case.default.0x1003d8ee
mov dl, al
shr dl, 3
and edx, 2
or edx, eax
mov eax, dword [esp + 0x34]
push eax
push 0x61
push esi
mov word [esi + 0x1c], dx
call fcn.1004a500
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x1003e602
push esi
call fcn.10038bc0
add esp, 4
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov ax, word [edi + ecx*8 + 0x1c]
lea esi, [edi + ecx*8]
test al, 1
jne case.default.0x1003d8ee
test al, 0x10
jne 0x1003e654
mov edx, dword [esp + 0x34]
push edx
push 0x61
push esi
call fcn.1004a500
mov ax, word [esi + 0x1c]
add esp, 0xc
and eax, 0xbe10
or al, 0x10
mov word [esi + 0x1c], ax
jmp case.default.0x1003d8ee
and eax, 0xfe10
mov word [esi + 0x1c], ax
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
lea edx, [edi + ecx*8]
push edx
call fcn.10048970
add esp, 4
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 1
jne case.default.0x1003d8ee
push eax
call fcn.10048910
add esp, 4
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
lea eax, [edi + ecx*8]
mov cl, byte [edi + ecx*8 + 0x1c]
test cl, 1
jne case.default.0x1003d8ee
push eax
call fcn.10048940
add esp, 4
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + edx*8]
mov cx, word [edi + eax*8 + 0x1c]
mov dx, word [esi + 0x1c]
lea ebx, [edi + eax*8]
mov al, cl
or al, dl
mov dword [esp + 0x20], edx
test al, 1
mov al, byte [ebp + 3]
mov dword [esp + 0x24], ecx
je 0x1003e746
test al, al
jns 0x1003e716
test dl, 1
je 0x1003e70c
test cl, 1
je 0x1003e70c
test ch, 1
jne 0x1003e70c
xor eax, eax
jmp 0x1003e7b6
mov eax, 1
jmp 0x1003e7b6
test al, 0x10
je 0x1003e73f
mov ebp, dword [ebp + 8]
lea ecx, [ebp + ebp*4]
mov dx, word [edi + ecx*8 + 0x1c]
lea eax, [edi + ecx*8]
and edx, 0xbe01
mov dword [esp + 0x18], eax
or edx, 1
mov word [eax + 0x1c], dx
jmp case.default.0x1003d8ee
test al, 8
jmp 0x1004006d
and al, 0x67
mov byte [esp + 0x114], al
je 0x1003e786
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x114]
push ecx
push edi
push esi
call fcn.1004a500
mov edx, dword [esp + 0x40]
push edx
push edi
push ebx
call fcn.1004a500
mov eax, dword [esp + 0x2c]
add esp, 0x18
mov cl, byte [eax + 0x40]
test cl, cl
jne 0x1003f081
mov edi, dword [esp + 0x64]
test byte [esi + 0x1d], 0x40
je 0x1003e795
push esi
call fcn.10038bc0
add esp, 4
test byte [ebx + 0x1d], 0x40
je 0x1003e7a4
push ebx
call fcn.10038bc0
add esp, 4
mov ecx, dword [ebp + 0x10]
push ecx
push esi
push ebx
call fcn.10049240
mov ecx, dword [esp + 0x30]
add esp, 0xc
xor edx, edx
mov dl, byte [ebp]
add edx, 0xffffffb2
cmp edx, 4
ja case.default.0x1003e7c3
jmp dword [edx*4 + 0x10042590]
xor edx, edx
test eax, eax
sete dl
jmp 0x1003e7fe
xor edx, edx
test eax, eax
setne dl
jmp 0x1003e7fe
xor edx, edx
test eax, eax
setl dl
jmp 0x1003e7fe
xor edx, edx
test eax, eax
setle dl
jmp 0x1003e7fe
xor edx, edx
test eax, eax
setg dl
jmp 0x1003e7fe
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dl, byte [ebp + 3]
test dl, 0x10
je 0x1003e830
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x18], edi
mov dx, word [edi + 0x1c]
and edx, 0xbe04
or edx, 4
mov word [edi + 0x1c], dx
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x1003e83c
test eax, eax
je 0x1003e83c
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov ax, word [esi + 0x1c]
mov ebp, dword [esp + 0x20]
mov edx, eax
xor edx, ebp
and edx, 0x1ff
xor edx, eax
mov word [esi + 0x1c], dx
mov ax, word [ebx + 0x1c]
mov edx, eax
xor edx, ecx
and edx, 0x1ff
xor edx, eax
mov word [ebx + 0x1c], dx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x88], eax
jmp case.default.0x1003d8ee
test byte [ebp + 3], 1
jne 0x1003e88d
xor ecx, ecx
mov dword [esp + 0x88], ecx
jmp 0x1003e894
mov ecx, dword [esp + 0x88]
mov esi, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x30], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], esi
xor esi, esi
test eax, eax
mov dword [esp + 0x24], edx
jle 0x1003e934
lea ebp, [edx + 0x14]
jmp 0x1003e8c6
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x24]
test ecx, ecx
je 0x1003e8cf
mov ecx, dword [ecx + esi*4]
jmp 0x1003e8d1
mov ecx, esi
mov eax, dword [ebp]
mov edx, dword [edx + 0x10]
push eax
mov eax, dword [esp + 0x24]
xor ebx, ebx
add eax, ecx
mov bl, byte [esi + edx]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x34]
push eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.10049240
add esp, 0xc
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x1003e927
mov eax, dword [esp + 0x28]
inc esi
add ebp, 4
cmp esi, eax
jl 0x1003e8bb
mov dword [esp + 0x88], 0
jmp case.default.0x1003d8ee
test ebx, ebx
je 0x1003e934
neg eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x88], 0
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0xa4]
test eax, eax
jge 0x1003e95c
mov ebp, dword [ebp + 4]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
jne 0x1003e96b
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 0xc]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
je 0x1003e991
mov esi, 2
jmp 0x1003e9a7
push eax
call fcn.1003b870
add esp, 4
or eax, edx
je 0x1003e9a5
mov esi, 1
jmp 0x1003e9a7
xor esi, esi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 1
je 0x1003e9c0
mov eax, 2
jmp 0x1003e9d6
push eax
call fcn.1003b870
add esp, 4
or eax, edx
je 0x1003e9d4
mov eax, 1
jmp 0x1003e9d6
xor eax, eax
cmp byte [ebp], 0x48
jne 0x1003e9ea
lea ecx, [eax + esi*2]
xor eax, eax
mov al, byte [esi + ecx + 0x100817e8]
jmp 0x1003e9f6
lea edx, [eax + esi*2]
xor eax, eax
mov al, byte [esi + edx + 0x100817f4]
mov ebp, dword [ebp + 0xc]
cmp eax, 2
lea ecx, [ebp + ebp*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x18], ecx
jne 0x1003ea1f
mov dx, word [ecx + 0x1c]
and edx, 0xbe01
or edx, 1
mov word [ecx + 0x1c], dx
jmp case.default.0x1003d8ee
cdq
mov dword [ecx + 0x10], eax
mov ax, word [ecx + 0x1c]
and eax, 0xbe04
mov dword [ecx + 0x14], edx
or al, 4
mov word [ecx + 0x1c], ax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea eax, [edi + ecx*8]
lea esi, [edi + edx*8]
mov dword [esp + 0x18], esi
test byte [eax + 0x1c], 1
je 0x1003ea65
push esi
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
push eax
call fcn.1003b870
add esp, 4
or eax, edx
jne 0x1003ea88
mov eax, 1
cdq
push edx
push eax
push esi
call fcn.1003bd40
add esp, 0xc
jmp case.default.0x1003d8ee
xor eax, eax
cdq
push edx
push eax
push esi
call fcn.1003bd40
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ebp + ebp*4]
lea eax, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x18], esi
test byte [eax + 0x1c], 1
je 0x1003eac6
push esi
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
push eax
call fcn.1003b870
not edx
not eax
push edx
push eax
push esi
call fcn.1003bd40
add esp, 0x10
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0xc8]
lea eax, [edx + ecx]
mov cl, byte [edx + ecx]
test cl, cl
je 0x1003eb07
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov byte [eax], 1
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
je 0x1003eb29
mov eax, dword [ebp + 0xc]
jmp 0x1004006b
push eax
call fcn.1003b7f0
fcomp qword [0x10084808]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x1003eb46
mov eax, 1
jmp 0x1003eb48
xor eax, eax
cmp byte [ebp], 0x2d
jne 0x1004006b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x1004006b
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
jmp 0x1004006d
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x374]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x40], eax
mov esi, dword [edx + ecx*4]
push esi
movsx ecx, word [esi + 0x14]
lea eax, [esi + 0x58]
lea edx, [eax + ecx*4]
mov eax, dword [esi]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], eax
call fcn.10048bd0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1004228f
mov ecx, dword [esi + 0x44]
mov eax, dword [ebx + 0x48]
cmp ecx, eax
jne 0x1003ebef
test byte [ebp + 3], 0x20
je 0x1003ed37
mov al, byte [esi + 0x19]
test al, al
je 0x1003ec46
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1003ec2c
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8 + 0x18]
lea eax, [edi + edx*8]
mov dword [esp + 0x80], ecx
mov dword [esi + 0x4c], ecx
mov ecx, dword [esp + 0x80]
lea edi, [esi + 0x48]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x54], edx
jmp 0x1003ecc8
mov eax, dword [esp + 0x40]
mov cx, word [eax + 0x1c]
and ecx, 0xbe01
or ecx, 1
mov word [eax + 0x1c], cx
jmp 0x1003f060
test byte [esi + 0x1c], 4
jne 0x1003ec7d
mov edi, dword [esp + 0x2c]
lea edx, [esp + 0x12c]
push edx
push edi
call fcn.100373f0
lea eax, [esp + 0x88]
push eax
push edi
call fcn.10044050
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x13c]
lea edi, [esi + 0x48]
mov dword [edi], ecx
jmp 0x1003ec9c
mov ebx, dword [esp + 0x2c]
lea edi, [esi + 0x48]
push edi
push ebx
call fcn.10043ea0
lea edx, [esp + 0x88]
push edx
push ebx
call fcn.10044080
mov dword [esi + 0x54], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x90]
add esp, 0x10
cmp eax, ecx
ja 0x1003ecb1
mov dword [esi + 0x4c], eax
jmp 0x1003ecb4
mov dword [esi + 0x4c], ecx
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x10041744
mov ebx, dword [esp + 0x374]
mov edx, dword [ebx + 0x48]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x44], edx
mov al, byte [ecx]
cmp al, 0x80
jae 0x1003ece9
and eax, 0xff
mov ecx, eax
mov eax, 1
mov dword [esp + 0x70], ecx
jmp 0x1003ed00
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.10036dc0
mov ecx, dword [esp + 0x78]
add esp, 8
and eax, 0xff
mov edx, dword [esp + 0x38]
and eax, 0xff
mov dword [esi + 0x50], eax
xor eax, eax
mov word [esi + 0x16], ax
mov dword [edx], ecx
cmp dword [esp + 0x80], ecx
jae 0x1003ed23
mov dword [esi + 0x54], eax
mov dword [esi + 0x4c], eax
cmp ecx, 0x18003
ja 0x1003f0ba
cmp ecx, dword [edi]
ja 0x1003f0ba
mov ecx, dword [esp + 0x28]
xor eax, eax
mov ax, word [esi + 0x16]
cmp eax, ecx
jg 0x1003ef15
mov edx, dword [esp + 0x38]
mov ecx, dword [esi + 0x50]
cmp ecx, dword [edx]
jae 0x1003eecc
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x1003edac
mov ecx, 0xa
lea edi, [esp + 0x164]
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x164]
not ecx
shr ecx, 2
push eax
mov eax, dword [edx]
and ecx, 1
push ecx
mov ecx, dword [esp + 0x34]
push eax
push 0
push ecx
call fcn.10048af0
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
mov edx, dword [esp + 0x168]
mov dword [esp + 0x58], edx
jmp 0x1003edb0
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x38]
xor ebx, ebx
mov bx, word [esi + 0x16]
mov edi, dword [esi + 0x50]
mov dword [esp + 0x24], ebx
mov ecx, dword [edx + ebx*4]
lea eax, [edx + ebx*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x58]
add edi, ecx
mov ecx, dword [edx]
add ecx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
lea eax, [esi + 0x58]
sub eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], eax
mov al, byte [edi]
cmp al, 0x80
jae 0x1003edfd
and eax, 0xff
inc edi
mov dword [esp + 0x84], eax
jmp 0x1003ee20
lea edx, [esp + 0x84]
push edx
push edi
call fcn.10036dc0
mov ebx, dword [esp + 0x2c]
and eax, 0xff
add esp, 8
add edi, eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
push eax
mov dword [ecx + edx], eax
call fcn.10048dd0
mov ecx, dword [esp + 0x74]
add esp, 4
add ecx, eax
cmp ecx, eax
mov dword [esp + 0x70], ecx
jb 0x1003ee64
mov eax, dword [esp + 0x30]
inc ebx
add eax, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], eax
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
cmp ebx, eax
jg 0x1003ee6b
cmp edi, dword [esp + 0x20]
jb 0x1003ede8
jmp 0x1003ee6b
mov edx, dword [esp + 0x20]
lea edi, [edx + 1]
mov ecx, dword [esp + 0x58]
mov eax, edi
sub eax, ecx
mov word [esi + 0x16], bx
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x1003ee9b
lea ecx, [esp + 0x164]
push ecx
call fcn.10038d00
add esp, 4
mov word [esp + 0x180], 1
mov edx, dword [esp + 0x20]
cmp edi, edx
ja 0x1003eeb6
mov eax, dword [esi + 0x48]
mov ecx, dword [esp + 0x70]
cmp ecx, eax
ja 0x1003eeb6
cmp edi, edx
jne 0x1003eecc
cmp ecx, eax
je 0x1003eecc
push 0x11351
call fcn.1007d9d0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x28]
xor edx, edx
mov dx, word [esi + 0x16]
cmp edx, eax
jg 0x1003ef15
cmp byte [ebp + 1], 0xf8
jne 0x1003eefb
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x40]
push 0x800
push eax
push ecx
call fcn.10048aa0
add esp, 0xc
jmp 0x1003f060
mov eax, dword [esp + 0x40]
mov dx, word [eax + 0x1c]
and edx, 0xbe01
or edx, 1
mov word [eax + 0x1c], dx
jmp 0x1003f060
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
mov eax, dword [esi + 0x4c]
cmp eax, dword [edi + ebx*4 + 4]
jb 0x1003ef5a
mov ebp, dword [esp + 0x40]
test word [ebp + 0x1c], 0x2460
je 0x1003ef3b
push ebp
call fcn.10038c30
add esp, 4
mov edx, dword [edi + ebx*4]
mov edi, dword [esi + 0x54]
mov ecx, dword [esi + ebx*4 + 0x58]
lea eax, [esi + 0x58]
push ebp
add edx, edi
push ecx
push edx
call fcn.10048e70
add esp, 0xc
jmp 0x1003f059
mov ecx, dword [esi + ebx*4 + 0x58]
lea eax, [esi + 0x58]
mov al, byte [ebp + 3]
mov dword [esp + 0x84], ecx
test al, 0xc0
je 0x1003ef7d
cmp ecx, 0xc
jb 0x1003ef79
test cl, 1
je 0x1003ef93
test al, al
js 0x1003ef93
push ecx
call fcn.10048dd0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x1003efb4
mov ecx, dword [esp + 0x84]
mov eax, 0xd
lea edx, [esp + 0x12c]
cmp eax, ecx
mov dword [esp + 0x188], 0
sbb eax, eax
not eax
and eax, edx
jmp 0x1003f01a
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x164]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x164]
push eax
push ecx
call fcn.1003d5f0
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x40]
not eax
shr eax, 2
lea edx, [esp + 0x16c]
and eax, 1
push edx
mov edx, dword [ecx + ebx*4]
push eax
mov eax, dword [esp + 0x3c]
push ebp
push edx
push eax
call fcn.10048af0
add esp, 0x1c
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x40]
push ebp
push ecx
push eax
call fcn.10048e70
mov eax, dword [esp + 0x194]
add esp, 0xc
test eax, eax
je 0x1003f059
mov cx, word [ebp + 0x1c]
and ecx, 0xe7ff
or ch, 2
mov word [ebp + 0x1c], cx
mov edx, dword [esp + 0x168]
mov dword [ebp + 4], edx
mov eax, dword [esp + 0x188]
mov dword [ebp + 0x24], eax
mov cl, byte [esp + 0x34]
mov byte [ebp + 0x1e], cl
mov edx, dword [esp + 0x40]
test byte [edx + 0x1d], 0x10
je case.default.0x1003d8ee
mov eax, edx
push eax
call fcn.10038b60
add esp, 4
test eax, eax
je case.default.0x1003d8ee
mov eax, dword [esp + 0x14]
push str.out_of_memory
push eax
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x37c]
add eax, 0x2c
push eax
call fcn.1003ae80
mov ebx, dword [esp + 0x380]
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x10041dfd
push 0x1130f
call fcn.1007d9d0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov esi, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov al, byte [esi]
lea ecx, [ebp + ebp*4]
test al, al
lea edi, [edi + ecx*8]
mov byte [esp + 0xc0], al
je case.default.0x1003d8ee
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0xc0]
push ebx
push edx
push edi
inc esi
call fcn.1004a500
mov al, byte [esi]
add esp, 0xc
add edi, 0x28
mov byte [esp + 0xc0], al
test al, al
jne 0x1003f0f2
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
xor ebx, ebx
lea eax, [eax + eax*4]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x30], ebx
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x24], ecx
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8 - 0x28]
xor edx, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x374]
test esi, esi
mov dl, byte [eax + 0x57]
mov dword [esp + 0x28], edx
lea edx, [ebp + ebp*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x18], eax
je 0x1003f18d
mov al, byte [esi]
mov ebp, dword [esp + 0x34]
mov edi, ecx
mov ecx, edi
push ebp
push eax
add edi, 0x28
push ecx
inc esi
call fcn.1004a500
mov al, byte [esi]
add esp, 0xc
test al, al
jne 0x1003f176
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push ecx
push esi
call fcn.10048cd0
mov edi, eax
push edi
call fcn.10048dd0
add esp, 0xc
mov ebp, eax
test byte [esi + 0x1d], 0x40
je 0x1003f1db
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
or edx, eax
je 0x1003f1cc
push esi
call fcn.10038bc0
add esp, 4
jmp 0x1003f1db
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x30]
add edx, eax
sub ebp, eax
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x94]
mov eax, ebp
mov ebp, dword [esp + 0x90]
cdq
add ebp, eax
adc ecx, edx
cmp edi, 0x7f
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ecx
ja 0x1003f20a
mov eax, 1
jmp 0x1003f215
push 0
push edi
call fcn.10042680
add esp, 8
add ebx, eax
mov eax, dword [esp + 0x24]
sub esi, 0x28
cmp esi, eax
jae 0x1003f191
cmp ebx, 0x7e
jle 0x1003f24a
mov eax, ebx
cdq
push edx
push eax
call fcn.10042680
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
call fcn.10042680
add esp, 0x10
cmp esi, eax
jge 0x1003f24b
inc ebx
mov eax, ebx
mov ebp, dword [esp + 0x94]
cdq
mov esi, eax
mov eax, dword [esp + 0x90]
add esi, eax
mov eax, dword [esp + 0x14]
mov ecx, edx
mov dword [esp + 0x1a0], esi
mov eax, dword [eax + 0x58]
cdq
adc ecx, ebp
cmp ecx, edx
jg 0x10041744
jl 0x1003f285
cmp esi, eax
ja 0x10041744
mov ecx, dword [esp + 0x18]
push 0
push esi
push ecx
call fcn.10038a40
add esp, 0xc
test eax, eax
jne 0x1003f081
mov edx, dword [esp + 0x18]
cmp ebx, 0x80
mov edi, dword [edx + 4]
jae 0x1003f2b5
mov byte [edi], bl
mov eax, 1
jmp 0x1003f2bf
push ebx
push edi
call fcn.100425b0
add esp, 8
mov esi, dword [esp + 0x24]
and eax, 0xff
mov ebp, eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x28]
push eax
push esi
call fcn.10048cd0
mov ebx, eax
add esp, 8
cmp ebx, 0x80
jae 0x1003f2f0
mov byte [edi + ebp], bl
mov eax, 1
jmp 0x1003f2fd
lea ecx, [edi + ebp]
push ebx
push ecx
call fcn.100425b0
add esp, 8
mov edx, dword [esp + 0x20]
push ebx
add edx, edi
and eax, 0xff
push esi
push edx
add ebp, eax
call fcn.10048df0
mov edx, dword [esp + 0x2c]
add esi, 0x28
add edx, eax
mov eax, dword [esp + 0x64]
add esp, 0xc
cmp esi, eax
mov dword [esp + 0x20], edx
jbe 0x1003f2ce
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1a0]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
mov word [eax + 0x1c], 0x10
mov dword [eax + 0x20], 0
je 0x1003f356
mov dword [eax + 0x10], ecx
mov word [eax + 0x1c], 0x4010
mov byte [eax + 0x1e], 1
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
mov edx, dword [ecx + edx*4]
xor ecx, ecx
mov eax, dword [edx]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0xdc]
push ecx
push eax
call fcn.10047960
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x1003f497
mov eax, dword [esi + 0x94]
test eax, eax
jle 0x1003f3e9
mov edx, dword [esp + 0x374]
push str.cannot_open_savepoint___SQL_statements_in_progress
add edx, 0x2c
push esi
push edx
jmp 0x1003f700
push ebp
call fcn.1002b0d0
mov edx, dword [esi + 0x1e8]
mov ebx, eax
mov eax, dword [esi + 0x1ec]
add eax, edx
push eax
push 0
push esi
call fcn.100538c0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10042250
lea ecx, [ebx + 0x21]
push ecx
push esi
call fcn.100299e0
add esp, 8
test eax, eax
je case.default.0x1003d8ee
lea ecx, [ebx + 1]
lea edi, [eax + 0x20]
mov edx, ecx
mov esi, ebp
shr ecx, 2
mov dword [eax], edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx + 0x3e]
test dl, dl
je 0x1003f459
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x1003f45f
inc dword [ecx + 0x1e8]
mov edx, dword [ecx + 0x1e0]
mov dword [eax + 0x18], edx
mov edx, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], eax
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x1f4]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x1f8]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x1fc]
mov dword [eax + 0x14], ecx
jmp case.default.0x1003d8ee
mov edi, dword [esi + 0x1e0]
xor ebx, ebx
test edi, edi
mov dword [esp + 0x38], ebx
je 0x1003f4c3
mov edx, dword [edi]
push ebp
push edx
call fcn.1002b0f0
add esp, 8
test eax, eax
je 0x1003f4ea
mov edi, dword [edi + 0x18]
inc ebx
test edi, edi
jne 0x1003f4a7
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x374]
push ebp
push str.no_such_savepoint:__s
add eax, 0x2c
push esi
push eax
call fcn.1003ae80
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.default.0x1003d8ee
mov eax, dword [esi + 0x94]
xor ebp, ebp
cmp eax, ebp
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], ebx
jle 0x1003f519
cmp eax, 1
jne 0x1003f519
mov ecx, dword [esp + 0x374]
push str.cannot_release_savepoint___SQL_statements_in_progress
add ecx, 0x2c
push esi
push ecx
jmp 0x1003f700
cmp dword [edi + 0x18], ebp
jne 0x1003f573
mov cl, byte [esi + 0x45]
test cl, cl
je 0x1003f573
cmp eax, 1
mov dword [esp + 0x20], 1
jne 0x1003f577
mov ebx, dword [esp + 0x374]
push eax
push ebx
call fcn.1003ae00
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x10041e5f
push ebx
mov byte [esi + 0x3e], 1
call fcn.10039220
add esp, 4
cmp eax, 5
je 0x100421a9
mov byte [esi + 0x45], 0
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x10], edx
jmp 0x1003f614
mov dword [esp + 0x20], ebp
mov ecx, dword [esi + 0x1e8]
sub ecx, ebx
dec ecx
cmp eax, 2
mov dword [esp + 0x38], ecx
jne 0x1003f5ad
cmp dword [esi + 0x14], ebp
jle 0x1003f5ad
xor ebx, ebx
mov edx, dword [esi + 0x10]
push 4
mov eax, dword [edx + ebx + 4]
push eax
call fcn.10038600
mov eax, dword [esi + 0x14]
add esp, 8
inc ebp
add ebx, 0x10
cmp ebp, eax
jl 0x1003f590
mov eax, dword [esi + 0x14]
xor ebx, ebx
test eax, eax
jle 0x1003f5e9
xor ebp, ebp
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [eax + ebp + 4]
push edx
push ecx
call fcn.1003ad80
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10042250
mov eax, dword [esi + 0x14]
inc ebx
add ebp, 0x10
cmp ebx, eax
jl 0x1003f5b8
cmp dword [esp + 0x2c], 2
jne 0x1003f60d
test byte [esi + 0x18], 2
je 0x1003f60d
push esi
call fcn.10049f00
push esi
call fcn.1004e300
mov eax, dword [esi + 0x18]
add esp, 8
or al, 2
mov dword [esi + 0x18], eax
mov ebx, dword [esp + 0x374]
mov eax, dword [esi + 0x1e0]
cmp eax, edi
je 0x1003f648
mov edx, dword [eax + 0x18]
push eax
push esi
mov dword [esi + 0x1e0], edx
call fcn.10029770
mov edx, dword [esi + 0x1e8]
mov eax, dword [esi + 0x1e0]
add esp, 8
dec edx
cmp eax, edi
mov dword [esi + 0x1e8], edx
jne 0x1003f61e
mov ebp, dword [esp + 0x2c]
cmp ebp, 1
jne 0x1003f678
mov eax, dword [edi + 0x18]
push edi
push esi
mov dword [esi + 0x1e0], eax
call fcn.10029770
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
jne case.default.0x1003d8ee
dec dword [esi + 0x1e8]
jmp 0x1003f6a8
mov ecx, dword [edi + 8]
mov dword [esi + 0x1f0], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x1f4], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1f8], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x14]
test eax, eax
mov dword [esi + 0x1fc], ecx
jne case.default.0x1003d8ee
mov edx, dword [esp + 0x38]
push edx
push ebp
push esi
call fcn.100538c0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10042293
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1003f715
mov cl, byte [esi + 0x3e]
test cl, cl
jne 0x1003f715
test ebp, ebp
jne 0x1003f715
mov ecx, dword [esi + 0x94]
test ecx, ecx
jle 0x1003f715
mov eax, dword [esp + 0x374]
push str.cannot_commit_transaction___SQL_statements_in_progress
add eax, 0x2c
push esi
push eax
call fcn.1003ae80
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x1003d8ee
xor ecx, ecx
mov cl, byte [esi + 0x3e]
cmp eax, ecx
jne 0x100421c1
test eax, eax
jne 0x1003f72d
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1003f73b
test ebp, ebp
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x1003f73b
mov eax, str.cannot_commit___no_transaction_is_active
mov edx, dword [esp + 0x374]
push eax
add edx, 0x2c
push esi
push edx
call fcn.1003ae80
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x1003f775
test dword [esi + 0x18], 0x2000000
jne 0x10042248
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x10]
shl ecx, 4
mov ebx, dword [ecx + edx + 4]
test ebx, ebx
je 0x1003f87a
push eax
push ebx
call fcn.10034dd0
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x10042259
test eax, eax
jne 0x10042250
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x374]
test eax, eax
je 0x1003f84e
mov al, byte [edi + 0x58]
test al, al
jns 0x1003f84e
mov al, byte [esi + 0x3e]
test al, al
je 0x1003f7d6
cmp dword [esi + 0x90], 1
jle 0x1003f84e
mov eax, dword [edi + 0x68]
test eax, eax
jne 0x1003f7f5
mov eax, dword [esi + 0x1ec]
mov ecx, dword [esi + 0x1e8]
inc eax
add ecx, eax
mov dword [esi + 0x1ec], eax
mov dword [edi + 0x68], ecx
mov edx, dword [edi + 0x68]
dec edx
push edx
push 0
push esi
call fcn.100538c0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1003f81e
mov eax, dword [edi + 0x68]
push eax
push ebx
call fcn.10043dc0
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x1f0]
mov dword [edi + 0x98], ecx
mov edx, dword [esi + 0x1f4]
mov dword [edi + 0x9c], edx
mov eax, dword [esi + 0x1f8]
mov dword [edi + 0xa0], eax
mov ecx, dword [esi + 0x1fc]
mov dword [edi + 0xa4], ecx
lea edx, [esp + 0xc8]
push edx
push 1
push ebx
call fcn.10038070
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x10]
mov ebx, dword [esp + 0xd4]
add esp, 0xc
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x1003f88c
mov edi, dword [esp + 0x374]
xor ebx, ebx
mov dword [esp + 0xc8], ebx
xor eax, eax
mov cl, byte [ebp + 3]
test cl, cl
je case.default.0x1003d8ee
cmp ebx, dword [ebp + 0xc]
jne 0x1003f8a5
cmp eax, dword [ebp + 0x10]
je case.default.0x1003d8ee
mov eax, dword [edi + 0x2c]
push eax
push esi
call fcn.10029770
push str.database_schema_has_changed
push esi
call fcn.1003c090
mov dword [edi + 0x2c], eax
mov ebp, dword [ebp + 4]
mov edx, dword [esi + 0x10]
mov ecx, ebp
shl ecx, 4
add esp, 0x10
mov eax, dword [ecx + edx + 0xc]
cmp dword [eax], ebx
je 0x1003f8dd
push ebp
push esi
call fcn.1004e2c0
add esp, 8
mov eax, dword [edi + 0x58]
mov dword [esp + 0x10], 0x11
or al, 0x20
mov dword [edi + 0x58], eax
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
call fcn.10038070
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x24]
cdq
add esp, 0xc
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x14]
mov esi, dword [ebp + 4]
shl esi, 4
mov eax, dword [ebx + 0x10]
add esi, eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
push edi
call fcn.10048910
mov edx, dword [edi + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
call fcn.100380b0
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
add esp, 0x10
cmp eax, 1
jne 0x1003f97f
mov edx, dword [esi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [edx], eax
mov eax, dword [ebx + 0x18]
or al, 2
mov dword [ebx + 0x18], eax
jmp 0x1003f98d
cmp eax, 2
jne 0x1003f98d
mov ecx, dword [esi + 0xc]
mov dl, byte [edi + 0x10]
mov byte [ecx + 0x4c], dl
cmp dword [ebp + 4], 1
jne case.default.0x1003d8ee
push ebx
call fcn.10049f00
mov eax, dword [esp + 0x378]
add esp, 4
and dword [eax + 0x58], 0xffffffdf
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x1003f9db
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 8]
cmp eax, edx
je case.default.0x1003d8ee
jmp 0x1003f9db
mov ebx, dword [esp + 0x374]
test byte [ebx + 0x58], 0x20
je 0x1003f9ee
mov dword [esp + 0x10], 4
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
shl eax, 4
add eax, edx
cmp cl, 0x36
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
jne 0x1003fa38
mov eax, dword [eax + 0xc]
mov cl, byte [ebx + 0x57]
mov dword [esp + 0x28], 1
mov al, byte [eax + 0x4c]
cmp al, cl
jae 0x1003fa40
mov byte [ebx + 0x57], al
jmp 0x1003fa40
mov dword [esp + 0x28], 0
test byte [ebp + 3], 2
je 0x1003fa69
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
push edi
call fcn.10048910
mov edi, dword [edi + 0x10]
add esp, 4
cmp edi, 2
mov dword [esp + 0x30], edi
jl 0x10042274
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x1003fa87
mov ecx, dword [ebp + 0x10]
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], ecx
mov ax, word [ecx + 8]
mov dx, word [ecx + 6]
add eax, edx
jmp 0x1003fa8e
cmp al, 0xf2
jne 0x1003fa92
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 4]
push 1
push ecx
push edx
push eax
push ebx
call fcn.1004a420
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1003f081
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
or edi, 8
push ecx
mov dword [esi + 0x1c], edi
mov edi, dword [esp + 0x28]
push edi
push edx
mov dword [esi + 0x20], eax
push eax
mov eax, dword [esp + 0x68]
mov byte [esi + 0x19], 1
push eax
call fcn.10043df0
mov edx, dword [esi]
mov dword [esi + 8], edi
mov cl, byte [ebp + 3]
mov dword [esp + 0x24], eax
and ecx, 1
push ecx
push edx
call fcn.100488a0
mov dl, byte [ebp + 1]
mov eax, dword [esi + 0x1c]
add esp, 0x1c
xor ecx, ecx
cmp dl, 0xfa
setne cl
shl ecx, 2
xor ecx, eax
and ecx, 4
xor ecx, eax
mov dword [esi + 0x1c], ecx
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x374]
push 1
push 0xffffffffffffffff
push edx
push eax
push ecx
call fcn.1004a420
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1003f081
mov edi, dword [esi + 0x1c]
mov eax, dword [esp + 0x14]
or edi, 1
xor edx, edx
mov byte [esi + 0x19], 1
mov dword [esi + 0x1c], edi
mov dl, byte [ebp + 3]
lea edi, [esi + 4]
or edx, 5
push 0x41e
push edx
push edi
push eax
mov eax, dword [eax]
push 0
push eax
call fcn.10042f30
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1003fc04
mov ecx, dword [edi]
push 1
push ecx
call fcn.10034dd0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1003fc04
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x1003fbe4
mov ecx, dword [edi]
xor edx, edx
mov dl, byte [ebp + 3]
lea eax, [esp + 0x108]
or edx, 2
push edx
push eax
push ecx
call fcn.100472d0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1003fbdd
mov edx, dword [esi]
mov eax, dword [esp + 0x108]
mov ecx, dword [edi]
push edx
push ebx
push 1
push eax
push ecx
mov dword [esi + 8], ebx
call fcn.10043df0
add esp, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x1c]
and al, 0xfb
jmp 0x1003fc01
mov edx, dword [esi]
mov eax, dword [edi]
push edx
push 0
push 1
push 1
push eax
call fcn.10043df0
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x1c]
add esp, 0x14
or al, 4
mov dword [esi + 0x1c], eax
mov dl, byte [ebp + 3]
mov eax, dword [esi + 0x1c]
xor ecx, ecx
cmp dl, 8
setne cl
shl ecx, 3
xor ecx, eax
and ecx, 8
xor ecx, eax
mov dword [esi + 0x1c], ecx
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x374]
push 1
push 0xffffffffffffffff
push edx
push eax
push ecx
call fcn.1004a420
add esp, 0x14
test eax, eax
je 0x1003f081
mov edx, dword [ebp + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [esp + 0x18]
push eax
call fcn.1004b770
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x374]
push 0
push 0xffffffffffffffff
push ecx
push edx
push eax
call fcn.1004a420
add esp, 0x14
test eax, eax
je 0x1003f081
mov byte [eax + 0x19], 1
mov ecx, dword [ebp + 8]
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x1c]
or ecx, 4
mov dword [eax + 0x1c], ecx
jmp case.default.0x1003d8ee
mov esi, dword [esp + 0x374]
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
push ecx
push esi
call fcn.100396d0
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x38]
add esp, 8
mov dword [eax + edx*4], 0
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x40], eax
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
mov cl, byte [esi + 0x1c]
mov byte [esi + 0x19], 0
test cl, 4
je 0x1003fdbd
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
test byte [edi + 0x1c], 0xc
jne 0x1003fd09
push edi
call fcn.1003d720
add esp, 4
push edi
call fcn.1003b870
mov ecx, eax
mov byte [esi + 0x1a], 0
mov ax, word [edi + 0x1c]
add esp, 4
test al, 4
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edx
jne 0x1003fd77
test al, 8
je 0x10040073
fild qword [esp + 0xe4]
fcom qword [edi + 8]
fnstsw ax
and eax, 0x4100
jne 0x1003fd5d
mov eax, dword [esp + 0x40]
and eax, 1
cmp al, 1
fstp st(0)
jne 0x1003fd77
mov eax, dword [esp + 0x40]
dec eax
jmp 0x1003fd73
fcomp qword [edi + 8]
fnstsw ax
test ah, 5
jp 0x1003fd77
test byte [esp + 0x40], 1
jne 0x1003fd77
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x4c]
xor edi, edi
push eax
push edi
push edx
push ecx
mov ecx, dword [esi]
push edi
push ecx
call fcn.10044440
add esp, 0x18
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x1004228f
cmp dword [esp + 0x4c], edi
jne 0x1003fe2e
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], eax
jmp 0x1003fe2e
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 8]
test al, 1
sete al
mov dword [esp + 0x18c], edx
mov word [esp + 0x190], cx
lea eax, [eax + eax - 1]
mov byte [esp + 0x192], al
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x194], edi
test byte [edi + 0x1d], 0x40
je 0x1003fe01
push edi
call fcn.10038bc0
add esp, 4
mov ecx, dword [esi]
lea edx, [esp + 0x4c]
xor edi, edi
push edx
push edi
push edi
lea eax, [esp + 0x198]
push edi
push eax
push ecx
call fcn.10044440
add esp, 0x18
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x1004228f
mov byte [esi + 0x1a], 0
mov ecx, dword [esp + 0x40]
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], edi
mov eax, dword [esp + 0x4c]
cmp ecx, 0x3e
jl 0x1003fe69
cmp eax, edi
jl 0x1003fe56
jne 0x1003fe4d
cmp ecx, 0x3f
je 0x1003fe56
mov dword [esp + 0x4c], edi
jmp case.default.0x1003d8ee
mov dword [esp + 0x4c], edi
mov eax, dword [esi]
lea edx, [esp + 0x4c]
push edx
push eax
call fcn.100448a0
jmp 0x1003fe9b
cmp eax, edi
jg 0x1003fe8a
jne 0x1003fe74
cmp ecx, 0x3c
je 0x1003fe8a
mov ecx, dword [esi]
push ecx
call fcn.10044890
add esp, 4
mov dword [esp + 0x4c], eax
cmp eax, edi
jmp 0x1004006d
mov dword [esp + 0x4c], edi
mov eax, dword [esi]
lea edx, [esp + 0x4c]
push edx
push eax
call fcn.10044a20
add esp, 8
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x1004228f
mov byte [esi + 0x1a], 0
mov eax, dword [esp + 0x4c]
cmp eax, edi
jmp 0x1004006d
mov edx, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x38]
mov esi, dword [eax + ecx*4]
mov byte [esi + 0x19], 0
mov ebp, dword [ebp + 8]
lea ecx, [ebp + ebp*4]
lea eax, [edi + ecx*8]
push eax
call fcn.1003b870
add esp, 4
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 1
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov edx, dword [ebp + 4]
xor ebx, ebx
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + edx*4]
lea edx, [eax + eax*4]
mov dword [esp + 0xd0], ebx
mov eax, dword [ebp + 0x10]
cmp eax, ebx
lea edi, [edi + edx*8]
jle 0x1003ff78
mov eax, dword [esi + 8]
mov dword [esp + 0x118], eax
mov ax, word [ebp + 0x10]
mov dword [esp + 0x120], edi
xor edi, edi
cmp ax, bx
mov word [esp + 0x11c], ax
jbe 0x1003ff6f
mov ecx, dword [esp + 0x120]
test byte [ecx + ebx + 0x1d], 0x40
lea eax, [ecx + ebx]
je 0x1003ff5a
push eax
call fcn.10038bc0
add esp, 4
mov edx, dword [esp + 0x11c]
inc edi
and edx, 0xffff
add ebx, 0x28
cmp edi, edx
jl 0x1003ff40
lea ebx, [esp + 0x118]
jmp 0x1003ffb8
mov edx, dword [esi + 8]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x2b4]
push 0xbf
push ecx
push edx
call fcn.100490c0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x1003f081
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x18]
mov edx, dword [esi + 8]
push ebx
push eax
push ecx
push edx
call fcn.10049130
add esp, 0x10
mov byte [ebx + 6], 0
mov al, byte [ebp]
cmp al, 0x41
jne 0x1003fff5
mov edx, dword [esp + 0x11c]
xor eax, eax
and edx, 0xffff
jle 0x1003fff5
mov ecx, dword [esp + 0x120]
add ecx, 0x1c
test byte [ecx], 1
jne 0x1003ffed
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x1003ffde
jmp 0x1003fff5
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
lea edx, [esp + 0xcc]
push edx
push 0
push 0
push 0
push ebx
push eax
call fcn.10044440
mov edi, eax
mov eax, dword [ebp + 0x10]
add esp, 0x18
mov dword [esp + 0x10], edi
test eax, eax
jne 0x10040031
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.10029770
add esp, 8
test edi, edi
jne case.default.0x1003d8ee
mov eax, dword [esp + 0xcc]
mov cl, 1
mov dword [esi + 0xc], eax
mov edi, dword [esp + 0xcc]
xor eax, eax
mov byte [esi + 0x1b], 0
test edi, edi
sete al
sub cl, al
mov dword [esi + 0x44], 0
mov byte [esi + 0x19], cl
mov cl, byte [ebp]
cmp cl, 0x43
jne 0x10040080
test eax, eax
je case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
test eax, eax
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x374]
lea ebx, [esp + 0xac]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
push ebx
push 0
lea edi, [edi + edx*8]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
mov dword [esp + 0xb4], 0
mov edx, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
push edx
push ecx
push 0
push eax
call fcn.10044440
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x3c], ecx
mov edx, dword [esp + 0xc4]
add esp, 0x18
mov byte [esi + 0x19], 0
test edx, edx
sete dl
mov byte [esi + 0x1a], dl
mov dword [esi + 0x44], 0
mov byte [esi + 0x1b], 0
mov eax, dword [esp + 0xac]
test eax, eax
je 0x10040119
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov dword [esi + 0xc], eax
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x18]
mov esi, dword [edx + 0x28]
mov dword [eax + 0x10], esi
mov edx, dword [edx + 0x2c]
mov dword [eax + 0x14], edx
mov eax, dword [ebp + 4]
mov ecx, dword [ecx + 0x38]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x28]
add edx, 1
mov dword [eax + 0x28], edx
mov ecx, dword [eax + 0x2c]
adc ecx, 0
mov dword [eax + 0x2c], ecx
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov edx, dword [ebp + 4]
xor esi, esi
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x38], ecx
mov eax, dword [ecx]
cmp eax, esi
je 0x10040352
test byte [ecx + 0x1c], 2
jne 0x100401fe
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.10044370
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1004228f
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x100401bf
mov dword [esp + 0x50], 1
jmp 0x100401fe
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x50]
push edx
mov ecx, dword [eax]
push ecx
call fcn.100373f0
mov esi, dword [esp + 0x5c]
add esp, 8
cmp esi, 0x7fffffff
mov dword [esp + 0x10], eax
jl 0x100401f6
jg 0x100401ec
cmp dword [esp + 0x50], 0xffffffff
jb 0x100401f6
mov eax, dword [esp + 0x38]
or dword [eax + 0x1c], 2
jmp 0x100401fe
add dword [esp + 0x50], 1
adc esi, 0
mov ebp, dword [ebp + 0xc]
test ebp, ebp
je 0x10040282
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x1004022b
mov eax, dword [ecx + 4]
test eax, eax
je 0x1004021f
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10040216
mov eax, dword [ecx + 0xc]
lea edx, [ebp + ebp*4]
lea edi, [eax + edx*8]
jmp 0x10040232
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
push edi
call fcn.10048910
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
add esp, 4
cmp eax, 0xffffffff
jne 0x10040252
cmp ecx, 0x7fffffff
je 0x10042287
mov edx, dword [esp + 0x38]
test byte [edx + 0x1c], 2
jne 0x10042287
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x10040278
jl 0x10040272
cmp dword [esp + 0x50], eax
jae 0x10040278
mov dword [esp + 0x50], eax
mov esi, ecx
mov eax, dword [esp + 0x50]
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
mov ecx, dword [esp + 0x38]
mov edi, ecx
test byte [ecx + 0x1c], 2
je 0x10040343
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
and esi, 0x3fffffff
add eax, 1
adc esi, 0
lea edx, [esp + 0x2c]
xor ebp, ebp
push edx
push ebp
push esi
mov dword [esp + 0x5c], eax
push eax
mov eax, dword [edi]
push ebp
push eax
mov dword [esp + 0x6c], esi
call fcn.10044440
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10040343
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x10040333
inc ebp
cmp ebp, 0x64
jge 0x10040333
lea ecx, [esp + 0x50]
push ecx
push 8
call fcn.1002af10
mov eax, dword [esp + 0x58]
add esp, 8
cmp ebp, 5
jge 0x100402fb
and eax, 0xffffff
xor esi, esi
jmp 0x10040305
mov esi, dword [esp + 0x54]
and esi, 0x3fffffff
add eax, 1
lea edx, [esp + 0x2c]
adc esi, 0
push edx
push 0
push esi
mov dword [esp + 0x5c], eax
push eax
mov eax, dword [edi]
push 0
push eax
mov dword [esp + 0x6c], esi
call fcn.10044440
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
je 0x100402cc
jmp 0x10040343
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x10040343
test eax, eax
je 0x10042287
mov byte [edi + 0x1a], 0
mov byte [edi + 0x1b], 0
mov dword [edi + 0x44], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], esi
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 4]
cmp cl, 0x49
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x374]
mov ebx, dword [eax + 0x38]
lea edx, [edi + edx*8]
mov dword [esp + 0x44], edx
mov esi, dword [ebx + esi*4]
jne 0x10040397
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov ebx, dword [edi + ecx*8 + 0x10]
mov edi, dword [edi + ecx*8 + 0x14]
jmp 0x100403aa
mov eax, dword [ebp + 0xc]
cdq
mov ebx, eax
mov eax, dword [esp + 0x374]
mov edi, edx
mov edx, dword [esp + 0x44]
test byte [ebp + 3], 1
je 0x100403b3
inc dword [eax + 0x5c]
test byte [ebp + 3], 2
je 0x100403cb
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edi
mov dword [eax + 0x20], ebx
mov dword [eax + 0x24], edi
test byte [edx + 0x1c], 1
je 0x100403d9
xor eax, eax
mov dword [edx + 4], eax
mov dword [edx + 0x18], eax
mov al, byte [ebp + 3]
test al, 0x10
je 0x100403e9
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x24], ecx
jmp 0x100403f1
mov dword [esp + 0x24], 0
mov cx, word [edx + 0x1c]
test ch, 0x40
je 0x10040403
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x1004040b
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x24]
shr eax, 3
and eax, 1
push ecx
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 4]
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [esi]
push ecx
push edx
push edi
push ebx
push 0
push eax
call fcn.10044b70
add esp, 0x24
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
jne case.default.0x1003d8ee
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc8]
test edx, edx
je case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
test eax, eax
je case.default.0x1003d8ee
push edi
push ebx
push eax
movsx eax, byte [esi + 0x18]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc4]
shl eax, 4
mov eax, dword [eax + esi]
push eax
mov al, byte [ebp + 3]
and al, 4
neg al
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push ecx
call edx
jmp 0x100420a5
mov ebx, dword [esp + 0x374]
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
push esi
mov ecx, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x20c], ecx
call fcn.10048bd0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1004228f
mov edx, dword [esi]
push edx
call fcn.10047080
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esi + 0x44], 0
jne 0x10040526
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x10040526
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x10040526
test byte [esi + 0x1c], 4
je 0x10040526
push dword [esp + 0x208]
push edi
push ecx
movsx ecx, byte [esi + 0x18]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc4]
shl ecx, 4
mov ecx, dword [ecx + esi]
push ecx
push 9
push eax
call edx
add esp, 0x18
test byte [ebp + 8], 1
je case.default.0x1003d8ee
inc dword [ebx + 0x5c]
jmp case.default.0x1003d8ee
mov esi, dword [esp + 0x374]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x5c]
push ecx
push edx
call fcn.1003b000
add esp, 8
mov dword [esi + 0x5c], 0
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov ecx, dword [edx + eax*4]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x110]
lea eax, [eax + eax*4]
push edx
lea edi, [edi + eax*8]
mov eax, dword [ebp + 0x10]
push eax
push edi
push ecx
call fcn.1004c8e0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x120]
add esp, 0x10
jmp 0x1004006b
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + 0x38]
push edi
mov dword [esp + 0x1c], edi
mov eax, dword [eax + ecx*4]
push eax
call fcn.1004c830
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x374]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edx, [edi + ecx*8]
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x18], edx
mov esi, dword [ecx + eax*4]
push esi
mov edi, dword [esi]
call fcn.10048bd0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1004228f
test byte [esi + 0x1c], 4
jne 0x10040649
lea edx, [esp + 0x154]
push edx
push edi
call fcn.100373f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x160]
add esp, 8
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x10041744
mov ecx, dword [esp + 0x154]
jl 0x1004063e
cmp ecx, eax
ja 0x10041744
mov eax, ecx
mov dword [esp + 0x8c], eax
jmp 0x1004066e
lea edx, [esp + 0x8c]
push edx
push edi
call fcn.10043ea0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
add esp, 8
cmp eax, dword [ecx + 0x58]
ja 0x10041744
mov edx, dword [esp + 0x18]
push 0
push eax
push edx
call fcn.10038a40
add esp, 0xc
test eax, eax
jne 0x1003f081
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x8c]
mov cx, word [ebx + 0x1c]
mov dword [ebx + 0x18], eax
and ecx, 0xbe10
or ecx, 0x10
mov word [ebx + 0x1c], cx
mov al, byte [esi + 0x1c]
test al, 4
jne 0x100406d0
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x8c]
push edx
push eax
push 0
push edi
call fcn.100374a0
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1e], 1
jmp case.default.0x1003d8ee
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x8c]
push ecx
push edx
push 0
push edi
call fcn.10043ec0
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1e], 1
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
mov al, byte [esi + 0x19]
test al, al
je 0x1004071a
mov edx, dword [esp + 0x18]
mov word [edx + 0x1c], 1
jmp case.default.0x1003d8ee
mov al, byte [esi + 0x1b]
test al, al
je 0x10040737
mov eax, dword [esi + 0x30]
mov dword [esp + 0xb4], eax
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xb8], ecx
jmp 0x100407a7
mov eax, dword [esi + 0x24]
test eax, eax
je 0x1004075e
mov esi, dword [eax]
lea edx, [esp + 0xb4]
push edx
push eax
mov ecx, dword [esi]
call dword [ecx + 0x30]
push esi
push ebx
mov dword [esp + 0x20], eax
call fcn.10049f20
add esp, 0x10
jmp 0x100407a7
push esi
call fcn.10048bd0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1004228f
mov al, byte [esi + 0x1a]
test al, al
je 0x10040790
mov eax, dword [esi + 0x38]
mov dword [esp + 0xb4], eax
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0xb8], ecx
jmp 0x100407a7
mov eax, dword [esi]
lea edx, [esp + 0xb4]
push edx
push eax
call fcn.100373f0
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov byte [eax + 0x19], 1
mov byte [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov eax, dword [eax]
test eax, eax
je case.default.0x1003d8ee
push eax
call fcn.10038680
add esp, 4
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
xor edi, edi
mov edx, dword [ecx + 0x38]
lea ecx, [esp + 0xa8]
push ecx
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
mov dword [esp + 0xac], edi
push eax
call fcn.10044370
mov dl, byte [esp + 0xb0]
mov byte [esi + 0x1b], 0
mov byte [esi + 0x19], dl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x44], edi
mov ebp, dword [ebp + 8]
add esp, 8
cmp ebp, edi
mov dword [esp + 0x10], eax
jle case.default.0x1003d8ee
cmp dword [esp + 0xa8], edi
je case.default.0x1003d8ee
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
inc dword [eax + 0x74]
jmp 0x10040875
mov eax, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + 0x38]
mov esi, dword [edx + ecx*4]
mov dword [esp + 0x98], 1
mov eax, dword [esi + 0x40]
test eax, eax
je 0x100408c0
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x98]
push eax
push esi
push ecx
call fcn.1004bef0
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0xa4]
mov byte [esi + 0x19], al
mov eax, dword [esp + 0xa4]
add esp, 0xc
jmp 0x1004006b
mov eax, dword [esi]
lea edx, [esp + 0x98]
push edx
push eax
call fcn.10044090
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov byte [esi + 0x1a], 0
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xa0]
add esp, 8
mov byte [esi + 0x19], al
mov eax, dword [esp + 0x98]
jmp 0x1004006b
mov ebx, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x9c]
mov edx, dword [ebx + 0x38]
push eax
mov edi, dword [edx + ecx*4]
mov dword [esp + 0xa0], 0
push edi
push esi
call fcn.1004c660
add esp, 0xc
jmp 0x10040977
mov ebx, dword [esp + 0x374]
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
cmp dword [edx + ecx*4], 0
je case.default.0x1003d8ee
jmp 0x1004094f
mov ebx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*4]
mov dword [esp + 0x9c], edx
lea eax, [esp + 0x9c]
mov ecx, dword [edi]
push eax
push ecx
call dword [ebp + 0x10]
mov esi, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [edi + 0x44], 0
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x100409b2
mov byte [edi + 0x19], 0
mov eax, dword [ebp + 8]
xor edx, edx
dec eax
mov dl, byte [ebp + 3]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebx + edx*4 + 0x6c]
lea eax, [ebx + edx*4 + 0x6c]
inc ecx
mov dword [eax], ecx
mov byte [edi + 0x1a], 0
jmp 0x10041d9f
mov byte [edi + 0x19], 1
mov byte [edi + 0x1a], 0
jmp 0x10041d9f
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [ebp + 8]
mov ebx, dword [esi]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [ebp + 3]
test al, 1
je 0x100409e4
inc dword [ecx + 0x5c]
test byte [edi + 0x1d], 0x40
je 0x100409ff
push edi
call fcn.10038bc0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
mov eax, dword [esi + 0x40]
test eax, eax
je 0x10040a1e
mov ecx, dword [esp + 0x14]
push edi
push esi
push ecx
call fcn.1004b930
add esp, 0xc
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov cl, byte [ebp + 3]
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 4]
test cl, 0x10
je 0x10040a31
mov ecx, dword [esi + 0xc]
jmp 0x10040a33
xor ecx, ecx
mov edx, dword [ebp + 0xc]
push ecx
push edx
push 0
cdq
push 0
push 0x10095e10
push edx
push eax
push edi
push ebx
call fcn.10044b70
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [esi + 0x44], 0
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov cx, word [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov esi, dword [edx + eax*4]
lea edx, [ebp + ebp*4]
mov ebx, dword [esi]
mov eax, dword [esi + 8]
mov word [esp + 0x1f4], cx
lea ecx, [esp + 0x104]
mov dword [esp + 0x1f0], eax
push ecx
lea eax, [edi + edx*8]
push 0
push 0
lea edx, [esp + 0x1fc]
push 0
push edx
push ebx
mov byte [esp + 0x20e], 0
mov dword [esp + 0x210], eax
call fcn.10044440
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10040ade
mov eax, dword [esp + 0x104]
test eax, eax
jne 0x10040ade
push ebx
call fcn.10047080
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esi + 0x44], 0
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
push esi
mov edi, dword [esi]
mov word [edx + 0x1c], 1
call fcn.10048bd0
xor ebp, ebp
add esp, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x1004228f
mov al, byte [esi + 0x19]
test al, al
jne case.default.0x1003d8ee
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xec]
push eax
push edi
push esi
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], ebp
call fcn.10049d20
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x10042293
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], 4
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x20c], ecx
mov dx, word [ebp + 0x10]
mov word [esp + 0x210], dx
mov cl, byte [ebp]
cmp cl, 0x71
sbb cl, cl
mov byte [esp + 0x212], cl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x7c], 0
lea edx, [ecx + ecx*4]
lea ecx, [edi + edx*8]
lea edx, [esp + 0x7c]
mov dword [esp + 0x214], ecx
lea ecx, [esp + 0x20c]
push edx
push ecx
push eax
call fcn.10049e40
mov dl, byte [ebp]
add esp, 0xc
and dl, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
cmp dl, 1
jne 0x10040bf5
neg eax
jmp 0x10040bf6
inc eax
test eax, eax
mov dword [esp + 0x7c], eax
jle case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x14]
xor edi, edi
mov eax, dword [edx + 4]
test eax, eax
je 0x10040c45
mov esi, 0xbdf20da3
cmp dword [eax + 0x28], esi
jne 0x10040c3e
mov ecx, dword [eax + 0x58]
test ch, 2
je 0x10040c3e
and ecx, 0xc
cmp cl, 8
jae 0x10040c3e
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jl 0x10040c3e
inc edi
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x10040c21
mov esi, dword [esp + 0x18]
cmp edi, 1
mov word [esi + 0x1c], 1
jle 0x10040c6c
mov eax, dword [esp + 0x374]
mov dword [esp + 0x10], 6
mov byte [eax + 0x56], 2
jmp case.default.0x1003d8ee
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
mov edx, dword [edx + 0x10]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebx
shl ecx, 4
mov dword [esp + 0xc0], 0
push eax
mov eax, dword [ecx + edx + 4]
push eax
call fcn.10047740
mov ecx, dword [esp + 0xc8]
mov edi, eax
mov eax, ecx
add esp, 0xc
cdq
test edi, edi
mov dword [esp + 0x10], edi
mov word [esi + 0x1c], 4
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jne case.default.0x1003d8ee
test ecx, ecx
je case.default.0x1003d8ee
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
push edx
push ecx
push ebx
push eax
call fcn.1004e660
add esp, 0x10
inc bl
mov byte [esp + 0xa0], bl
jmp case.default.0x1003d8ee
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x24]
and ecx, edx
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov dword [esp + 0x2c], 0
mov ecx, dword [ecx + eax + 4]
push ecx
call fcn.10047540
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
add esp, 0xc
test eax, eax
je case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0x5c]
add edx, eax
mov dword [ecx + 0x5c], edx
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jle case.default.0x1003d8ee
lea edx, [ebp + ebp*4]
mov esi, dword [edi + edx*8 + 0x10]
lea ecx, [edi + edx*8 + 0x10]
cdq
add esi, eax
mov dword [ecx], esi
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx + 4], eax
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x10040d91
mov eax, dword [esp + 0x14]
push ecx
push eax
call fcn.1004b800
add esp, 8
jmp case.default.0x1003d8ee
mov ecx, dword [eax]
push ecx
call fcn.10047720
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x14]
mov ebp, dword [ebp + 4]
shl ebp, 4
mov esi, dword [edx + 0x10]
xor eax, eax
add ebp, esi
cmp cl, 0x77
setne al
inc eax
mov dword [esp + 0x24], 0
mov ecx, dword [ebp + 4]
push eax
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.100472d0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
add esp, 0xc
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x10040e01
mov ecx, str.sqlite_master
mov edx, dword [esp + 0x374]
mov esi, dword [esp + 0x14]
add edx, 0x2c
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], edx
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x144], esi
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.1003ab70
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x10040e52
mov ebx, 7
mov dword [esp + 0x10], ebx
jmp 0x10040ea7
lea eax, [esp + 0x13c]
push 0
push eax
push fcn.10051120
push edi
push esi
mov byte [esi + 0x89], 1
mov dword [esp + 0x15c], 0
call fcn.10050950
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x10040e92
mov ebx, dword [esp + 0x148]
mov dword [esp + 0x10], ebx
push edi
push esi
call fcn.10029770
add esp, 8
mov byte [esi + 0x89], 0
test ebx, ebx
je 0x10040eb0
push esi
call fcn.1004e300
add esp, 4
cmp ebx, 7
je 0x1003f081
jmp case.default.0x1003d8ee
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.1004d170
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.1004e590
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.1004de00
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.10052710
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
lea eax, [eax*4 + 4]
push eax
push ecx
call fcn.100299e0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1003f081
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x64]
xor edi, edi
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x30]
test ecx, ecx
mov dword [esp + 0x2c], eax
jle 0x10040f98
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
push ecx
call fcn.1003b870
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ebx + edi*4], eax
mov eax, dword [esp + 0x30]
inc edi
add ecx, 0x28
cmp edi, eax
mov dword [esp + 0x20], ecx
jl 0x10040f74
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xc4]
push edx
mov dword [ebx + edi*4], 0
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x18]
xor edx, edx
push eax
mov dl, byte [ebp + 3]
mov eax, dword [edi + 0x10]
shl edx, 4
push ecx
push ebx
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.10047a90
push ebx
push edi
mov ebp, eax
call fcn.10029770
mov eax, dword [esp + 0xe0]
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
cdq
sub ebx, eax
sbb edi, edx
mov edx, dword [esp + 0x48]
push edx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edi
call fcn.10038760
mov eax, dword [esp + 0xe4]
add esp, 0x20
test eax, eax
je 0x10041022
test ebp, ebp
je 0x1003f081
mov eax, dword [esp + 0x2c]
push fcn.10029710
push 1
push 0xffffffffffffffff
push ebp
push eax
call fcn.10038840
add esp, 0x14
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
and ecx, 0xff
push ecx
push edx
call fcn.1003b290
add esp, 8
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ebp + ebp*4]
lea esi, [edi + eax*8]
lea edi, [edi + ecx*8]
test byte [esi + 0x1c], 0x20
jne 0x1004106c
push esi
call fcn.100489e0
mov al, byte [esi + 0x1c]
add esp, 4
test al, 0x20
je 0x1003f081
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
call fcn.100428f0
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov al, byte [edi + edx*8 + 0x1c]
test al, 0x20
lea esi, [edi + edx*8]
je 0x100410dd
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x15c]
push eax
push ecx
call fcn.100429b0
add esp, 8
test eax, eax
je 0x100410dd
mov ebp, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x15c]
push edx
lea ecx, [ebp + ebp*4]
push eax
lea edx, [edi + ecx*8]
push edx
call fcn.1003bd40
mov ebx, dword [esp + 0x380]
add esp, 0xc
jmp 0x10041d9b
push esi
call fcn.10038760
add esp, 4
mov ebx, dword [esp + 0x374]
jmp 0x10041d93
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov al, byte [esi + 0x1c]
test al, 0x20
lea edi, [edi + ecx*8]
jne 0x10041122
push esi
call fcn.100489e0
mov al, byte [esi + 0x1c]
add esp, 4
test al, 0x20
je 0x1003f081
test ebx, ebx
je 0x10041154
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ebx
push ecx
call fcn.10042b40
add esp, 0x10
test eax, eax
je 0x1004114c
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
test ebx, ebx
jl case.default.0x1003d8ee
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
call fcn.100428f0
add esp, 0xc
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x64]
lea ebx, [eax + edx*8]
mov al, byte [ebp + 3]
test al, al
mov eax, dword [esp + 0x374]
je 0x100411af
mov ecx, dword [eax + 0xb0]
mov edx, dword [edi + 0x14]
test ecx, ecx
je 0x100411af
cmp dword [ecx + 0x18], edx
je case.default.0x1003d8ee
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x10041198
mov eax, dword [esp + 0x374]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0xb8]
cmp edx, dword [ecx + 0x80]
jl 0x100411e0
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
push ecx
push eax
mov dword [esp + 0x1c], 1
call fcn.1003ae80
add esp, 0xc
jmp case.default.0x1003d8ee
test byte [ebx + 0x1c], 0x40
jne 0x100412a2
mov eax, dword [edi + 0xc]
mov ebp, dword [edi + 8]
add ebp, eax
lea edx, [ebp + ebp*4]
lea eax, [eax + edx*2]
mov edx, dword [edi + 0x10]
lea eax, [edx + eax*4 + 0x48]
push eax
push ecx
call fcn.1002f2e0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003f081
push ebx
call fcn.10038d00
mov eax, dword [esp + 0x378]
mov edx, dword [esp + 0x20]
mov word [ebx + 0x1c], 0x40
mov dword [ebx + 0x10], esi
mov dword [esi], eax
mov dword [esi + 0x3c], ebp
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x40], ecx
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
mov edx, dword [eax + 0x1c]
mov dword [esi + 0x34], edx
mov ecx, dword [eax + 0x38]
mov dword [esi + 0x14], ecx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x28], edx
mov ecx, dword [eax + 4]
mov dword [esi + 8], ecx
mov edx, dword [eax + 0x20]
mov dword [esi + 0x30], edx
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 0xc8]
mov dword [esi + 0x10], edx
mov ecx, dword [eax + 0xc4]
lea edx, [ebp + ebp*4]
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x48]
add esp, 4
lea edx, [esi + edx*8 + 0x48]
cmp ecx, edx
je 0x100412a5
mov ebx, dword [esp + 0x14]
mov ebp, 0x80
mov word [ecx + 0x1c], bp
mov dword [ecx], ebx
add ecx, 0x28
cmp ecx, edx
jne 0x10041293
jmp 0x100412a5
mov esi, dword [ebx + 0x10]
mov ebp, dword [eax + 0xb8]
mov ecx, dword [eax + 0xb0]
mov edx, dword [esp + 0x5c]
inc ebp
mov dword [eax + 0xb8], ebp
mov dword [esi + 4], ecx
lea ecx, [esi + 0x20]
mov dword [esp + 0x1c], 0xffffffff
mov dword [ecx], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], edx
mov edx, dword [eax + 0x5c]
mov dword [esi + 0x44], edx
mov edx, ecx
mov dword [eax + 0x5c], 0
mov dword [eax + 0xb0], esi
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x3c]
mov dword [eax + 0x1c], ecx
xor ecx, ecx
mov cx, word [esi + 0x40]
mov dword [esp + 0x64], edx
mov dword [eax + 0x24], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x38], ecx
mov edx, dword [edi]
mov dword [esp + 0xb0], edx
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
mov dword [eax + 0x20], edx
mov edx, dword [eax + 0x24]
lea edx, [ecx + edx*4]
mov dword [eax + 0xc8], edx
mov edi, dword [edi + 0x10]
mov dword [eax + 0xc4], edi
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov esi, dword [ebp + 4]
push 0x1000
mov ecx, dword [eax + 0xb0]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov eax, dword [eax + edx*4 + 4]
add eax, esi
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.10048aa0
add esp, 0xc
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x1000000
je 0x100413bd
mov eax, dword [ebp + 8]
mov esi, dword [ecx + 0x1f8]
cdq
add esi, eax
mov eax, dword [ecx + 0x1fc]
adc eax, edx
mov dword [ecx + 0x1f8], esi
mov dword [ecx + 0x1fc], eax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
test eax, eax
mov eax, dword [ebp + 8]
cdq
je 0x100413e9
mov esi, dword [ecx + 0x1f0]
add esi, eax
mov eax, dword [ecx + 0x1f4]
adc eax, edx
mov dword [ecx + 0x1f0], esi
mov dword [ecx + 0x1f4], eax
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov esi, dword [ecx + 0x90]
add esi, eax
mov eax, dword [ecx + 0x94]
adc eax, edx
mov dword [ecx + 0x90], esi
mov dword [ecx + 0x94], eax
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
test eax, eax
je 0x10041451
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [eax + 0x1f4]
or ecx, edx
jne case.default.0x1003d8ee
mov edx, dword [eax + 0x1f8]
mov ecx, dword [eax + 0x1fc]
or edx, ecx
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov ecx, dword [eax + 0x90]
mov edx, dword [eax + 0x94]
or ecx, edx
jne case.default.0x1003d8ee
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1f8]
mov ecx, dword [eax + 0x1fc]
or edx, ecx
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x100414c0
mov eax, dword [ecx + 4]
test eax, eax
je 0x100414b2
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x100414a9
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea esi, [eax + edx*8]
jmp 0x100414c9
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
push esi
call fcn.10048910
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
push edi
call fcn.10048910
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov ecx, dword [esi + 0x14]
add esp, 8
cmp ecx, edi
jg case.default.0x1003d8ee
jl 0x10041500
mov edx, dword [esi + 0x10]
cmp edx, eax
jae case.default.0x1003d8ee
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edi
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x14]
test ecx, ecx
jl case.default.0x1003d8ee
jg 0x1004152b
mov ecx, dword [edi + eax*8 + 0x10]
test ecx, ecx
jbe case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov esi, dword [edi + eax*8 + 0x14]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
mov edi, dword [ecx + 0x10]
cdq
add edi, eax
adc esi, edx
mov dword [ecx + 0x10], edi
mov eax, esi
mov dword [ecx + 0x14], esi
test eax, eax
jg case.default.0x1003d8ee
jl 0x1004156c
mov eax, edi
test eax, eax
jae case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
cdq
mov esi, dword [edi + ecx*8 + 0x14]
lea ecx, [edi + ecx*8]
mov edi, dword [ecx + 0x10]
add edi, eax
adc esi, edx
mov edx, edi
mov eax, esi
mov dword [ecx + 0x10], edi
or edx, eax
mov dword [ecx + 0x14], esi
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [ebp + 3]
xor ebx, ebx
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0x374]
mov esi, dword [eax + 0xc]
xor eax, eax
cmp edx, ebx
jle 0x100415db
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x100415d0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x1a8], ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1d8], eax
mov ecx, dword [eax + 0x18]
inc ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1a8]
mov word [esp + 0x1cc], 1
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1dc], ebx
mov byte [esp + 0x1ec], 0
mov cl, byte [eax + 2]
test cl, 0x20
je 0x10041655
mov ecx, dword [ebp - 4]
mov dword [esp + 0x1dc], ecx
push esi
push edx
lea edx, [esp + 0x1b0]
push edx
call dword [eax + 0x10]
mov eax, dword [esp + 0x1f4]
add esp, 0xc
cmp eax, ebx
je 0x100416a6
lea eax, [esp + 0x1b0]
push eax
call fcn.1003bb90
mov edx, dword [esp + 0x378]
mov ecx, dword [esp + 0x18]
push eax
push 0x1009133c
add edx, 0x2c
push ecx
push edx
call fcn.1003ae80
mov eax, dword [esp + 0x1fc]
add esp, 0x14
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x1ec]
test al, al
je 0x100416cb
mov ebp, dword [ebp - 0x10]
cmp ebp, ebx
je 0x100416cb
lea ecx, [ebp + ebp*4]
push ebx
push 1
lea edx, [edi + ecx*8]
push edx
call fcn.1003bd40
add esp, 0xc
lea eax, [esp + 0x1b0]
push eax
call fcn.10038d00
add esp, 4
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
push edx
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
push edi
call fcn.10038c90
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x10041722
push edi
call fcn.1003bb90
mov ecx, dword [esp + 0x378]
push eax
mov eax, dword [esp + 0x1c]
push 0x1009133c
add ecx, 0x2c
push eax
push ecx
call fcn.1003ae80
add esp, 0x14
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
push edi
call fcn.1003b290
push edi
call fcn.10048a70
add esp, 0xc
test eax, eax
je case.default.0x1003d8ee
mov edx, dword [esp + 0x374]
mov ecx, dword [esp + 0x14]
push str.string_or_blob_too_big
add edx, 0x2c
push ecx
push edx
call fcn.1003ae80
mov ebx, dword [esp + 0x380]
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x10], 0x12
jmp 0x10041dfd
mov edx, dword [ebp + 8]
or eax, 0xffffffff
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xfc]
lea ecx, [esp + 0xf8]
push eax
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
xor esi, esi
push eax
push ecx
mov dword [esp + 0x108], esi
call fcn.1007c7e0
add esp, 0x14
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x100417d0
mov dword [esp + 0x10], esi
mov dword [esp + 0xf4], 1
mov ebp, dword [ebp + 0xc]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
mov eax, dword [esp + esi*4 + 0xf4]
cdq
push edx
push eax
push edi
call fcn.1003bd40
add esp, 0xc
inc esi
add edi, 0x28
cmp esi, 3
jl 0x100417da
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
mov dword [esp + 0x48], eax
call fcn.1002f030
mov ebx, eax
push ebx
call fcn.10033350
add esp, 8
cmp esi, 0xffffffff
mov dword [esp + 0x28], eax
jne 0x1004182f
mov esi, eax
push ebx
call fcn.10042e50
add esp, 4
test eax, eax
jne 0x10041840
mov esi, dword [esp + 0x28]
cmp esi, 5
jne 0x100418be
push 1
push ebx
call fcn.1003abf0
push eax
call fcn.1002b0d0
add esp, 0xc
test eax, eax
je 0x10041867
push ebx
call fcn.10035bb0
add esp, 4
test eax, eax
jne 0x100418be
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10041877
mov esi, dword [esp + 0x28]
push esi
push ebx
call fcn.10042d50
mov ebp, dword [ebp + 8]
push eax
lea ecx, [ebp + ebp*4]
lea esi, [edi + ecx*8]
mov dword [esp + 0x24], esi
mov word [esi + 0x1c], 0xa02
call fcn.10051100
push eax
mov dword [esi + 4], eax
call fcn.1002b0d0
mov edx, dword [esp + 0x44]
mov dword [esi + 0x18], eax
and edx, 0xff
mov byte [esi + 0x1e], 1
push edx
push esi
call fcn.1003b290
jmp 0x100420a5
mov ecx, dword [esp + 0x28]
cmp esi, ecx
je 0x1004186b
cmp ecx, 5
je 0x100418d0
cmp esi, 5
jne 0x1004186b
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 0x3e]
test dl, dl
je 0x1004193d
cmp dword [eax + 0x90], 1
jg 0x1004193d
cmp ecx, 5
jne 0x10041901
push ebx
call fcn.10042e80
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10041873
push esi
jmp 0x10041908
cmp ecx, 4
jne 0x10041911
push 2
push ebx
call fcn.10042d50
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x10041873
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push ecx
call fcn.10038120
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x1004186b
cmp esi, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x10041954
mov eax, str.out_of
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x378]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x2c
push edx
push eax
call fcn.1003ae80
add esp, 0x10
jmp case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [esp + 0x14]
add ecx, 0x2c
push eax
push ecx
call fcn.100527c0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
shl edx, 4
mov ecx, dword [eax + 0x10]
mov eax, dword [edx + ecx + 4]
push eax
call fcn.10043cd0
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 8]
mov dword [esp + 0x10], 0
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 4]
test eax, eax
jne 0x100419ed
mov edx, dword [esp + 0x14]
push edx
call fcn.10049f00
add esp, 4
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
or dword [eax + 0x58], 0x20
jmp case.default.0x1003d8ee
mov al, byte [ebp + 0xc]
mov esi, dword [esp + 0x14]
test al, al
mov byte [esp + 0x10c], al
jne 0x10041a1b
mov eax, dword [esi + 0x18]
test ah, 0x40
jne case.default.0x1003d8ee
mov ecx, dword [esp + 0x10c]
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [esi + 0x10]
push edx
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.100487e0
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.default.0x1003d8ee
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x374]
push eax
push str.database_table_is_locked:__s
add ecx, 0x2c
push esi
push ecx
call fcn.1003ae80
add esp, 0x10
jmp case.default.0x1003d8ee
mov ebp, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
push ebp
push edx
call fcn.10053830
add esp, 8
mov dword [esp + 0x10], eax
test ebp, ebp
je case.default.0x1003d8ee
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x374]
push eax
push ecx
call fcn.10049f20
add esp, 8
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x374]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
add edx, 0x2c
push edx
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call fcn.10053100
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.default.0x1003d8ee
mov esi, dword [esp + 0x374]
mov eax, dword [esi + 0x58]
and al, 0xfb
or al, 8
mov dword [esi + 0x58], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.100536c0
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x58]
add esp, 0xc
and al, 0xf3
mov dword [esi + 0x58], eax
jmp case.default.0x1003d8ee
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x28], 0
lea edx, [esp + 0x28]
mov esi, dword [ecx + 8]
push edx
push esi
mov ebx, dword [esi]
call dword [ebx + 0x18]
mov edi, eax
mov eax, dword [esp + 0x37c]
push esi
push eax
mov dword [esp + 0x20], edi
call fcn.10049f20
add esp, 0x10
test edi, edi
jne case.default.0x1003d8ee
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x374]
push edi
push 0xffffffffffffffff
mov dword [ecx], esi
mov edx, dword [ebp + 4]
push edi
push edx
push eax
call fcn.1004a420
add esp, 0x14
test eax, eax
je 0x10041b67
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x24], ecx
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
push eax
mov byte [edx + 0x40], 1
call dword [ebx + 0x1c]
add esp, 4
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x374]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x28], eax
mov edi, dword [eax + 0x24]
mov eax, dword [ecx + 0x38]
mov ebx, dword [edi]
mov dword [esp + 0x44], ebx
mov edx, dword [ebx]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x24], edx
xor edx, edx
test eax, eax
jle 0x10041bd8
mov ebx, dword [esp + 0x24]
add ecx, 0x50
mov dword [ebx + edx*4], ecx
inc edx
add ecx, 0x28
cmp edx, eax
jl 0x10041bc9
mov ebx, dword [esp + 0x44]
mov ecx, dword [esi + 0x58]
mov edx, dword [esp + 0x24]
and ecx, 0xfffffff7
push edx
mov edx, dword [esp + 0x24]
or ecx, 4
mov dword [esi + 0x58], ecx
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [ebp + 0x10]
push eax
push ecx
push edi
call dword [edx + 0x20]
mov ecx, dword [esi + 0x58]
push ebx
and ecx, 0xfffffff3
push esi
mov dword [esp + 0x2c], eax
mov dword [esi + 0x58], ecx
call fcn.10049f20
mov eax, dword [esp + 0x2c]
add esp, 0x1c
test eax, eax
jne 0x10041c31
mov eax, dword [esp + 0x20]
push edi
call dword [eax + 0x28]
add esp, 4
test eax, eax
je 0x10041c31
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x19], 0
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x374]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + edx*4]
lea edx, [eax + eax*4]
mov al, byte [esi + 0x19]
lea edi, [edi + edx*8]
test al, al
mov dword [esp + 0x44], edi
je 0x10041c70
push edi
call fcn.10038760
add esp, 4
jmp case.default.0x1003d8ee
mov eax, dword [esi + 0x24]
lea edi, [esp + 0x268]
lea edx, [esp + 0x270]
mov ebx, dword [eax]
xor eax, eax
mov ecx, dword [ebx]
mov dword [esp + 0x24], ecx
mov ecx, 0x12
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x44]
push edi
push edx
call fcn.1003d5f0
mov eax, dword [esp + 0x294]
mov ecx, dword [ebp + 8]
and eax, 0xbe01
lea edx, [esp + 0x270]
or al, 1
push ecx
mov ecx, dword [esp + 0x30]
mov word [esp + 0x298], ax
mov eax, dword [esi + 0x24]
push edx
push eax
call dword [ecx + 0x2c]
mov edx, dword [esp + 0x388]
push ebx
push edx
mov dword [esp + 0x2c], eax
call fcn.10049f20
mov eax, dword [esp + 0x2c4]
add esp, 0x1c
test eax, eax
je 0x10041cee
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x270]
and eax, 0xff
push eax
push ecx
call fcn.1003b290
lea edx, [esp + 0x278]
push edx
push edi
call fcn.1003d5f0
push edi
call fcn.10048a70
add esp, 0x14
test eax, eax
jne 0x10041744
jmp case.default.0x1003d8ee
mov ebx, dword [esp + 0x374]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
mov al, byte [esi + 0x19]
test al, al
jne case.default.0x1003d8ee
mov edx, dword [esi + 0x24]
mov ecx, dword [ebx + 0x58]
and ecx, 0xfffffff7
mov edi, dword [edx]
or ecx, 4
mov eax, dword [edi]
mov dword [ebx + 0x58], ecx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x44], eax
push edx
call dword [eax + 0x24]
mov ecx, dword [ebx + 0x58]
push edi
and ecx, 0xfffffff3
push ebx
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x58], ecx
call fcn.10049f20
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x10041d93
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x44]
push eax
call dword [ecx + 0x28]
add esp, 4
test eax, eax
jne 0x10041d9b
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xe8]
test eax, eax
jne 0x100422d4
mov edi, dword [esi + 0x11c]
test edi, edi
je case.default.0x1003d8ee
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
cmp edx, eax
jb case.default.0x1003d8ee
mov ecx, dword [esi + 0x124]
mov ebp, edx
mov eax, ebp
xor edx, edx
div ecx
mov eax, dword [esi + 0x120]
push eax
sub ecx, edx
add ecx, ebp
mov dword [esp + 0x7c], ecx
call edi
add esp, 4
test eax, eax
je case.default.0x1003d8ee
mov dword [esp + 0x10], 9
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0xa8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push ecx
push str.statement_aborts_at__d:___s___s
push eax
mov dword [ebx + 0x50], eax
call fcn.1002ae70
push ebx
call fcn.10039220
mov eax, dword [esp + 0x28]
add esp, 0x18
cmp eax, 0xc0a
jne 0x10041e37
mov byte [esi + 0x40], 1
mov al, byte [esp + 0xa0]
mov ebp, 1
test al, al
jbe 0x10041e5f
mov edx, dword [esp + 0xa0]
and edx, 0xff
dec edx
push edx
push esi
call fcn.1004e2c0
add esp, 8
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x74]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov esi, dword [ebx + 0x7c]
add esi, edx
push ebx
mov dword [ebx + 0x7c], esi
call fcn.10039560
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x360
ret
mov ecx, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
push 1
mov esi, dword [ecx + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
push edi
call fcn.1003b290
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x1003d8ee
mov ecx, dword [edi + 4]
mov eax, dword [esi]
push ecx
push esi
call dword [eax + 0x4c]
push esi
mov esi, dword [esp + 0x380]
push esi
mov dword [esp + 0x20], eax
call fcn.10049f20
mov eax, dword [esi + 0x58]
add esp, 0x10
and al, 0xdf
mov dword [esi + 0x58], eax
jmp case.default.0x1003d8ee
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 8]
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov edx, dword [eax + 0x34]
test edx, edx
je case.default.0x1003d8ee
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x374]
mov al, byte [ebx + 0x44]
mov esi, dword [edx + 0xc]
mov byte [esp + 0x3f], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
xor eax, eax
test ecx, ecx
jle 0x10041f2f
mov dword [esi + eax*4], edx
add edx, 0x28
inc eax
cmp eax, ecx
jl 0x10041f24
mov dl, byte [ebp + 3]
lea eax, [esp + 0x14c]
push eax
push esi
mov esi, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x30]
push esi
mov byte [ebx + 0x44], dl
call dword [ecx + 0x34]
mov dl, byte [esp + 0x4f]
push esi
mov esi, dword [esp + 0x388]
mov dword [esp + 0x24], eax
push esi
mov byte [ebx + 0x44], dl
call fcn.10049f20
mov edx, dword [esp + 0x28]
add esp, 0x18
test edx, edx
jne 0x10041f92
mov eax, dword [ebp + 4]
test eax, eax
je 0x10041f92
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dl, 0x13
jne 0x10041fd3
mov eax, dword [ebp + 0x10]
mov cl, byte [eax + 0x10]
test cl, cl
je 0x10041fd3
mov al, byte [ebp + 3]
cmp al, 4
jne 0x10041fb5
mov dword [esp + 0x10], 0
jmp case.default.0x1003d8ee
cmp al, 5
jne 0x10041fc6
mov eax, 2
mov byte [esi + 0x56], al
jmp case.default.0x1003d8ee
and eax, 0xff
mov byte [esi + 0x56], al
jmp case.default.0x1003d8ee
inc dword [esi + 0x5c]
jmp case.default.0x1003d8ee
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
shl ecx, 4
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + eax + 4]
push ecx
call fcn.10034b50
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
jmp case.default.0x1003d8ee
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
shl edx, 4
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, dword [edx + ecx + 4]
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x10042034
push esi
call fcn.10034b50
mov ebp, dword [ebp + 0xc]
add esp, 4
cmp eax, ebp
jae 0x10042034
mov eax, ebp
push eax
push esi
call fcn.10043c80
mov ecx, dword [esp + 0x20]
add esp, 8
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x1003d8ee
mov eax, dword [ebp + 8]
test eax, eax
je 0x10042057
dec eax
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0xa4]
test eax, eax
je case.default.0x1003d8ee
mov ecx, dword [esp + 0x374]
mov eax, dword [ecx + 0x58]
test ah, 8
jne case.default.0x1003d8ee
mov ebp, dword [ebp + 0x10]
test ebp, ebp
mov eax, ebp
jne 0x10042083
mov eax, dword [ecx + 0xa8]
test eax, eax
je case.default.0x1003d8ee
push eax
push ecx
call fcn.10049f60
mov edx, dword [edi + 0xa8]
mov esi, eax
push esi
push edx
call dword [edi + 0xa4]
push esi
push edi
call fcn.10029770
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x1003d87f
mov ebx, dword [esp + 0x374]
jmp 0x10041dfd
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x50], eax
mov cl, byte [ebp + 8]
test eax, eax
mov byte [ebx + 0x56], cl
mov dword [ebx + 0x4c], edx
je 0x1004216a
mov al, byte [ebp + 3]
test al, al
je 0x10042120
and eax, 0xff
mov eax, dword [eax*4 + 0x100817d4]
test eax, eax
je 0x10042122
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x10042122
mov esi, dword [esp + 0x14]
push ecx
push eax
lea edi, [ebx + 0x2c]
push str._s_constraint_failed:__s
push esi
push edi
call fcn.1003ae80
add esp, 0x14
jmp 0x10042148
xor eax, eax
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
lea edi, [ebx + 0x2c]
je 0x10042138
push ecx
push 0x1009133c
jmp 0x1004213e
push eax
push str._s_constraint_failed
push esi
push edi
call fcn.1003ae80
add esp, 0x10
mov eax, dword [edi]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push str.abort_at__d_in___s_:__s
push eax
call fcn.1002ae70
add esp, 0x14
jmp 0x1004216e
mov esi, dword [esp + 0x14]
push ebx
call fcn.10039220
mov ebp, 5
add esp, 4
cmp eax, ebp
jne 0x100421e7
mov dword [ebx + 0x50], ebp
jmp 0x10041e5f
mov ebx, dword [esp + 0x374]
jmp 0x10041df5
lea ecx, [esp + 0x228]
push ecx
call fcn.10038d00
add esp, 4
jmp 0x1003f081
mov edx, dword [esp + 0x1c]
mov ebp, 5
mov dword [ebx + 0x4c], edx
mov byte [esi + 0x3e], 0
mov dword [ebx + 0x50], ebp
jmp 0x10041e5f
test ebp, ebp
je 0x100421f9
push 0x204
push esi
call fcn.1007be70
mov ebx, dword [esp + 0x37c]
add esp, 8
mov byte [esi + 0x3e], 1
push esi
call fcn.1007b9d0
add esp, 4
mov ebp, dword [ebx + 0x50]
neg ebp
sbb ebp, ebp
and ebp, 0xffffff9c
add ebp, 0x65
jmp 0x10041e5f
mov ebx, dword [esp + 0x374]
push 1
push ebx
call fcn.1003ae00
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x10041e5f
mov al, byte [esp + 0x24]
push ebx
mov byte [esi + 0x3e], al
call fcn.10039220
mov ebp, 5
add esp, 4
cmp eax, ebp
jne 0x100421de
mov al, byte [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov dl, 1
mov dword [ebx + 0x4c], ecx
sub dl, al
mov byte [esi + 0x3e], dl
mov dword [ebx + 0x50], ebp
jmp 0x10041e5f
mov dword [esp + 0x10], 8
mov ebx, dword [esp + 0x374]
jmp 0x10042293
mov ebx, dword [esp + 0x374]
mov eax, dword [esp + 0x1c]
mov ebp, 5
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x50], ebp
jmp 0x10041e5f
push 0x11698
call fcn.1007d9d0
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x10042293
mov dword [esp + 0x10], 0xd
mov esi, dword [esp + 0x14]
mov al, byte [esi + 0x40]
test al, al
je 0x100422a4
mov dword [esp + 0x10], 7
jmp 0x100422b2
cmp dword [esp + 0x10], 0xc0a
je 0x10041dfd
mov ecx, dword [esp + 0x10]
push ecx
call fcn.1007bf50
push eax
push 0x1009133c
lea edx, [ebx + 0x2c]
push esi
push edx
call fcn.1003ae80
add esp, 0x14
jmp 0x10041dfd
mov eax, 9
push eax
mov dword [esp + 0x14], eax
mov dword [ebx + 0x50], eax
call fcn.1007bf50
push eax
push 0x1009133c
lea eax, [ebx + 0x2c]
push esi
push eax
call fcn.1003ae80
add esp, 0x14
jmp 0x10041dfd