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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x100cd130]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, ecx
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x114], ecx
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x4d]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xcc], eax
mov byte [ebp - 0xf1], al
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x110], eax
mov eax, dword [ebx + 0x30]
mov byte [ebp - 0xf0], cl
mov ecx, dword [esi + 8]
mov dword [ebp - 0x100], eax
mov eax, dword [ebx + 0x34]
mov edi, esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xfc], eax
call fcn.10048a89
cmp dword [esi + 0x5c], 7
je 0x1004f995
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x14], eax
mov ecx, dword [ebx + 0xe0]
mov dword [ebx + 0x1b4], eax
test ecx, ecx
jne 0x10050e34
cmp dword [ebx + 0x114], eax
mov eax, dword [esi + 0x58]
setne cl
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x118], ecx
cmp byte [ebx + 0x1e], 0
jne 0x1004f995
mov edi, dword [ebp - 0xd8]
imul edi, edi, 0x14
add edi, dword [ebp - 0x114]
cmp dword [ebp - 0x118], 0
mov dword [ebp - 0xec], edi
je 0x1004bbb7
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x11c]
cmp ecx, dword [ebp - 0x10c]
jne 0x1004bbb1
push dword [eax + 0x118]
call dword [eax + 0x114]
pop ecx
test eax, eax
jne 0x10050c4f
and dword [ebp - 0x10c], eax
inc dword [ebp - 0x10c]
test byte [edi + 2], 2
mov ebx, dword [ebp - 0xe0]
je 0x1004bbe3
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xdc], eax
call fcn.10047648
mov ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
movzx eax, byte [edi]
dec eax
cmp eax, 0x90
ja case.0x1004bbf2.17
jmp dword [eax*4 + 0x10050e50]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xe0]
test eax, eax
jne 0x10050e2e
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xd8], edi
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, ebx
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd8]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0xd8], eax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
imul eax, eax, 0x28
mov eax, dword [eax + ebx + 0x10]
jmp 0x1004bc3c
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
push 4
pop eax
mov word [edi + 0x1c], ax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd8]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov eax, dword [ebp - 0xc8]
jmp 0x1004bc3c
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
test byte [eax + ebx + 0x1c], 1
je case.0x1004bbf2.17
cmp dword [edi + 4], 0
jne 0x10050c5e
lea ecx, [esi + 0xa8]
mov eax, dword [ecx]
test eax, eax
je 0x10050c5e
mov edx, dword [eax + 0x3c]
dec dword [esi + 0xb0]
mov ebx, dword [ebp - 0xd0]
mov dword [ecx], edx
mov ecx, dword [esi + 0x6c]
add dword [ebx + 0x40], ecx
mov dword [ebx + 0x3c], ecx
call fcn.10049157
cmp dword [edi + 8], 4
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0x100], ecx
mov ecx, dword [ebx + 0x34]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xfc], ecx
jne 0x1004bcf9
mov ecx, dword [esi + 4]
imul eax, eax, 0x14
mov eax, dword [eax + ecx + 8]
dec eax
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x114], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xe0], eax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x1004bbf2.17
mov edi, dword [edi + 0x10]
mov ecx, dword [edi]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 0x14], ecx
jmp case.0x1004bbf2.17
mov eax, dword [ebp - 0xdc]
push 8
pop ecx
mov word [eax + 0x1c], cx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 0x10]
mov byte [edi], 9
call fcn.100379dd
cmp byte [ebp - 0xf0], 1
mov dword [edi + 4], eax
je 0x1004bdee
mov ebx, dword [ebp - 0xdc]
push 1
push ecx
xor eax, eax
or ecx, 0xffffffff
mov edx, ebx
call fcn.10047aba
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
cmp eax, 0x12
je 0x1004c733
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, ebx
call fcn.1004739e
pop ecx
test eax, eax
jne 0x1004f995
and dword [ebx + 0x24], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [ebx + 0x1c], ax
cmp byte [edi + 1], 0xff
jne 0x1004bdde
push dword [edi + 0x10]
push dword [ebp - 0xd0]
call fcn.10035f73
pop ecx
pop ecx
mov byte [edi + 1], 0xff
mov eax, dword [ebx + 4]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
cmp eax, dword [ecx + 0x48]
jg 0x1004c733
mov eax, dword [ebp - 0xdc]
mov ecx, 0xa02
mov word [eax + 0x1c], cx
mov ecx, dword [edi + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 0x18], ecx
mov cl, byte [ebp - 0xf0]
mov byte [eax + 0x1f], cl
jmp case.0x1004bbf2.17
mov ecx, dword [ebp - 0xdc]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 4]
push 0
push dword [edi + 0x10]
mov edi, dword [ebp - 0xdc]
xor eax, eax
mov edx, edi
call fcn.10047aba
pop ecx
pop ecx
mov al, byte [ebp - 0xf0]
mov byte [edi + 0x1f], al
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x48]
imul eax, eax, 0x28
lea edi, [eax + ecx - 0x28]
mov ecx, edi
mov dword [ebp - 0xc8], edi
call fcn.100479d5
test eax, eax
jne 0x1004c733
push 0x800
push edi
mov ebx, dword [ebp - 0xdc]
call fcn.100479fc
pop ecx
pop ecx
jmp case.0x1004bbf2.17
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xc4], edx
mov eax, dword [edi + 4]
mov dword [ebp - 0xc0], eax
imul eax, eax, 0x28
mov ecx, dword [edi + 8]
mov dword [ebp - 0xbc], ecx
imul ecx, ecx, 0x28
add ecx, ebx
add eax, ebx
mov dword [ebp - 0xe8], eax
mov edi, ecx
mov dword [ebp - 0xdc], ecx
test edx, edx
je 0x1004bf17
dec dword [ebp - 0xc4]
mov eax, dword [edi + 0x24]
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xc8], eax
and dword [edi + 0x24], 0
mov eax, edi
call fcn.10047a96
mov eax, dword [ebp - 0xc8]
add dword [ebp - 0xe8], 0x28
mov ecx, ebx
mov dword [ecx + 0x24], eax
add edi, 0x28
cmp dword [ebp - 0xc4], 0
jne 0x1004bed3
mov dword [ebp - 0xdc], edi
dec dword [ebp - 0xc4]
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xe0]
push 0x1000
push eax
mov dword [ebp - 0xdc], ebx
call fcn.100479fc
mov eax, 0x1000
pop ecx
pop ecx
test word [ebx + 0x1c], ax
je case.0x1004bbf2.17
mov eax, ebx
call fcn.1004747d
test eax, eax
jne 0x1004f995
jmp case.0x1004bbf2.17
mov ebx, dword [edi + 8]
mov eax, dword [edi + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xe0]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
push 0x1000
mov dword [ebp - 0xdc], ebx
push eax
jmp 0x1004be90
push 0
mov eax, esi
call fcn.10049804
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne case.0x1004bbf2.17
push 1
push esi
call fcn.10049717
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne case.0x1004bbf2.17
mov eax, dword [esi + 0x54]
inc eax
inc eax
or eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [edi + 4]
and dword [ebp - 0xc4], 0
imul eax, eax, 0x28
add ebx, eax
mov dword [esi + 0x14], ebx
mov dword [ebp - 0xc8], ebx
cmp dword [edi + 8], 0
jle 0x1004c054
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
imul eax, eax, 0x28
add eax, ecx
mov ecx, 0x1000
test word [eax + 0x1c], cx
je 0x1004c01b
call fcn.1004747d
test eax, eax
jne 0x1004f995
mov eax, dword [ebp - 0xc4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xc8]
call fcn.1004752b
mov ecx, dword [ebp - 0xc4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xc8]
call fcn.1004b89e
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
cmp eax, dword [edi + 8]
jl 0x1004bff2
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1e], 0
jne 0x1004f995
mov eax, dword [ebp - 0xd8]
inc eax
push 0x64
mov dword [esi + 0x58], eax
pop edi
jmp 0x1004c7b2
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
imul eax, eax, 0x28
mov edi, dword [edi + 0xc]
imul ebx, ebx, 0x28
add eax, dword [ebp - 0xe0]
imul edi, edi, 0x28
add ebx, dword [ebp - 0xe0]
add edi, dword [ebp - 0xe0]
mov cl, byte [ebx + 0x1c]
mov dword [ebp - 0xe8], eax
movzx eax, word [eax + 0x1c]
or cl, al
mov dword [ebp - 0xdc], edi
test cl, 1
je 0x1004c0be
call fcn.100478af
jmp case.0x1004bbf2.17
test eax, 0x4000
je 0x1004c0d2
mov eax, dword [ebp - 0xe8]
call fcn.100474d8
jmp 0x1004c0d4
xor eax, eax
test eax, eax
jne 0x1004f995
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x1004c0f0
mov eax, ebx
call fcn.100474d8
jmp 0x1004c0f2
xor eax, eax
test eax, eax
jne 0x1004f995
mov eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 0x12
jne 0x1004c122
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, dword [ebp - 0xe8]
call fcn.10047574
pop ecx
test eax, eax
jne 0x1004f995
test byte [ebx + 0x1c], 0x12
jne 0x1004c140
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, ebx
call fcn.10047574
pop ecx
test eax, eax
jne 0x1004f995
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0xe8]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc4], edx
mov eax, dword [eax + 0x48]
cdq
cmp dword [ebp - 0xc4], edx
jg 0x1004c733
jl 0x1004c17d
cmp dword [ebp - 0xc8], eax
ja 0x1004c733
mov ax, word [edi + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
cmp edi, ebx
sete al
push eax
mov eax, dword [ebp - 0xc8]
add eax, 2
call fcn.100473be
pop ecx
test eax, eax
jne 0x1004f995
cmp edi, ebx
je 0x1004c1c5
push dword [ebx + 0x18]
push dword [ebx + 4]
push dword [edi + 4]
call fcn.1008a3c0
add esp, 0xc
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebx + 0x18]
add eax, dword [edi + 4]
push eax
call fcn.1008a3c0
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edi + 4]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
add esp, 0xc
or word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov dword [edi + 0x18], eax
jmp 0x1004be54
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xe0]
mov dword [ebp - 0xe8], esi
call fcn.1004b984
mov esi, dword [edi + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], esi
call fcn.1004b984
mov ebx, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
imul ebx, ebx, 0x28
movzx ecx, word [ecx + 0x1c]
add ebx, dword [ebp - 0xe0]
mov eax, esi
movzx eax, word [eax + 0x1c]
or eax, ecx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xc8], eax
test al, 1
jne 0x1004c534
mov eax, esi
mov al, byte [eax + 0x1c]
mov esi, dword [ebp - 0xe8]
and al, byte [esi + 0x1c]
test al, 4
je 0x1004c3ec
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0xbc], ecx
mov edx, dword [edx + 0x10]
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xe4]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0xb4], edx
movzx edx, byte [edi]
sub edx, 0x56
je 0x1004c389
dec edx
je 0x1004c374
dec edx
je 0x1004c359
dec edx
mov edx, eax
je 0x1004c30e
or edx, ecx
je 0x1004c534
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x1004c2f9
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ecx
push ecx
push eax
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.10091fb0
jmp 0x1004c34b
or edx, ecx
je 0x1004c534
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x1004c338
cmp dword [ebp - 0xb8], 0
jne 0x1004c338
cmp dword [ebp - 0xb4], 0x80000000
je 0x1004c3ec
push ecx
push eax
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.10091f00
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
jmp 0x1004c39c
push ecx
push eax
lea esi, [ebp - 0xb8]
call fcn.10038627
pop ecx
pop ecx
test eax, eax
je 0x1004c39c
mov esi, dword [ebp - 0xe8]
jmp 0x1004c3ec
push ecx
push eax
lea eax, [ebp - 0xb8]
call fcn.100385db
pop ecx
pop ecx
test eax, eax
jne 0x1004c3ec
jmp 0x1004c39c
push ecx
push eax
lea edi, [ebp - 0xb8]
call fcn.10038559
pop ecx
pop ecx
test eax, eax
jne 0x1004c3e6
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebx + 0x14], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [ebx + 0x1c], ax
mov esi, dword [ebp - 0xd4]
inc dword [ebp - 0xd8]
cmp dword [ebp - 0xcc], 0
jne 0x1004c752
mov ebx, dword [ebp - 0xd0]
jmp 0x1004bb5a
mov edi, dword [ebp - 0xec]
mov eax, esi
call fcn.10047782
fstp qword [ebp - 0xb0]
mov eax, dword [ebp - 0xe4]
call fcn.10047782
fst qword [ebp - 0xa8]
movzx eax, byte [edi]
sub eax, 0x56
je 0x1004c4d5
dec eax
je 0x1004c4cd
dec eax
je 0x1004c4c5
dec eax
je 0x1004c4ae
fld qword [ebp - 0xb0]
call fcn.1009f206
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
call fcn.1009f206
mov ecx, dword [ebp - 0xc0]
or ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
je 0x1004c534
mov ecx, dword [ebp - 0xc0]
and ecx, dword [ebp - 0xbc]
cmp ecx, 0xffffffff
jne 0x1004c487
and dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 1
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
push edx
push eax
call fcn.10091fb0
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
fild qword [ebp - 0x130]
jmp 0x1004c4db
fldz
fcomp qword [ebp - 0xb0]
fnstsw ax
test ah, 0x44
jnp 0x1004c532
fdiv qword [ebp - 0xb0]
jmp 0x1004c4db
fmul qword [ebp - 0xb0]
jmp 0x1004c4db
fsub qword [ebp - 0xb0]
jmp 0x1004c4db
fadd qword [ebp - 0xb0]
fstp qword [ebp - 0xa8]
push ecx
fld qword [ebp - 0xa8]
push ecx
fstp qword [esp]
call fcn.100379b4
add esp, 8
test eax, eax
jne 0x1004c534
mov ax, word [ebx + 0x1c]
fld qword [ebp - 0xa8]
mov ecx, 0xbf08
fstp qword [ebx + 8]
and ax, cx
or ax, 8
mov word [ebx + 0x1c], ax
test byte [ebp - 0xc8], 8
jne 0x1004c3c2
mov esi, dword [ebp - 0xdc]
call fcn.100477cb
jmp 0x1004c3c2
fstp st(0)
mov edi, ebx
call fcn.100478af
jmp 0x1004c3c2
movzx ecx, byte [edi + 3]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 8]
and dword [ebp - 0xc8], 0
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xc4], eax
test ecx, ecx
jle 0x1004c5c9
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0xc8]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0xc4]
mov ecx, 0x1000
test word [eax + 0x1c], cx
je 0x1004c59e
call fcn.1004747d
test eax, eax
jne 0x1004f995
mov ecx, dword [ebp - 0xc4]
call fcn.1004b89e
inc dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
add eax, 0x28
cmp ecx, dword [ebp - 0x7c]
mov dword [ebp - 0xc4], eax
jl 0x1004c574
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 0x10]
jne 0x1004c5db
and dword [ebp - 0xbc], 0
jmp 0x1004c5e3
mov dword [ebp - 0xbc], eax
mov eax, dword [eax]
mov ebx, dword [ebp - 0xdc]
and dword [ebp - 0x98], 0
and dword [ebp - 0x94], 0
mov dword [ebp - 0xc0], eax
xor eax, eax
inc eax
mov word [ebp - 0x9c], ax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
call fcn.10047a96
mov eax, dword [ebp - 0x9c]
and dword [ebp - 0x8c], 0
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x9c], ax
mov eax, dword [ebp - 0xc0]
test byte [eax + 3], 8
je 0x1004c64f
mov eax, dword [edi - 4]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xd0]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebx + 0x34], eax
push dword [ebp - 0x80]
lea eax, [ebp - 0xc0]
push dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0xc0]
call dword [eax + 0xc]
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x100], eax
mov eax, dword [ebx + 0x34]
add esp, 0xc
cmp dword [ebp - 0xbc], 0
mov dword [ebp - 0xfc], eax
je 0x1004c6bd
push dword [edi + 4]
mov edi, dword [ebp - 0xbc]
call fcn.10049b91
mov eax, dword [ebp - 0xec]
pop ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf9
cmp byte [ebx + 0x1e], 0
jne 0x10050cfa
cmp dword [ebp - 0x8c], 0
je 0x1004c6fb
lea eax, [ebp - 0xb8]
push eax
call fcn.1004a695
pop ecx
push eax
push 0x100b6914
push ebx
lea edi, [esi + 0x38]
call fcn.100362b9
mov eax, dword [ebp - 0x8c]
add esp, 0xc
mov dword [ebp - 0xcc], eax
movzx eax, byte [ebp - 0xf0]
push eax
lea eax, [ebp - 0xb8]
call fcn.1004739e
mov eax, dword [ebp - 0xdc]
pop ecx
lea ebx, [ebp - 0xb8]
call fcn.10047a96
mov ecx, dword [ebp - 0xdc]
call fcn.100479d5
test eax, eax
je case.0x1004bbf2.17
push str.string_or_blob_too_big
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
mov dword [ebp - 0xcc], 0x12
pop ecx
pop ecx
push dword [esi + 0x38]
mov edi, dword [ebp - 0xcc]
push dword [esi + 0xa0]
mov dword [esi + 0x5c], edi
push dword [ebp - 0xd8]
push str.statement_aborts_at__d:___s___s
push edi
call fcn.10037317
add esp, 0x14
mov eax, esi
call fcn.10049859
cmp edi, 0xc0a
jne 0x1004c791
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
xor edi, edi
inc edi
cmp byte [ebp - 0xf1], 0
jbe 0x1004c7b2
movzx eax, byte [ebp - 0xf1]
mov ebx, dword [ebp - 0xd0]
dec eax
push eax
call fcn.100582e5
pop ecx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x100]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0xfc]
mov ebx, esi
mov dword [eax + 0x34], ecx
call fcn.10048adc
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10084554
leave
ret
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
imul eax, eax, 0x28
mov ebx, dword [edi + 4]
imul ecx, ecx, 0x28
add eax, dword [ebp - 0xe0]
imul ebx, ebx, 0x28
add ecx, dword [ebp - 0xe0]
add ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], eax
mov al, byte [ecx + 0x1c]
or al, byte [ebx + 0x1c]
test al, 1
je 0x1004c821
mov edi, dword [ebp - 0xdc]
jmp 0x1004c0b4
call fcn.1004771e
mov ecx, ebx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
call fcn.1004771e
mov ebx, eax
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], edx
mov al, byte [edi]
mov byte [ebp - 0xb0], al
cmp al, 0x52
jne 0x1004c864
and dword [ebp - 0xc8], ebx
and dword [ebp - 0xc4], edx
jmp 0x1004c972
cmp al, 0x53
jne 0x1004c879
or dword [ebp - 0xc8], ebx
or dword [ebp - 0xc4], edx
jmp 0x1004c972
mov ecx, ebx
or ecx, edx
je 0x1004c972
xor edi, edi
cmp edx, edi
jg 0x1004c8cb
jl 0x1004c88f
cmp ebx, edi
jae 0x1004c8c0
mov cl, 0xa9
sub cl, al
cmp edx, 0xffffffff
mov al, cl
mov byte [ebp - 0xb0], al
jl 0x1004c8af
jg 0x1004c8a7
cmp ebx, 0xffffffc0
jbe 0x1004c8af
neg ebx
adc edx, edi
neg edx
jmp 0x1004c8b4
push 0x40
pop ebx
xor edx, edx
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb8], ebx
cmp edx, edi
jl 0x1004c8f7
jg 0x1004c8cb
cmp ebx, 0x40
jb 0x1004c8f7
cmp dword [ebp - 0xc4], edi
jg 0x1004c8e6
jl 0x1004c8dd
cmp dword [ebp - 0xc8], edi
jae 0x1004c8e6
cmp al, 0x54
je 0x1004c8e6
or eax, 0xffffffff
jmp 0x1004c8e8
xor eax, eax
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
jmp 0x1004c972
mov edx, dword [ebp - 0xc4]
cmp al, 0x54
mov eax, dword [ebp - 0xc8]
mov ecx, ebx
jne 0x1004c91c
call fcn.1009f1b0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x1004c95a
call fcn.1009bf30
cmp dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jg 0x1004c95a
jl 0x1004c93f
cmp dword [ebp - 0xc8], edi
jae 0x1004c95a
push 0x40
pop ecx
or edx, 0xffffffff
sub ecx, ebx
mov eax, edx
call fcn.1009f1b0
or dword [ebp - 0xc0], eax
or dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x14], ecx
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x1004bbf2.17
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, ebx
call fcn.10047821
mov eax, dword [edi + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x1004c3c2
mov ebx, dword [edi + 4]
push dword [ebp - 0xf0]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xe0]
push 0x63
mov eax, ebx
call fcn.1004b9ff
movzx eax, word [ebx + 0x1c]
pop ecx
pop ecx
test al, 4
jne 0x1004c9fe
mov edi, dword [edi + 8]
test edi, edi
jne 0x1004bc10
mov dword [ebp - 0xcc], 0x14
jmp 0x10050dce
and eax, 0xbf04
or eax, 4
mov word [ebx + 0x1c], ax
jmp case.0x1004bbf2.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
movzx ebx, word [edi + 0x1c]
test bl, 4
je case.0x1004bbf2.17
mov eax, edi
call fcn.10047782
fstp qword [edi + 8]
and ebx, 0xbf08
or ebx, 8
mov word [edi + 0x1c], bx
jmp case.0x1004bbf2.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x1004bbf2.17
push dword [ebp - 0xf0]
mov ecx, eax
shr ecx, 3
and ecx, 2
or ecx, eax
push 0x61
mov eax, edi
mov word [edi + 0x1c], cx
call fcn.1004b9ff
mov eax, 0x4000
pop ecx
pop ecx
test word [edi + 0x1c], ax
je 0x1004ca8d
mov eax, edi
call fcn.100474d8
mov dword [ebp - 0xcc], eax
jmp 0x1004ca94
and dword [ebp - 0xcc], 0
mov eax, 0xbfe3
and word [edi + 0x1c], ax
jmp case.0x1004bbf2.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x1004bbf2.17
test al, 0x10
jne 0x1004cadd
push dword [ebp - 0xf0]
mov eax, edi
push 0x61
call fcn.1004b9ff
mov ax, word [edi + 0x1c]
pop ecx
pop ecx
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
jmp 0x1004cae2
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, ebx
call fcn.10047845
jmp case.0x1004bbf2.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
test byte [edi + 0x1c], 1
jne case.0x1004bbf2.17
mov esi, edi
call fcn.10047821
jmp 0x1004c3c2
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
movzx ebx, word [edi + 0x1c]
test bl, 1
jne case.0x1004bbf2.17
jmp 0x1004ca24
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul ecx, ecx, 0x28
imul eax, eax, 0x28
add ecx, ebx
mov dx, word [ecx + 0x1c]
add eax, ebx
mov dword [ebp - 0xe4], eax
mov word [ebp - 0xc2], dx
mov ax, word [eax + 0x1c]
mov word [ebp - 0xc0], ax
or al, dl
test al, 1
mov al, byte [edi + 3]
mov dword [ebp - 0xe8], ecx
je 0x1004cbbd
test al, al
jns 0x1004cb89
mov al, byte [ebp - 0xc0]
and al, dl
test al, 1
push 0
pop eax
sete al
jmp 0x1004cc53
test al, 0x10
je 0x1004cbb0
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, ebx
mov dword [ebp - 0xdc], edi
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
jmp 0x1004cae2
test al, 8
je case.0x1004bbf2.17
jmp 0x1004bc0d
and al, 0x67
mov byte [ebp - 0xc4], al
je 0x1004cc08
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe8]
push dword [ebp - 0xc4]
call fcn.1004b9ff
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
push dword [ebp - 0xc4]
call fcn.1004b9ff
mov eax, dword [ebp - 0xd0]
add esp, 0x10
cmp byte [eax + 0x1e], 0
jne 0x1004f995
mov ecx, dword [ebp - 0xe8]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1004cc20
mov eax, ecx
call fcn.100474d8
mov ecx, dword [ebp - 0xe4]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1004cc38
mov eax, ecx
call fcn.100474d8
push dword [edi + 0x10]
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
call fcn.10047c0f
pop ecx
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xc8], eax
movzx edx, byte [edi]
sub edx, 0x4b
je 0x1004cc9a
dec edx
je 0x1004cc91
dec edx
je 0x1004cc88
dec edx
je 0x1004cc7f
dec edx
je 0x1004cc76
xor edx, edx
test eax, eax
setge dl
jmp 0x1004cca1
xor edx, edx
test eax, eax
setl dl
jmp 0x1004cca1
xor edx, edx
test eax, eax
setle dl
jmp 0x1004cca1
xor edx, edx
test eax, eax
setg dl
jmp 0x1004cca1
xor edx, edx
test eax, eax
sete dl
jmp 0x1004cca1
xor edx, edx
test eax, eax
setne dl
mov dword [ebp - 0xc8], edx
test byte [edi + 3], 0x10
je 0x1004ccde
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, ebx
mov ax, word [edi + 0x1c]
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
cdq
mov dword [ebp - 0xdc], edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x1004ccf1
cmp dword [ebp - 0xc8], 0
je 0x1004ccf1
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xd8], edi
mov al, byte [ebp - 0xc2]
mov byte [ecx + 0x1c], al
mov al, byte [ebp - 0xc0]
mov ecx, dword [ebp - 0xe4]
mov byte [ecx + 0x1c], al
jmp case.0x1004bbf2.17
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x110], eax
jmp case.0x1004bbf2.17
mov edx, dword [edi + 0xc]
mov dword [ebp - 0xc8], edx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xb8], ecx
mov eax, dword [edi + 4]
mov dword [ebp - 0xc0], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0xbc], eax
xor eax, eax
mov dword [ebp - 0xc4], eax
test edx, edx
jle 0x1004cddf
mov ebx, dword [ebp - 0x110]
jmp 0x1004cd5e
mov ecx, dword [ebp - 0xb8]
test ebx, ebx
je 0x1004cd67
mov edx, dword [ebx + eax*4]
jmp 0x1004cd69
mov edx, eax
mov dword [ebp - 0xb4], edx
mov edi, dword [ecx + eax*4 + 0xc]
mov dword [ebp - 0xb0], edi
mov ecx, dword [ecx + 8]
movzx eax, byte [ecx + eax]
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xbc]
add eax, edx
add edx, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
imul edx, edx, 0x28
add edx, dword [ebp - 0xe0]
push edi
call fcn.10047c0f
pop ecx
mov dword [ebp - 0x108], eax
test eax, eax
jne 0x1004cdd0
mov eax, dword [ebp - 0xc4]
inc eax
cmp eax, dword [ebp - 0xc8]
mov dword [ebp - 0xc4], eax
jl 0x1004cd58
jmp 0x1004cddf
cmp dword [ebp - 0xac], 0
je 0x1004cddf
neg dword [ebp - 0x108]
and dword [ebp - 0x110], 0
jmp case.0x1004bbf2.17
cmp dword [ebp - 0x108], 0
jge 0x1004cdfc
mov edi, dword [edi + 4]
jmp 0x1004bc10
je 0x1004bc0d
mov edi, dword [edi + 0xc]
jmp 0x1004bc10
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, ebx
test byte [ecx + 0x1c], 1
je 0x1004ce1d
push 2
pop eax
jmp 0x1004ce2d
call fcn.1004771e
or eax, edx
je 0x1004ce2b
xor eax, eax
inc eax
jmp 0x1004ce2d
xor eax, eax
mov dword [ebp - 0xc8], eax
mov ecx, dword [edi + 8]
imul ecx, ecx, 0x28
add ecx, ebx
test byte [ecx + 0x1c], 1
je 0x1004ce4d
mov dword [ebp - 0xc4], 2
jmp 0x1004ce6f
call fcn.1004771e
or eax, edx
mov eax, dword [ebp - 0xc8]
je 0x1004ce68
mov dword [ebp - 0xc4], 1
jmp 0x1004ce6f
and dword [ebp - 0xc4], 0
mov ecx, dword [ebp - 0xc4]
imul eax, eax, 3
cmp byte [edi], 0x45
jne 0x1004ce87
movzx eax, byte [eax + ecx + 0x100ad688]
jmp 0x1004ce8f
movzx eax, byte [eax + ecx + 0x100ad694]
mov dword [ebp - 0xc8], eax
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, ebx
mov dword [ebp - 0xdc], edi
cmp eax, 2
je 0x1004cb9b
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xbf04
and ax, cx
mov dword [edi + 0x14], edx
or ax, 4
jmp 0x1004cae2
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
imul ecx, ecx, 0x28
imul edi, edi, 0x28
add ecx, ebx
add edi, ebx
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xdc], edi
jne 0x1004c0b4
call fcn.1004771e
or eax, edx
jne 0x1004cef4
inc eax
jmp 0x1004cef6
xor eax, eax
cdq
push edx
push eax
mov esi, edi
call fcn.1004791a
pop ecx
pop ecx
jmp 0x1004c3c2
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
imul ecx, ecx, 0x28
imul edi, edi, 0x28
add ecx, ebx
add edi, ebx
test byte [ecx + 0x1c], 1
mov dword [ebp - 0xdc], edi
jne 0x1004c0b4
call fcn.1004771e
not eax
not edx
jmp 0x1004cef7
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, ebx
xor ebx, ebx
inc ebx
test byte [eax + 0x1c], bl
je 0x1004cf47
mov eax, dword [edi + 0xc]
jmp 0x1004cf78
call fcn.10047782
fcomp qword [0x100bbae0]
fnstsw ax
test ah, 0x44
jnp 0x1004cf61
mov dword [ebp - 0xc8], ebx
jmp 0x1004cf68
and dword [ebp - 0xc8], 0
cmp byte [edi], 0x1b
jne 0x1004cf7e
xor eax, eax
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jmp 0x1004cbb2
mov eax, dword [edi + 4]
imul eax, eax, 0x28
test byte [eax + ebx + 0x1c], 1
jmp 0x1004cbb2
mov eax, dword [edi + 4]
imul eax, eax, 0x28
test byte [eax + ebx + 0x1c], 1
jne case.0x1004bbf2.17
jmp 0x1004bc0d
mov eax, dword [edi + 4]
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + 8]
and dword [ebp - 0xb0], 0
mov dword [ebp - 0xb4], eax
xor eax, eax
push 0xa
pop ecx
lea edi, [ebp - 0x88]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0x8c], eax
mov dx, word [eax + 0x1c]
mov edi, 0xbf01
and dx, di
or dx, 1
mov word [eax + 0x1c], dx
and dword [ebp - 0xac], 0
mov eax, dword [esi + 0x44]
mov edx, dword [ebp - 0xb8]
mov edi, dword [eax + edx*4]
mov dword [ebp - 0xb0], edi
mov eax, dword [edi]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x1004d0c5
call fcn.10049cb8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov edi, dword [ebp - 0xb0]
cmp byte [edi + 0x1c], al
je 0x1004d050
and dword [ebp - 0xc8], eax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 0x4c]
cmp eax, dword [esi + 0x54]
jne 0x1004d06f
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xc8], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0xac], eax
jmp 0x1004d105
cmp byte [edi + 0x1f], 0
je 0x1004d09a
mov eax, dword [ebp - 0xa8]
lea edi, [ebp - 0xc0]
call fcn.10042cc1
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc8], eax
jmp 0x1004d0f6
mov edi, dword [ebp - 0xa8]
mov esi, edi
call fcn.10042c99
mov eax, dword [edi + 0x2c]
and dword [ebp - 0xcc], 0
mov edi, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0xc8], eax
jmp 0x1004d105
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x1004d0fe
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0x48], eax
mov edx, dword [eax + 0x18]
mov dword [ebp - 0xc8], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0xac], eax
test byte [ecx + 3], 0x20
je 0x1004d0f0
xor eax, eax
jmp 0x1004d0f3
mov eax, dword [esi + 0x54]
mov dword [edi + 0x4c], eax
mov edi, dword [ebp - 0xb0]
jmp 0x1004d105
and dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xc8]
test eax, eax
je case.0x1004bbf2.17
mov ecx, dword [ebp - 0xd0]
cmp eax, dword [ecx + 0x48]
ja 0x1004c733
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x9c], ecx
mov eax, dword [edi + 0x54]
mov dword [ebp - 0xa4], eax
mov edx, dword [edi + 0x4c]
cmp edx, dword [esi + 0x54]
jne 0x1004d14a
mov ecx, dword [edi + 0x58]
mov dword [ebp - 0xa0], ecx
jmp 0x1004d389
lea eax, [eax + ecx*4]
mov dword [ebp - 0xa0], eax
xor ebx, ebx
mov dword [ebp - 0x4c], ebx
mov dword [edi + 0x58], eax
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x50], ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp - 0xac]
cmp eax, ebx
je 0x1004d188
mov dword [ebp - 0x90], eax
jmp 0x1004d1ed
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x1f], 0
mov ecx, dword [ebp - 0xa8]
je 0x1004d1a5
xor eax, eax
cmp byte [ecx + 0x53], 1
jne 0x1004d1c2
push ebx
jmp 0x1004d1af
xor eax, eax
cmp byte [ecx + 0x53], 1
jne 0x1004d1c2
push 1
lea eax, [ebp - 0x4c]
push eax
mov esi, ecx
call fcn.10043085
mov esi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x90], eax
cmp ecx, dword [ebp - 0x4c]
ja 0x1004d1e4
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xac], eax
mov dword [ecx + 0x5c], eax
jmp 0x1004d1ed
mov eax, dword [ebp - 0xb0]
mov dword [eax + 0x5c], ebx
mov ecx, dword [ebp - 0x90]
mov al, byte [ecx]
cmp al, 0x80
jae 0x1004d204
movzx eax, al
mov dword [ebp - 0x58], eax
xor eax, eax
inc eax
jmp 0x1004d20f
lea edi, [ebp - 0x58]
call fcn.100383ae
movzx eax, al
cmp dword [ebp - 0x58], 0x18003
movzx eax, al
mov dword [ebp - 0x50], eax
jbe 0x1004d228
push 0xfdf7
jmp 0x1004d50e
mov ebx, dword [ebp - 0x9c]
imul ebx, ebx, 5
add ebx, 3
cmp ebx, dword [ebp - 0x58]
mov dword [ebp - 0x98], ebx
jle 0x1004d248
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x98], ebx
cmp dword [ebp - 0xac], 0
jne 0x1004d2a4
cmp dword [ebp - 0x4c], ebx
jge 0x1004d2a4
mov ecx, dword [ebp - 0xa8]
xor eax, eax
and dword [ebp - 0x88], eax
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0xb0]
movzx eax, byte [eax + 0x1f]
push eax
push 0
lea eax, [ebp - 0x88]
call fcn.10047dd8
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne case.0x1004bbf2.17
mov eax, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x90], eax
jmp 0x1004d2aa
mov eax, dword [ebp - 0x90]
lea ecx, [eax + ebx]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x50]
add eax, ecx
xor ecx, ecx
cmp dword [ebp - 0x9c], ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x94], ecx
jle 0x1004d343
jmp 0x1004d2cd
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xa0]
jae 0x1004d3dc
mov edx, dword [ebp - 0x58]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x60]
mov al, byte [ecx]
mov edx, dword [ebp - 0xa4]
cmp al, 0x80
jae 0x1004d302
mov ecx, dword [ebp - 0x94]
movzx eax, al
mov dword [edx + ecx*4], eax
xor eax, eax
inc eax
jmp 0x1004d313
mov eax, dword [ebp - 0x94]
lea edi, [edx + eax*4]
call fcn.100383ae
movzx eax, al
mov ecx, dword [ebp - 0x94]
movzx eax, al
add dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + ecx*4]
call fcn.10049e29
add dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x58], eax
jae 0x1004d3e6
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x88]
push eax
call fcn.100476ac
xor eax, eax
pop ecx
mov ecx, dword [ebp - 0x60]
inc eax
mov word [ebp - 0x6c], ax
cmp ecx, dword [ebp - 0x5c]
ja 0x1004d509
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0xc8]
ja 0x1004d509
cmp ecx, dword [ebp - 0x5c]
jne 0x1004d383
cmp eax, dword [ebp - 0xc8]
jne 0x1004d509
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xa0]
shl ecx, 2
cmp dword [edx + ecx], 0
je 0x1004d49c
cmp dword [ebp - 0xac], 0
je 0x1004d3fe
mov eax, dword [ebp - 0x8c]
call fcn.10047648
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xa4]
shl eax, 2
push dword [ecx + eax]
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + eax]
add ecx, dword [ebp - 0xac]
jmp 0x1004d479
and dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x94]
inc ecx
cmp ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x94], ecx
jl 0x1004d2ca
jmp 0x1004d343
mov eax, dword [eax + ecx]
call fcn.10049e29
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x88]
call fcn.10047a96
mov eax, dword [ebp - 0xb0]
movzx eax, byte [eax + 0x1f]
mov ecx, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0xa0]
push dword [eax + ecx*4]
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0x88]
call fcn.10047dd8
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne case.0x1004bbf2.17
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0x90], ecx
push dword [eax + edx*4]
mov esi, dword [ebp - 0x8c]
call fcn.10049ed0
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0xd4]
pop ecx
mov cl, byte [ebp - 0xf0]
mov byte [eax + 0x1f], cl
jmp 0x1004d4bd
mov eax, dword [ebp - 0xec]
cmp byte [eax + 1], 0xf8
jne 0x1004d4bd
mov ebx, dword [ebp - 0x8c]
push 0x800
push dword [eax + 0x10]
call fcn.100479fc
pop ecx
pop ecx
cmp dword [ebp - 0x64], 0
je 0x1004d4fc
mov eax, dword [ebp - 0x8c]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x8c]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x8c]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x8c]
call fcn.1004747d
jmp 0x1004d514
push 0xfe41
call fcn.10073159
pop ecx
mov dword [ebp - 0xcc], eax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xc8], eax
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
jmp 0x1004d568
inc dword [ebp - 0xc8]
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x1004d54a
mov eax, edi
call fcn.100474d8
push dword [ebp - 0xf0]
mov eax, edi
push dword [ebp - 0xc4]
call fcn.1004b9ff
mov eax, dword [ebp - 0xc8]
pop ecx
pop ecx
add edi, 0x28
mov al, byte [eax]
mov byte [ebp - 0xc4], al
test al, al
jne 0x1004d532
inc dword [ebp - 0xc8]
jmp case.0x1004bbf2.17
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x94], eax
imul eax, eax, 0x28
mov ecx, dword [edi + 0x10]
movzx edx, byte [esi + 0x65]
add eax, ebx
mov dword [ebp - 0x90], ecx
mov ecx, eax
mov dword [ebp - 0x9c], ecx
mov eax, dword [edi + 8]
mov dword [ebp - 0x94], eax
imul eax, eax, 0x28
lea eax, [eax + ecx - 0x28]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x8c], edx
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, ebx
mov dword [ebp - 0xdc], edi
mov ebx, ecx
cmp ecx, eax
jmp 0x1004d6b4
cmp dword [ebp - 0x90], 0
je 0x1004d626
push dword [ebp - 0xf0]
mov eax, ebx
sub eax, dword [ebp - 0x9c]
push 0x28
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x90]
movzx eax, byte [eax + ecx]
push eax
mov eax, ebx
call fcn.1004b9ff
mov ebx, dword [ebp - 0xc4]
pop ecx
pop ecx
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x1004d644
cmp dword [ebx + 0x18], 0
jle 0x1004d644
mov eax, ebx
call fcn.100474d8
mov ebx, dword [ebp - 0xc4]
push dword [ebp - 0x8c]
mov edx, ebx
call fcn.10049d53
pop ecx
mov dword [ebp - 0xa0], eax
call fcn.10049e29
mov dword [ebp - 0x84], eax
cdq
add dword [ebp - 0xc0], eax
push 0
push dword [ebp - 0xa0]
adc dword [ebp - 0xbc], edx
call fcn.10038410
add dword [ebp - 0xb8], eax
mov eax, 0x4000
pop ecx
pop ecx
test word [ebx + 0x1c], ax
je 0x1004d69b
mov eax, dword [ebx + 0x10]
add dword [ebp - 0xa8], eax
jmp 0x1004d6ab
cmp dword [ebp - 0x84], 0
je 0x1004d6ab
and dword [ebp - 0xa8], 0
add ebx, 0x28
cmp ebx, dword [ebp - 0x98]
mov dword [ebp - 0xc4], ebx
jbe 0x1004d5ef
mov eax, dword [ebp - 0xb8]
cdq
push edx
push eax
call fcn.10038410
mov ebx, eax
add dword [ebp - 0xb8], ebx
mov eax, dword [ebp - 0xb8]
cdq
push edx
push eax
mov dword [ebp - 0xa4], ebx
call fcn.10038410
add esp, 0x10
cmp ebx, eax
jge 0x1004d6f7
inc dword [ebp - 0xb8]
mov eax, dword [ebp - 0xa8]
cdq
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xb8]
mov ecx, edx
cdq
mov ebx, eax
mov eax, dword [ebp - 0xe4]
sub ebx, eax
mov eax, ecx
mov ecx, edx
sbb ecx, eax
add ebx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xd0]
adc ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x1004c733
jl 0x1004d751
cmp ebx, eax
ja 0x1004c733
push 0
mov eax, ebx
call fcn.100473be
pop ecx
test eax, eax
jne 0x1004f995
mov eax, dword [ebp - 0xb8]
mov ecx, dword [edi + 4]
mov ebx, 0x80
mov dword [ebp - 0xc8], ecx
cmp eax, ebx
jae 0x1004d782
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x1004d787
call fcn.100381f1
movzx eax, al
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xc4], eax
jmp 0x1004d7eb
push dword [ebp - 0x8c]
mov edx, dword [ebp - 0xc4]
call fcn.10049d53
mov edx, dword [ebp - 0x88]
pop ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xa0], eax
cmp eax, ebx
jae 0x1004d7ce
mov byte [edx + ecx], al
xor eax, eax
inc eax
jmp 0x1004d7d5
add ecx, edx
call fcn.100381f1
movzx eax, al
add dword [ebp - 0x88], eax
add dword [ebp - 0xc4], 0x28
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x98]
jbe 0x1004d79e
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xc4], eax
jmp 0x1004d83f
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xb0]
push dword [ebp - 0x8c]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0xc8]
lea ebx, [eax + ecx]
mov eax, dword [ebp - 0xc4]
call fcn.10049e3c
add dword [ebp - 0x88], eax
add dword [ebp - 0xc4], 0x28
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
cmp eax, dword [ebp - 0x98]
jbe 0x1004d801
mov eax, dword [ebp - 0xb0]
and dword [edi + 0x20], 0
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x1004d873
mov dword [edi + 0x10], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x1004d8a6
lea ecx, [ebp - 0xc8]
push ecx
call fcn.10045cb3
pop ecx
mov dword [ebp - 0xcc], eax
jmp 0x1004d8b4
and dword [ebp - 0xc8], 0
and dword [ebp - 0xc4], 0
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xc4]
jmp 0x1004bd36
mov eax, dword [edi + 4]
mov dword [ebp - 0xc8], eax
mov ebx, dword [edi + 0x10]
test eax, eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc4], ebx
jne 0x1004d9db
cmp dword [eax + 0x90], 0
jle 0x1004d90c
push str.cannot_open_savepoint___SQL_statements_in_progress
push eax
lea edi, [esi + 0x38]
call fcn.100362b9
pop ecx
pop ecx
jmp 0x1004dc46
mov ecx, ebx
call fcn.100379dd
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0x1e4]
add eax, dword [esi + 0x1e0]
push eax
push 0
call fcn.1006a929
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dc8
mov eax, dword [ebp - 0xc0]
add eax, 0x19
push eax
call fcn.1003613a
pop ecx
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x1004c3c2
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc0]
inc eax
push eax
push dword [ebp - 0xc4]
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.1008a3c0
mov eax, esi
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x1004d999
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1e8], 1
jmp 0x1004d99f
inc dword [eax + 0x1e0]
mov esi, dword [ebp - 0xbc]
lea ecx, [eax + 0x1dc]
mov edx, dword [ecx]
mov dword [esi + 0x10], edx
mov edx, dword [ebp - 0xbc]
mov dword [ecx], edx
mov ecx, dword [eax + 0x1f0]
mov edx, dword [ebp - 0xbc]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0x1f4]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + 0xc], eax
jmp 0x1004c3c2
and dword [ebp - 0xb0], 0
mov edi, dword [eax + 0x1dc]
mov dword [ebp - 0xb8], edi
test edi, edi
je 0x1004da18
mov ecx, dword [edi]
mov edx, ebx
call fcn.10037afe
test eax, eax
je 0x1004da12
inc dword [ebp - 0xb0]
mov edi, dword [edi + 0x10]
mov dword [ebp - 0xb8], edi
test edi, edi
jne 0x1004d9f2
xor eax, eax
cmp edi, eax
jne 0x1004da3e
push ebx
push str.no_such_savepoint:__s
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
add esp, 0xc
mov dword [ebp - 0xcc], 1
jmp case.0x1004bbf2.17
mov edx, dword [ebp - 0xd0]
cmp dword [edx + 0x90], eax
jg 0x1004dc1f
cmp dword [ebp - 0xc8], 2
jne 0x1004da66
cmp dword [edx + 0x8c], 1
jg 0x1004dc28
cmp dword [edi + 0x10], eax
jne 0x1004dac9
cmp byte [edx + 0x1e8], 0
je 0x1004dac9
xor eax, eax
inc eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xc8], eax
jne 0x1004dacf
push eax
mov eax, esi
call fcn.10049804
mov edi, eax
pop ecx
test edi, edi
jne 0x1004c7b2
mov ebx, dword [ebp - 0xd0]
mov eax, esi
mov byte [ebx + 0x1c], 1
call fcn.10049859
push 5
pop edi
cmp eax, edi
je 0x10050d0c
mov byte [ebx + 0x1e8], 0
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0xcc], eax
jmp 0x1004db8f
mov dword [ebp - 0xe4], eax
mov ecx, dword [edx + 0x1e0]
sub ecx, dword [ebp - 0xb0]
xor eax, eax
dec ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xac], eax
cmp dword [edx + 4], eax
jle 0x1004db37
mov edi, edx
jmp 0x1004daf9
mov ecx, dword [ebp - 0xb0]
push ecx
mov ecx, dword [edi + 8]
push dword [ebp - 0xc8]
shl eax, 4
mov ebx, dword [eax + ecx + 4]
call fcn.10042b10
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xac]
inc eax
mov dword [ebp - 0xac], eax
cmp eax, dword [edi + 4]
jl 0x1004daf3
mov edi, dword [ebp - 0xb8]
cmp dword [ebp - 0xc8], 2
mov ebx, dword [ebp - 0xd0]
jne 0x1004db95
test dword [ebx + 0xc], 0x200
je 0x1004db95
mov eax, ebx
call fcn.1004a47c
push 0xffffffffffffffff
call fcn.100582e5
or dword [ebx + 0xc], 0x200
jmp 0x1004db8e
mov eax, dword [ebx + 0x1dc]
mov dword [ebp - 0xb4], eax
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1dc], eax
push dword [ebp - 0xb4]
push ebx
call fcn.10035f73
dec dword [ebx + 0x1e0]
pop ecx
pop ecx
mov edi, dword [ebp - 0xb8]
cmp dword [ebx + 0x1dc], edi
jne 0x1004db66
cmp dword [ebp - 0xc8], 1
jne 0x1004dbd2
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1dc], eax
push dword [ebp - 0xb8]
push ebx
call fcn.10035f73
cmp dword [ebp - 0xe4], 0
pop ecx
pop ecx
jne case.0x1004bbf2.17
dec dword [ebx + 0x1e0]
jmp 0x1004dbf1
cmp dword [ebp - 0xe4], 0
mov eax, dword [edi + 8]
mov dword [ebx + 0x1f0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1f4], eax
jne case.0x1004bbf2.17
push dword [ebp - 0xb0]
mov esi, ebx
push dword [ebp - 0xc8]
call fcn.1006a929
mov esi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
jmp case.0x1004bbf2.17
cmp dword [ebp - 0xc8], 2
jne 0x1004dc2f
mov eax, str.rollback
jmp 0x1004dc34
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
push edx
lea edi, [esi + 0x38]
call fcn.100362b9
add esp, 0xc
mov dword [ebp - 0xcc], 5
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], ecx
mov edi, dword [edi + 8]
mov dword [ebp - 0xc4], edi
test ecx, ecx
je 0x1004dc96
cmp byte [eax + 0x1c], 0
jne 0x1004dc96
xor ebx, ebx
inc ebx
mov dword [ebp - 0xc0], ebx
test edi, edi
je 0x1004dcb7
cmp dword [eax + 0x8c], ebx
jle 0x1004dca0
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x1004d8fc
and dword [ebp - 0xc0], 0
xor ebx, ebx
inc ebx
movzx eax, byte [eax + 0x1c]
cmp ecx, eax
jne 0x10050d21
test ecx, ecx
jne 0x1004dcca
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1004dcd8
cmp dword [eax + 0x90], 0
jle 0x1004dca0
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1004d8fc
mov eax, str.cannot_rollback___no_transaction_is_active
test edi, edi
jne 0x1004dcd8
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
pop ecx
pop ecx
mov dword [ebp - 0xcc], ebx
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc8], eax
test eax, eax
je case.0x1004bbf2.17
push dword [edi + 8]
push eax
call fcn.100420de
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
push 5
pop eax
cmp dword [ebp - 0xcc], eax
je 0x10050da4
xor ebx, ebx
cmp dword [ebp - 0xcc], ebx
jne 0x10050dce
cmp dword [edi + 8], ebx
je case.0x1004bbf2.17
cmp byte [esi + 0x67], bl
je case.0x1004bbf2.17
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x1c], bl
je 0x1004dd6d
cmp dword [ecx + 0x8c], 1
jle case.0x1004bbf2.17
cmp dword [esi + 0x78], ebx
jne 0x1004dd87
mov edx, dword [ecx + 0x1e0]
lea eax, [ecx + 0x1e4]
inc dword [eax]
mov eax, dword [eax]
add edx, eax
mov dword [esi + 0x78], edx
mov eax, dword [esi + 0x78]
dec eax
push eax
push ebx
mov esi, ecx
call fcn.1006a929
mov edi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
cmp eax, ebx
jne 0x1004ddd9
mov eax, dword [ebp - 0xc8]
mov ebx, dword [edi + 0x78]
mov esi, dword [eax + 4]
mov dword [ebp - 0xe4], eax
call fcn.10040629
mov esi, dword [esi]
push ebx
call fcn.1003e56c
mov esi, dword [ebp - 0xe4]
pop ecx
mov ebx, eax
call fcn.10040697
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x1f0]
mov dword [edi + 0x98], ecx
mov eax, dword [eax + 0x1f4]
mov dword [edi + 0x9c], eax
jmp 0x1004c3c2
mov eax, dword [edi + 4]
mov dword [ebp - 0xc4], eax
mov edi, dword [edi + 0xc]
lea ecx, [ebp - 0xc8]
push ecx
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], edi
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push edi
call fcn.10045c38
mov eax, dword [ebp - 0xc8]
pop ecx
pop ecx
jmp 0x1004bd13
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
shl eax, 4
add eax, dword [ecx + 8]
mov dword [ebp - 0xc8], eax
mov esi, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xe0]
call fcn.10047821
push dword [esi + 0x10]
mov eax, dword [ebp - 0xc8]
push dword [edi + 8]
mov ebx, dword [eax + 4]
call fcn.10045c65
mov dword [ebp - 0xcc], eax
mov eax, dword [edi + 8]
pop ecx
pop ecx
cmp eax, 1
jne 0x1004de9f
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [eax], ecx
mov eax, dword [ebp - 0xd0]
or dword [eax + 0xc], 0x200
jmp 0x1004deb3
cmp eax, 2
jne 0x1004deb3
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 0xc]
mov cl, byte [esi + 0x10]
mov byte [eax + 0x4c], cl
cmp dword [edi + 4], 1
jne 0x1004c3c2
mov eax, dword [ebp - 0xd0]
call fcn.1004a47c
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x63], 0
mov esi, eax
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x1004df1e
lea ecx, [ebp - 0xc8]
push ecx
push 1
call fcn.10045c38
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax + 4]
jmp 0x1004df2d
and dword [ebp - 0xc8], 0
mov ebx, dword [ebp - 0xd0]
xor eax, eax
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc4], eax
cmp ecx, dword [edi + 8]
jne 0x1004df47
cmp eax, dword [edi + 0xc]
je case.0x1004bbf2.17
push dword [esi + 0x38]
push ebx
call fcn.10035f73
push str.database_schema_has_changed
mov edx, ebx
call fcn.1003624c
mov dword [esi + 0x38], eax
mov edi, dword [edi + 4]
mov ecx, dword [ebx + 8]
mov eax, edi
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
add esp, 0xc
cmp eax, dword [ebp - 0xc8]
je 0x1004df88
mov ebx, dword [ebp - 0xd0]
push edi
call fcn.100582e5
pop ecx
mov byte [esi + 0x63], 1
mov dword [ebp - 0xcc], 0x11
jmp case.0x1004bbf2.17
cmp byte [esi + 0x63], 0
je 0x1004dfb0
mov dword [ebp - 0xcc], 4
jmp case.0x1004bbf2.17
mov edx, dword [ebp - 0xd0]
xor ecx, ecx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [edi + 8]
mov dword [ebp - 0xc0], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xbc], eax
shl eax, 4
add eax, dword [edx + 8]
mov dword [ebp - 0xac], eax
mov edx, dword [eax + 4]
mov dword [ebp - 0xb4], edx
cmp byte [edi], 0x27
jne 0x1004e00a
mov dword [ebp - 0xb8], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x65]
jae 0x1004e011
mov byte [esi + 0x65], al
jmp 0x1004e011
and dword [ebp - 0xb8], 0
cmp byte [edi + 3], 0
je 0x1004e047
mov eax, dword [ebp - 0xc0]
imul eax, eax, 0x28
add eax, ebx
mov esi, eax
call fcn.10047821
mov esi, dword [esi + 0x10]
cmp esi, 2
mov dword [ebp - 0xc0], esi
jl 0x10050db7
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd4]
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x1004e072
mov eax, dword [edi + 0x10]
mov ecx, dword [esi]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x4d]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0xc4]
movzx ecx, word [eax + 6]
inc ecx
jmp 0x1004e079
cmp al, 0xf2
jne 0x1004e07f
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [edi + 4]
push 1
push dword [ebp - 0xbc]
mov eax, esi
push ecx
call fcn.1004b8c9
add esp, 0xc
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x1004f995
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x20], 1
push dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb0]
push dword [ebp - 0xc0]
mov eax, dword [eax]
mov ebx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xb4]
call fcn.10042b7b
mov edx, dword [ebp - 0xc4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xcc], eax
mov dword [ecx + 8], edx
cmp eax, 0x10
jne 0x1004e102
mov eax, dword [ebp - 0xb0]
and dword [eax], 0
and dword [ebp - 0xcc], 0
cmp byte [edi + 1], 0xfa
mov ecx, dword [ebp - 0xb0]
setne al
mov byte [ecx + 0x1e], al
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x1e], 0
sete cl
jmp 0x1004be21
mov edx, dword [edi + 4]
push 1
push 0xffffffffffffffff
push dword [edi + 8]
mov eax, esi
call fcn.1004b8c9
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x1004f995
mov byte [eax + 0x1c], 1
movzx eax, byte [edi + 3]
mov ecx, dword [ebp - 0xc8]
push 0x41e
or eax, 9
push eax
mov eax, dword [ebp - 0xd0]
push eax
push dword [eax]
add ecx, 4
xor edx, edx
call fcn.10041668
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1004e2b6
mov eax, dword [ebp - 0xc8]
push 1
push dword [eax + 4]
call fcn.100420de
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1004e2b6
cmp dword [edi + 0x10], eax
je 0x1004e21f
lea eax, [ebp - 0x11c]
push 2
push eax
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
call fcn.10045910
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1004e210
push dword [edi + 0x10]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx]
push dword [ebp - 0x11c]
mov ecx, dword [ecx + 4]
xor ebx, ebx
inc ebx
call fcn.10042b7b
mov dword [ebp - 0xcc], eax
mov eax, dword [edi + 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx + 8]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1e], 0
jmp 0x1004e2b6
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax + 4]
mov esi, dword [eax]
mov eax, ebx
call fcn.10040629
mov eax, dword [ebx + 4]
cmp byte [eax + 0x10], 0
je 0x1004e246
mov dword [ebp - 0xe4], 8
jmp 0x1004e293
xor edx, edx
cmp dword [eax + 0x30], edx
jne 0x1004e259
mov dword [ebp - 0xe4], 0x10
jmp 0x1004e293
or ecx, 0xffffffff
mov dword [esi + 0x14], 1
mov word [esi + 0x5a], cx
mov dword [esi + 0x10], edx
mov dword [esi], ebx
mov dword [esi + 4], eax
mov byte [esi + 0x50], 1
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
cmp ecx, edx
je 0x1004e280
mov dword [ecx + 0xc], esi
mov dword [eax + 8], esi
mov byte [esi + 0x53], 0
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edx
mov dword [ebp - 0xe4], edx
mov esi, ebx
call fcn.10040697
mov eax, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1e], 1
cmp byte [edi + 3], 0x10
mov ecx, dword [ebp - 0xc8]
setne al
mov byte [ecx + 0x20], al
mov eax, dword [ebp - 0xc8]
jmp 0x1004e118
mov edx, dword [edi + 4]
push 0
push 0xffffffffffffffff
push dword [edi + 0xc]
mov eax, esi
call fcn.1004b8c9
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x1004f995
mov byte [eax + 0x1c], 1
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1f], 0
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov ebx, esi
call fcn.1004911a
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
and dword [ecx + eax*4], 0
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc0], eax
cmp dword [eax], 0
je 0x1004bc0d
movzx ecx, byte [edi]
mov dword [ebp - 0xc4], ecx
mov byte [eax + 0x1c], 0
mov ecx, dword [ebp - 0xc0]
cmp byte [ecx + 0x1e], 0
je 0x1004e53e
mov esi, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, ebx
call fcn.1004b984
mov ecx, esi
call fcn.1004771e
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x94], edx
mov byte [eax + 0x19], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x1004e4c8
test al, 8
jne 0x1004e3b9
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xd8], edi
jmp 0x1004c3c2
xor ebx, ebx
cmp dword [ebp - 0x98], ebx
jne 0x1004e479
mov eax, SysReAllocString
cmp dword [ebp - 0x94], eax
jne 0x1004e479
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x128], ebx
fild qword [ebp - 0x128]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x1004e400
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x1004e479
fldz
mov dword [ebp - 0xc8], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x1004e434
cmp dword [ebp - 0xc4], 0x2e
jl 0x1004e3aa
mov eax, dword [ebp - 0xc0]
mov esi, dword [eax]
lea edi, [ebp - 0xc8]
call fcn.10043319
jmp 0x1004e454
cmp dword [ebp - 0xc4], 0x2d
jg 0x1004e3aa
mov eax, dword [ebp - 0xc0]
mov esi, dword [eax]
lea edi, [ebp - 0xc8]
call fcn.1004333e
mov dword [ebp - 0xcc], eax
cmp eax, ebx
jne 0x10050dc8
cmp dword [ebp - 0xc8], ebx
je 0x1004c3c2
mov edi, dword [ebp - 0xec]
jmp 0x1004e3aa
cmp dword [ebp - 0xc4], 0x2c
je 0x1004e4ab
cmp dword [ebp - 0xc4], 0x2e
je 0x1004e4ab
fild qword [ebp - 0x98]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x1004e4c8
add dword [ebp - 0x98], 0xffffffff
adc dword [ebp - 0x94], 0xffffffff
jmp 0x1004e4c8
fild qword [ebp - 0x98]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x1004e4c8
add dword [ebp - 0x98], 1
adc dword [ebp - 0x94], ebx
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0xc0]
mov ebx, dword [eax]
push 0
push dword [ebp - 0x94]
push dword [ebp - 0x98]
push 0
call fcn.1004337b
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dc8
mov esi, dword [ebp - 0xd4]
xor ebx, ebx
cmp dword [ebp - 0xc8], ebx
jne 0x1004e5cc
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x19], 1
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0x44], eax
jmp 0x1004e5cc
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb8], eax
mov ax, word [ebp - 0xa0]
mov word [ebp - 0xb4], ax
mov eax, dword [ebp - 0xc4]
and eax, 1
shl eax, 3
mov word [ebp - 0xb2], ax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov edx, 0x4000
mov dword [ebp - 0xa8], eax
test word [eax + 0x1c], dx
je 0x1004e595
call fcn.100474d8
mov ecx, dword [ebp - 0xc0]
mov ebx, dword [ecx]
lea eax, [ebp - 0xc8]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.1004337b
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x19], 0
xor ebx, ebx
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1d], bl
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x4c], ebx
cmp dword [ebp - 0xc4], 0x2e
jl 0x1004e61b
cmp dword [ebp - 0xc8], ebx
jl 0x1004e605
jne 0x1004e5fa
cmp dword [ebp - 0xc4], 0x2f
je 0x1004e605
mov dword [ebp - 0xc8], ebx
jmp case.0x1004bbf2.17
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0xc0]
push dword [eax]
call fcn.1004364f
jmp 0x1004e65b
cmp dword [ebp - 0xc8], ebx
jg 0x1004e647
jne 0x1004e62e
cmp dword [ebp - 0xc4], 0x2c
je 0x1004e647
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax]
xor ecx, ecx
cmp byte [eax + 0x53], 1
setne cl
mov dword [ebp - 0xc8], ecx
jmp 0x1004e676
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0xc0]
push dword [eax]
call fcn.1004375b
pop ecx
mov dword [ebp - 0xcc], eax
pop ecx
cmp eax, ebx
jne 0x10050dce
mov eax, dword [ebp - 0xc0]
xor ebx, ebx
mov byte [eax + 0x19], bl
cmp dword [ebp - 0xc8], ebx
jmp 0x1004cbb2
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
cmp dword [eax], 0
je case.0x1004bbf2.17
mov byte [eax + 0x1c], 0
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, ebx
mov ecx, edi
call fcn.1004771e
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], 1
jmp case.0x1004bbf2.17
mov ecx, dword [esi + 0x44]
xor edx, edx
mov dword [ebp - 0xc8], edx
mov eax, dword [edi + 4]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xc4], ecx
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
cmp dword [ecx], edx
je 0x1004e7dd
cmp dword [edi + 0x10], edx
jle 0x1004e735
mov edx, dword [ecx + 8]
mov dword [ebp - 0xb8], edx
mov dx, word [edi + 0x10]
mov dword [ebp - 0xa8], eax
push 0x10
pop eax
mov word [ebp - 0xb2], ax
lea eax, [ebp - 0xb8]
mov word [ebp - 0xb4], dx
mov dword [ebp - 0xbc], eax
jmp 0x1004e769
push dword [eax + 4]
mov ebx, dword [ecx + 8]
push dword [eax + 0x18]
mov edx, 0x97
lea eax, [ebp - 0xa0]
call fcn.1004a078
pop ecx
pop ecx
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x1004f995
or word [eax + 6], 0x10
mov ecx, dword [ebp - 0xc4]
mov ebx, dword [ecx]
lea eax, [ebp - 0xc0]
push eax
xor eax, eax
push eax
push eax
push eax
push dword [ebp - 0xbc]
call fcn.1004337b
add esp, 0x14
cmp dword [edi + 0x10], 0
mov dword [ebp - 0xcc], eax
jne 0x1004e7a9
mov eax, dword [ebp - 0xbc]
test byte [eax + 6], 1
je 0x1004e7a9
push eax
mov eax, dword [eax]
push dword [eax]
call fcn.10035f73
pop ecx
pop ecx
cmp dword [ebp - 0xcc], 0
jne case.0x1004bbf2.17
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0xc0], eax
sete cl
xor edx, edx
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xc4]
mov byte [ecx + 0x1d], al
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x4c], eax
cmp byte [edi], 0x32
jne 0x1004e7ed
cmp dword [ebp - 0xc8], edx
jmp 0x1004cbb2
cmp dword [ebp - 0xc8], edx
jmp 0x1004cfa5
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
mov ecx, dword [esi + 0x44]
add eax, ebx
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0x10]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
and dword [eax + 0x48], 0
mov eax, dword [ebp - 0xc4]
and dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
mov ecx, dword [eax + 8]
mov cx, word [ecx + 6]
xor edx, edx
mov word [ebp - 0xc8], dx
cmp dx, cx
mov edx, dword [ebp - 0xb8]
mov word [ebp - 0xbc], cx
jae 0x1004e895
movzx ebx, word [ebp - 0xc8]
imul ebx, ebx, 0x28
test byte [ebx + edx + 0x1c], 1
jne 0x1004e884
inc word [ebp - 0xc8]
cmp word [ebp - 0xc8], cx
jb 0x1004e861
jmp 0x1004e895
mov ecx, dword [edi + 8]
dec ecx
and dword [ebp - 0xc0], 0
mov dword [ebp - 0xd8], ecx
cmp dword [ebp - 0xc0], 0
je case.0x1004bbf2.17
mov eax, dword [eax + 8]
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xbc]
inc eax
mov word [ebp - 0xac], ax
push 0x20
pop eax
mov word [ebp - 0xaa], ax
mov dword [ebp - 0xa0], edx
call fcn.10047821
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 0xc0]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xc4]
add eax, 0x48
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.1004337b
add esp, 0x14
test byte [ebp - 0xaa], 0x20
mov dword [ebp - 0xcc], eax
jne 0x1004e3aa
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x98]
jne 0x1004e93d
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x94]
je 0x1004e3aa
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xa4]
mov dword [eax + 0x14], ecx
jmp 0x1004c3c2
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x44]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
mov ebx, dword [eax]
mov dword [ebp - 0xc4], ebx
test ebx, ebx
je 0x1004ea2a
and dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0xc0]
push edx
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 0x14]
push 0
push eax
push ecx
push 0
mov dword [ebp - 0xb4], eax
call fcn.1004337b
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x40], ecx
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x14]
mov dword [ecx + 0x44], eax
mov edx, dword [ebp - 0xc8]
xor eax, eax
add esp, 0x14
cmp dword [ebp - 0xc0], eax
sete cl
mov byte [edx + 0x19], cl
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0x1c], al
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0x1d], al
mov ecx, dword [ebp - 0xc0]
cmp ecx, eax
je 0x1004ea1c
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xd8], edi
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x48], ecx
jmp case.0x1004bbf2.17
mov edi, dword [edi + 8]
dec edi
and dword [eax + 0x48], 0
mov dword [ebp - 0xd8], edi
jmp case.0x1004bbf2.17
mov ecx, dword [esi + 0x44]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + 0x10], edx
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.0x1004bbf2.17
mov ecx, dword [esi + 0x44]
xor edx, edx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xbc], edx
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [eax]
cmp ecx, edx
je 0x1004d8b4
cmp byte [eax + 0x1b], dl
jne 0x1004ec51
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0xc8], edx
mov ecx, dword [ecx + 0x1c]
or edx, ecx
mov dword [ebp - 0xc4], ecx
jne 0x1004eb55
mov esi, dword [eax]
lea edi, [ebp - 0xbc]
call fcn.1004333e
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dc8
cmp dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xc0]
je 0x1004eafb
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], 1
jmp 0x1004eb43
mov eax, dword [eax]
lea edi, [ebp - 0xc8]
call fcn.10042cc1
cmp dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0xcc], eax
jne 0x1004eb2f
cmp dword [ebp - 0xc4], 0x7fffffff
jne 0x1004eb2f
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1b], 1
jmp 0x1004eb3d
add dword [ebp - 0xc8], 1
adc dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xe0]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1004ec0e
mov esi, dword [esi + 0xa8]
test esi, esi
je 0x1004eb88
mov eax, esi
jmp 0x1004eb70
mov eax, ecx
mov dword [ebp - 0xb0], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x1004eb6e
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, dword [eax + 0x10]
jmp 0x1004eb8f
imul ecx, ecx, 0x28
add ecx, ebx
mov edi, ecx
mov esi, edi
mov dword [ebp - 0xb4], edi
call fcn.10047821
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 0x14]
add eax, 0x10
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x1004ebbb
cmp edx, 0x7fffffff
je 0x10050e16
mov esi, dword [ebp - 0xc0]
cmp byte [esi + 0x1b], 0
jne 0x10050e16
mov esi, dword [ebp - 0xc4]
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x1004ebf1
jl 0x1004ebe5
cmp dword [ebp - 0xc8], ecx
jae 0x1004ebf1
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
cmp edx, 0x7fffffff
jg 0x1004ec31
mov ecx, dword [ebp - 0xc8]
jl 0x1004ec29
cmp ecx, 0xffffffff
jae 0x1004ec31
add ecx, 1
adc edx, 0
jmp 0x1004ec35
xor ecx, ecx
xor edx, edx
push edx
push ecx
mov ecx, dword [eax]
call fcn.10042beb
mov eax, dword [ebp - 0xc0]
add esp, 8
cmp byte [eax + 0x1b], 0
je 0x1004ed58
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x100]
mov edi, 0x3fffffff
and ecx, edi
add edx, 1
lea ebx, [ebp - 0xbc]
push ebx
adc ecx, 0
and dword [ebp - 0xb8], 0
push 0
push ecx
push edx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], ecx
mov ebx, dword [eax]
push 0
call fcn.1004337b
xor ebx, ebx
add esp, 0x14
mov dword [ebp - 0xcc], eax
cmp eax, ebx
jne 0x1004ed52
cmp dword [ebp - 0xbc], ebx
jne 0x1004ed3e
inc dword [ebp - 0xb8]
cmp dword [ebp - 0xb8], 0x64
jge 0x1004ed3e
lea eax, [ebp - 0xc8]
push eax
push 8
call fcn.10037438
cmp dword [ebp - 0xb8], 5
pop ecx
pop ecx
jge 0x1004ecea
and dword [ebp - 0xc8], 0xffffff
mov dword [ebp - 0xc4], ebx
jmp 0x1004ecfc
mov eax, dword [ebp - 0xc8]
and dword [ebp - 0xc4], edi
mov dword [ebp - 0xc8], eax
add dword [ebp - 0xc8], 1
lea eax, [ebp - 0xbc]
push eax
adc dword [ebp - 0xc4], ebx
mov eax, dword [ebp - 0xc0]
push ebx
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push ebx
mov ebx, dword [eax]
call fcn.1004337b
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x1004eca4
cmp dword [ebp - 0xcc], ebx
jne 0x1004ed52
cmp dword [ebp - 0xbc], ebx
je 0x10050e22
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc0]
and dword [eax + 0x4c], 0
jmp 0x1004d8b4
mov ecx, dword [edi + 8]
mov edx, dword [esi + 0x44]
imul ecx, ecx, 0x28
add ecx, ebx
mov dword [ebp - 0xc8], ecx
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xb8], eax
cmp byte [edi], 0x37
jne 0x1004edb3
mov edx, dword [edi + 0xc]
imul edx, edx, 0x28
add edx, ebx
mov dword [ebp - 0xc4], edx
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xc0], eax
mov edx, dword [edx + 0x14]
jmp 0x1004edbd
mov eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
test byte [edi + 3], 1
je 0x1004edcc
inc dword [esi + 0x6c]
test byte [edi + 3], 2
je 0x1004edf6
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x30], eax
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xfc], edx
test byte [ecx + 0x1c], 1
je 0x1004ee10
and dword [ecx + 4], 0
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x18], 0
mov ecx, dword [ebp - 0xc8]
test byte [edi + 3], 0x10
je 0x1004ee27
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0xb0], eax
jmp 0x1004ee2e
and dword [ebp - 0xb0], 0
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1004ee44
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xb4], eax
jmp 0x1004ee4b
and dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
xor ebx, ebx
push ebx
push ebx
call fcn.10042beb
push dword [ebp - 0xb0]
movzx eax, byte [edi + 3]
and eax, 8
push eax
push dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc8]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
mov esi, dword [eax]
push dword [ebp - 0xc0]
push ebx
call fcn.1004536a
mov ecx, dword [ebp - 0xb8]
mov byte [ecx + 0x19], bl
mov ecx, dword [ebp - 0xb8]
mov byte [ecx + 0x1d], bl
mov ecx, dword [ebp - 0xb8]
add esp, 0x28
mov dword [ebp - 0xcc], eax
mov dword [ecx + 0x4c], ebx
cmp eax, ebx
jne 0x1004c3c2
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0xbc], ebx
je 0x1004c3c2
cmp dword [edi + 0x10], ebx
je 0x1004c3c2
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 8]
push dword [ebp - 0xbc]
shl ecx, 4
mov edx, dword [ecx + edx]
push dword [ebp - 0xc0]
mov dword [ebp - 0xac], edx
mov esi, dword [edi + 0x10]
mov dword [ebp - 0xa8], esi
mov cl, byte [edi + 3]
and cl, 4
movzx ecx, cl
neg ecx
sbb ecx, ecx
push esi
and ecx, 5
add ecx, 0x12
push edx
push ecx
mov dword [ebp - 0xa4], ecx
push dword [eax + 0xb8]
call dword [eax + 0xbc]
add esp, 0x18
jmp 0x1004c3c2
mov edx, dword [esi + 0x44]
xor ecx, ecx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], eax
cmp dword [edx + 0xbc], ecx
je 0x1004ef82
cmp dword [edi + 0x10], ecx
je 0x1004ef82
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [eax + 0x44]
mov dword [ebp - 0xc4], ecx
mov edi, eax
call fcn.10049cb8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
xor edi, edi
push edi
push edi
call fcn.10042beb
mov eax, dword [ebp - 0xc0]
mov esi, dword [eax]
add esp, 8
call fcn.10045529
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xcc], eax
mov dword [ecx + 0x4c], edi
cmp eax, edi
jne 0x1004f014
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0xbc]
cmp edx, edi
je 0x1004f014
mov ecx, dword [ebp - 0xec]
mov ecx, dword [ecx + 0x10]
cmp ecx, edi
je 0x1004f014
push dword [ebp - 0xc4]
mov esi, dword [eax + 8]
push dword [ebp - 0xc8]
push ecx
mov ecx, dword [ebp - 0xc0]
mov ecx, dword [ecx + 0xc]
shl ecx, 4
push dword [ecx + esi]
push 9
push dword [eax + 0xb8]
call edx
add esp, 0x18
mov eax, dword [ebp - 0xec]
test byte [eax + 8], 1
je 0x1004c3c2
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x6c]
jmp 0x1004ded2
mov ecx, dword [esi + 0x6c]
mov eax, dword [ebp - 0xd0]
add dword [eax + 0x40], ecx
mov dword [eax + 0x3c], ecx
and dword [esi + 0x6c], 0
jmp case.0x1004bbf2.17
mov ebx, dword [edi + 8]
mov eax, dword [edi + 4]
imul ebx, ebx, 0x28
mov ecx, dword [esi + 0x44]
mov edi, dword [ecx + eax*4]
add ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xc8], edi
mov eax, dword [edi]
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xc4], eax
call fcn.10049cb8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x1f], 0
je 0x1004f0d5
mov eax, dword [ebp - 0xc4]
lea edi, [ebp - 0xb8]
call fcn.10042cc1
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x48]
cdq
mov ecx, eax
mov eax, dword [ebp - 0xb4]
cmp eax, edx
jg 0x1004c733
mov eax, dword [ebp - 0xb8]
jl 0x1004f0cd
cmp eax, ecx
ja 0x1004c733
mov dword [ebp - 0xc0], eax
jmp 0x1004f100
mov edi, dword [ebp - 0xc4]
mov esi, edi
call fcn.10042c99
mov eax, dword [edi + 0x2c]
mov ecx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0xc0], eax
cmp eax, dword [ecx + 0x48]
ja 0x1004c733
push 0
mov edi, ebx
call fcn.100473be
pop ecx
test eax, eax
jne 0x1004f995
mov eax, dword [ebp - 0xc0]
mov dword [ebx + 0x18], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x1f], 0
je 0x1004f156
mov eax, dword [ebx + 4]
push 0
push eax
push dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc4]
push 0
call fcn.10042dcd
jmp 0x1004f16c
push dword [ebx + 4]
push dword [ebp - 0xc0]
push 0
push dword [ebp - 0xc4]
call fcn.1004304a
mov dword [ebp - 0xcc], eax
add esp, 0x10
mov byte [ebx + 0x1f], 1
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0xc8], edi
cmp byte [edi + 0x1c], 0
jne case.0x1004bbf2.10
cmp byte [edi + 0x1d], 0
je 0x1004f1ab
mov eax, dword [edi + 0x38]
mov dword [ebp - 0xc0], eax
mov eax, dword [edi + 0x3c]
jmp 0x1004f219
cmp dword [edi + 0x24], 0
je 0x1004f1ee
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
lea ecx, [ebp - 0xc0]
push ecx
mov dword [ebp - 0xb4], eax
push dword [edi + 0x24]
call dword [eax + 0x30]
mov esi, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
mov esi, edi
jmp 0x1004f234
call fcn.10049cb8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x19], 0
je 0x1004f221
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc0], ecx
mov eax, dword [eax + 0x44]
mov dword [ebp - 0xbc], eax
jmp 0x1004f234
mov eax, dword [eax]
lea edi, [ebp - 0xc0]
call fcn.10042cc1
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xbc]
jmp 0x1004bd36
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax]
test eax, eax
je case.0x1004bbf2.17
mov esi, eax
call fcn.10040959
jmp 0x1004c3c2
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
test ecx, ecx
jne 0x1004f2ae
mov dword [ebp - 0xc0], 1
jmp 0x1004f2d3
lea edi, [ebp - 0xc0]
mov esi, ecx
call fcn.1004333e
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
mov cl, byte [ebp - 0xc0]
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x4c], 0
mov edi, dword [edi + 8]
test edi, edi
jle case.0x1004bbf2.17
cmp dword [ebp - 0xc0], 0
je case.0x1004bbf2.17
jmp 0x1004bc10
inc dword [esi + 0x80]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc0], 1
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
test ecx, ecx
je 0x1004f398
lea edi, [ebp - 0xc0]
mov esi, ecx
call fcn.10043319
cmp dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0xcc], eax
sete al
mov byte [ecx + 0x1a], al
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc8]
mov cl, byte [ebp - 0xc0]
mov byte [eax + 0x1c], cl
cmp dword [ebp - 0xc0], 0
jmp 0x1004cbb2
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xe0]
test eax, eax
jne 0x10050e2e
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
test eax, eax
je case.0x1004bbf2.17
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
test ecx, ecx
jne 0x1004f3ed
mov byte [eax + 0x1c], 1
jmp case.0x1004bbf2.17
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], 1
cmp byte [edi], 0x43
push eax
push ecx
jne 0x1004f40b
call fcn.1004364f
jmp 0x1004f410
call fcn.1004375b
pop ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
pop ecx
mov cl, byte [ebp - 0xc0]
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x4c], 0
cmp dword [ebp - 0xc0], 0
jne 0x1004f454
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0xd8], eax
mov al, byte [edi + 3]
test al, al
je 0x1004f454
movzx eax, al
lea eax, [esi + eax*4 + 0x78]
inc dword [eax]
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xc8], ecx
mov ebx, dword [edi + 8]
mov eax, dword [ecx]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x1004bbf2.17
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x1004f4ae
mov eax, ebx
call fcn.100474d8
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], eax
jmp 0x1004f4b5
and dword [ebp - 0xcc], 0
cmp dword [ebp - 0xcc], 0
jne case.0x1004bbf2.17
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0xc0], eax
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xbc], ebx
test byte [edi + 3], 0x10
je 0x1004f4df
mov ecx, dword [ecx + 0x48]
jmp 0x1004f4e1
xor ecx, ecx
mov esi, dword [ebp - 0xc4]
push ecx
push dword [edi + 0xc]
xor edi, edi
push edi
push edi
cdq
push 0x100b3f5e
push edx
push eax
push ebx
call fcn.1004536a
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
add esp, 0x20
mov dword [eax + 0x4c], edi
jmp 0x1004c3c2
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
mov ebx, dword [eax]
mov dword [ebp - 0xc4], ebx
test ebx, ebx
je case.0x1004bbf2.17
mov eax, dword [eax + 8]
mov dword [ebp - 0xb8], eax
mov ax, word [edi + 0xc]
mov word [ebp - 0xb4], ax
xor eax, eax
mov word [ebp - 0xb2], ax
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xc0]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.1004337b
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1004f5a6
cmp dword [ebp - 0xc0], eax
jne 0x1004f5a6
mov esi, dword [ebp - 0xc4]
call fcn.10045529
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x4c], 0
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
cmp dword [ebp - 0xc8], 0
je case.0x1004bbf2.17
mov edi, dword [ebp - 0xc4]
call fcn.10049cb8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x1c], 0
jne case.0x1004bbf2.17
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xc8]
call fcn.1004a30e
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x10050dce
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xbc]
push 4
mov dword [eax + 0x14], ecx
pop ecx
jmp 0x1004c99a
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc8], eax
cmp dword [eax], 0
je case.0x1004bbf2.17
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc0], ecx
mov cx, word [edi + 0x10]
mov word [ebp - 0xbc], cx
cmp byte [edi + 3], 0
je 0x1004f687
push 0xc
jmp 0x1004f689
push 4
pop ecx
mov word [ebp - 0xba], cx
mov ecx, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, ebx
mov dword [ebp - 0xb0], ecx
lea ecx, [ebp - 0xc4]
push ecx
lea ecx, [ebp - 0xc0]
push ecx
mov esi, eax
call fcn.1004a3f1
cmp byte [edi], 0x51
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
jne 0x1004f6c9
neg dword [ebp - 0xc4]
jmp 0x1004f6cf
inc dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 0
mov esi, dword [ebp - 0xd4]
jle case.0x1004bbf2.17
jmp 0x1004bc0d
mov eax, dword [ebp - 0xd0]
and dword [ebp - 0xc4], 0
mov eax, dword [eax + 0x88]
jmp 0x1004f71a
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x1004f717
cmp byte [eax + 0x66], 2
jae 0x1004f717
cmp dword [eax + 0x58], 0
jl 0x1004f717
inc dword [ebp - 0xc4]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x1004f6fc
mov ecx, dword [ebp - 0xdc]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
cmp dword [ebp - 0xc4], eax
jle 0x1004f74c
mov dword [ebp - 0xcc], 6
mov byte [esi + 0x60], 2
jmp case.0x1004bbf2.17
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ecx + 8]
mov ebx, dword [edi + 4]
shl eax, 4
mov esi, dword [eax + ecx + 4]
mov eax, esi
call fcn.10040629
lea eax, [ebp - 0xc8]
push eax
push ebx
push esi
call fcn.10045aa4
add esp, 0xc
mov ebx, eax
call fcn.10040697
mov ecx, dword [ebp - 0xdc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc8]
cdq
mov dword [ebp - 0xcc], ebx
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
test ebx, ebx
jne 0x1004c3c2
mov esi, dword [ebp - 0xc8]
test esi, esi
je 0x1004c3c2
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xd0]
mov edi, dword [edi + 4]
shl eax, 4
add eax, dword [ecx + 8]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x10]
jmp 0x1004f7e7
mov edx, dword [ecx + 8]
cmp dword [edx + 0x14], esi
jne 0x1004f7e5
mov dword [edx + 0x14], edi
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1004f7da
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x1004f800
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x1004f7fe
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x1004f7f3
mov al, byte [ebp - 0xbc]
inc al
mov byte [ebp - 0xf1], al
jmp 0x1004c3c2
and dword [ebp - 0xc8], 0
mov eax, dword [edi + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xc8]
and eax, ecx
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
push eax
mov eax, dword [edi + 8]
push dword [edi + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.10045a55
cmp dword [edi + 0xc], 0
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
je case.0x1004bbf2.17
mov eax, dword [ebp - 0xc8]
add dword [esi + 0x6c], eax
mov edi, dword [edi + 0xc]
test edi, edi
jle case.0x1004bbf2.17
imul edi, edi, 0x28
cdq
lea ebx, [edi + ebx + 0x10]
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x1004bbf2.17
and dword [ebp - 0xc8], 0
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [ebp - 0xc0], eax
cmp byte [edi], 0x62
setne cl
inc ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + 4]
push ecx
lea ecx, [ebp - 0xc8]
push ecx
call fcn.10045910
mov dword [ebp - 0xcc], eax
jmp 0x1004de2b
mov eax, dword [edi + 4]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], str.sqlite_temp_master
cmp eax, 1
je 0x1004f8e9
mov dword [ebp - 0xc4], str.sqlite_master
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xbc], ecx
mov edx, dword [edi + 4]
mov dword [ebp - 0xb8], edx
add esi, 0x38
mov dword [ebp - 0xb4], esi
push dword [edi + 0x10]
mov edx, dword [ecx + 8]
push dword [ebp - 0xc4]
shl eax, 4
push dword [eax + edx]
mov esi, ecx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.1003714e
add esp, 0x10
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x1004f98f
push 0
lea eax, [ebp - 0xbc]
push eax
mov byte [esi + 0x7c], 1
and dword [ebp - 0xb0], 0
push fcn.10062988
push dword [ebp - 0xc0]
push esi
call fcn.1006084d
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1004f970
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xc0]
push esi
call fcn.10035f73
cmp dword [ebp - 0xcc], 7
pop ecx
pop ecx
mov byte [esi + 0x7c], 0
jne 0x1004c3c2
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xd0]
push str.out_of_memory
push eax
lea edi, [esi + 0x38]
mov byte [eax + 0x1e], 1
call fcn.100362b9
mov dword [ebp - 0xcc], 7
jmp 0x1004c750
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
call fcn.10057367
jmp 0x1004d514
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
shl edi, 4
add edi, dword [ebx + 8]
push 0
call fcn.100379dd
push eax
mov eax, dword [edi + 0xc]
add eax, 8
mov edi, ecx
call fcn.10038939
push eax
push ebx
call fcn.10058476
add esp, 0x10
or dword [ebx + 0xc], 0x200
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
call fcn.1005826c
jmp case.0x1004bbf2.17
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xd0]
call fcn.1006857d
jmp case.0x1004bbf2.17
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
lea eax, [eax*4 + 4]
push eax
call fcn.1003613a
xor ebx, ebx
pop ecx
mov dword [ebp - 0xc4], eax
cmp eax, ebx
je 0x1004f98f
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0xb4], eax
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0xe0]
cmp dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc0], ecx
jle 0x1004fac1
imul ecx, ecx, 0x28
add ecx, esi
call fcn.1004771e
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xc0]
inc ecx
cmp ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc0], ecx
jl 0x1004fa93
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], ebx
mov eax, dword [ebp - 0xb4]
push dword [eax + 0x10]
movzx eax, byte [edi + 3]
push dword [ebp - 0xc8]
mov edi, dword [ebp - 0xd0]
push dword [ebp - 0xc4]
mov ecx, dword [edi + 8]
shl eax, 4
push dword [eax + ecx + 4]
lea ecx, [ebp - 0xbc]
call fcn.1004671c
push dword [ebp - 0xc4]
mov dword [ebp - 0xb8], eax
push edi
call fcn.10035f73
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb4]
cdq
add ecx, 0x10
add esp, 0x18
sub dword [ecx], eax
mov edi, esi
sbb dword [ecx + 4], edx
call fcn.100478af
cmp dword [ebp - 0xbc], ebx
je 0x1004fb5c
cmp dword [ebp - 0xb8], ebx
je 0x1004f98f
push 1
push dword [ebp - 0xb8]
mov eax, fcn.10035f18
or ecx, 0xffffffff
mov edx, esi
call fcn.10047aba
pop ecx
pop ecx
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, esi
call fcn.1004739e
jmp 0x1004cf01
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
imul eax, eax, 0x28
imul edi, edi, 0x28
add eax, ebx
add edi, ebx
test byte [eax + 0x1c], 0x20
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe8], eax
mov edi, eax
jne 0x1004fba3
call fcn.10047975
test byte [edi + 0x1c], 0x20
je 0x1004f995
mov eax, dword [ebp - 0xe4]
push dword [eax + 0x14]
mov edi, dword [edi + 0x10]
push dword [eax + 0x10]
call fcn.1003b3b2
jmp 0x1004be95
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xe0]
test eax, eax
jne 0x10050e2e
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, ebx
test byte [eax + 0x1c], 0x20
mov dword [ebp - 0xe8], eax
je 0x1004fc37
mov ebx, dword [eax + 0x10]
mov eax, ebx
call fcn.1003b5e3
mov eax, dword [ebx + 8]
test eax, eax
je 0x1004fc37
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 8]
mov dword [ebx + 8], eax
test eax, eax
jne 0x1004fc1a
mov esi, ebx
call fcn.1003b380
mov esi, dword [edi + 0xc]
push dword [ebp - 0xc4]
imul esi, esi, 0x28
push dword [ebp - 0xc8]
add esi, dword [ebp - 0xe0]
jmp 0x1004cefb
mov edi, dword [ebp - 0xe8]
call fcn.100478af
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 8]
jmp 0x1004bc3b
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xc8], eax
test byte [ebx + 0x1c], 0x20
mov dword [ebp - 0xe8], ebx
jne 0x1004fca0
mov edi, ebx
call fcn.10047975
test byte [ebx + 0x1c], 0x20
je 0x1004f995
mov eax, dword [ebp - 0xc8]
mov edi, dword [ebp - 0xec]
test eax, eax
je 0x1004fcea
jl 0x1004fcab
and eax, 0xf
jmp 0x1004fcb0
mov eax, 0xff
mov ecx, dword [ebp - 0xe4]
push dword [ecx + 0x14]
mov bl, al
mov eax, dword [ebp - 0xe8]
push dword [ecx + 0x10]
mov eax, dword [eax + 0x10]
call fcn.1003b623
pop ecx
pop ecx
mov dword [ebp - 0xc4], eax
test eax, eax
jne 0x1004bc0d
mov eax, dword [ebp - 0xc8]
test eax, eax
jl case.0x1004bbf2.17
mov eax, dword [ebp - 0xe4]
push dword [eax + 0x14]
push dword [eax + 0x10]
mov eax, dword [ebp - 0xe8]
mov edi, dword [eax + 0x10]
jmp 0x1004fbb2
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xb0], ecx
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xc0], eax
cmp byte [edi + 3], 0
je 0x1004fd54
mov edx, dword [esi + 0xa8]
mov edi, dword [ecx + 0x10]
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb4], edx
test edx, edx
je 0x1004fd54
cmp dword [edx + 0x20], edi
je 0x1004fd4c
mov edx, dword [edx + 0x3c]
mov dword [ebp - 0xb4], edx
test edx, edx
jne 0x1004fd3a
test edx, edx
jne case.0x1004bbf2.17
mov edx, dword [esi + 0xb0]
mov edi, dword [ebp - 0xd0]
cmp edx, dword [edi + 0x70]
jl 0x1004fd82
push str.too_many_levels_of_trigger_recursion
push edi
lea edi, [esi + 0x38]
mov dword [ebp - 0xcc], 1
call fcn.100362b9
jmp 0x1004be95
test byte [eax + 0x1c], 0x40
jne 0x1004fed1
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
mov dword [ebp - 0xc8], eax
imul eax, eax, 0xa
add eax, dword [ecx + 0xc]
lea eax, [eax*4 + 0x40]
mov dword [ebp - 0xc4], eax
push eax
mov eax, edi
call fcn.10036114
pop ecx
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x1004f995
push dword [ebp - 0xc0]
call fcn.100476ac
pop ecx
mov ecx, dword [ebp - 0xc0]
push 0x40
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xb4]
mov dword [eax], esi
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xd8]
mov dword [eax + 4], ecx
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x18], eax
mov ax, word [esi + 0x32]
mov ecx, dword [ebp - 0xb4]
mov word [ecx + 0x1c], ax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x24]
imul ecx, ecx, 0x28
lea edx, [ecx + eax + 0x40]
lea ecx, [eax + 0x40]
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xbc], ecx
cmp ecx, edx
je 0x1004feda
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xbc]
mov ecx, edi
mov dword [eax], ecx
mov ecx, dword [ebp - 0xbc]
add ecx, 0x28
mov dword [ebp - 0xbc], ecx
cmp ecx, dword [ebp - 0xb8]
jne 0x1004fea1
mov eax, dword [ebp - 0xb4]
jmp 0x1004feda
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xb4], eax
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xa8]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x100]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xfc]
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x6c]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xb4]
and dword [esi + 0x6c], 0
lea ecx, [eax + 0x18]
mov dword [esi + 0xa8], eax
mov dword [esi + 8], ecx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x18], edx
mov ax, word [eax + 0x28]
mov word [esi + 0x32], ax
mov eax, edx
inc eax
imul eax, eax, 0x28
add eax, ecx
or dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ebp - 0xb0]
mov dword [esi + 0x44], eax
mov eax, dword [ecx]
mov dword [ebp - 0x114], eax
mov dword [esi + 4], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x1c], eax
jmp case.0x1004bbf2.17
mov ecx, dword [esi + 0xa8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
imul eax, eax, 0x14
mov eax, dword [eax + edx + 4]
add eax, dword [edi + 4]
push 0x1000
imul eax, eax, 0x28
add eax, dword [ecx + 0x10]
mov dword [ebp - 0xc4], eax
push eax
jmp 0x1004be8a
cmp dword [edi + 4], 0
mov eax, dword [edi + 8]
cdq
je 0x1004ffb6
mov ecx, dword [ebp - 0xd0]
add ecx, 0x1f0
jmp 0x1004ffbc
lea ecx, [esi + 0x90]
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x1004bbf2.17
cmp dword [edi + 4], 0
je 0x1004ffe3
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x1f0]
or ecx, dword [eax + 0x1f4]
jmp 0x1004cfa5
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
jmp 0x1004cfa5
mov esi, dword [esi + 0xa8]
test esi, esi
je 0x1005001c
mov eax, esi
jmp 0x10050004
mov eax, ecx
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x10050002
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [eax + 0x10]
jmp 0x10050024
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, ebx
mov dword [ebp - 0xc8], esi
call fcn.10047821
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0xe0]
mov esi, edi
call fcn.10047821
mov eax, dword [ebp - 0xc8]
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov edx, dword [eax + 0x14]
add eax, 0x10
cmp edx, edi
jg 0x1004c3c2
jl 0x10050068
mov edx, dword [eax]
cmp edx, ecx
jae 0x1004c3c2
mov dword [eax], ecx
mov dword [eax + 4], edi
jmp 0x1004c3c2
mov eax, dword [edi + 4]
imul eax, eax, 0x28
cmp dword [eax + ebx + 0x14], 0
jl case.0x1004bbf2.17
jg 0x1004bc0d
cmp dword [eax + ebx + 0x10], 0
jbe case.0x1004bbf2.17
jmp 0x1004bc0d
mov eax, dword [edi + 4]
imul eax, eax, 0x28
cmp dword [eax + ebx + 0x14], 0
jg case.0x1004bbf2.17
jl 0x1004bc0d
cmp dword [eax + ebx + 0x10], 0
jae case.0x1004bbf2.17
jmp 0x1004bc0d
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul ecx, ecx, 0x28
cdq
add ecx, ebx
add dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x10]
adc dword [ecx + 0x14], edx
or eax, dword [ecx + 0x14]
jmp 0x1004cfa5
movzx ecx, byte [edi + 3]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0xc8], ecx
mov eax, dword [edi + 8]
and dword [ebp - 0xc4], 0
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x78], edx
test ecx, ecx
jle 0x10050140
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0xc4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0xbc]
call fcn.1004b89e
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc4]
add eax, 0x28
cmp ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xbc], eax
jl 0x10050106
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe0]
xor ebx, ebx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x88], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov word [ebp - 0x94], ax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
test byte [eax + 3], 8
je 0x100501a9
mov ecx, dword [edi - 4]
mov dword [ebp - 0x80], ecx
push dword [ebp - 0x78]
lea ecx, [ebp - 0xb8]
push dword [ebp - 0xc8]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0x84], ebx
je 0x100501f7
lea eax, [ebp - 0xb0]
push eax
call fcn.1004a695
pop ecx
push eax
push 0x100b6914
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
mov eax, dword [ebp - 0x84]
add esp, 0xc
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xb0]
push eax
call fcn.100476ac
jmp 0x1004be96
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, ebx
mov dword [ebp - 0xc8], ecx
mov eax, dword [edi + 0x10]
call fcn.100475ed
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x1005024b
push dword [ebp - 0xc8]
call fcn.1004a695
pop ecx
push eax
push 0x100b6914
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
add esp, 0xc
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, dword [ebp - 0xc8]
call fcn.1004739e
pop ecx
mov ecx, dword [ebp - 0xc8]
jmp 0x1004c726
and dword [ebp - 0xc4], 0
or dword [ebp - 0xbc], 0xffffffff
or dword [ebp - 0xc0], 0xffffffff
mov ebx, dword [ebp - 0xd0]
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xc0]
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.100724fa
add esp, 0x10
mov dword [ebp - 0xcc], eax
cmp eax, 5
jne 0x100502bd
and dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 1
and dword [ebp - 0xc8], 0
mov esi, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0xe0]
mov dword [ebp - 0xb8], esi
mov eax, dword [ebp - 0xc8]
mov eax, dword [ebp + eax*4 - 0xc4]
cdq
push edx
push eax
call fcn.1004791a
mov esi, dword [ebp - 0xb8]
inc dword [ebp - 0xc8]
add esi, 0x28
cmp dword [ebp - 0xc8], 3
pop ecx
pop ecx
mov dword [ebp - 0xb8], esi
jl 0x100502d6
jmp 0x1004c3c2
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], ecx
mov eax, dword [edi + 4]
mov edx, dword [edx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [ebp - 0xc8], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov dword [ebp - 0xc4], edi
movzx edx, byte [edi + 5]
mov dword [ebp - 0xbc], edx
cmp ecx, 0xffffffff
jne 0x10050352
mov dword [ebp - 0xc0], edx
cmp byte [edi + 0xf], 3
jae 0x1005036d
mov ecx, dword [edi + 0x40]
xor eax, eax
cmp dword [ecx], eax
je 0x10050373
cmp dword [edi + 0x4c], eax
jl 0x10050373
jg 0x1005036d
cmp dword [edi + 0x48], eax
jbe 0x10050373
mov dword [ebp - 0xc0], edx
cmp dword [ebp - 0xc0], 5
mov eax, dword [edi + 0x90]
mov dword [ebp - 0xb8], eax
jne 0x1005039e
cmp byte [eax], 0
je 0x10050398
mov eax, edi
call fcn.1003e97b
test eax, eax
jne 0x1005039e
mov dword [ebp - 0xc0], edx
cmp dword [ebp - 0xc0], edx
je 0x10050445
push 5
pop ecx
cmp edx, ecx
je 0x100503bd
cmp dword [ebp - 0xc0], ecx
jne 0x10050445
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1c], 0
je 0x10050482
cmp dword [eax + 0x8c], 1
jg 0x10050482
cmp edx, ecx
jne 0x100503fd
mov eax, edi
call fcn.1003ea3c
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x1005042d
mov ecx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
jmp 0x10050405
cmp edx, 4
jne 0x1005040a
push 2
pop ecx
call fcn.1003e84d
push dword [ebp - 0xc8]
xor ebx, ebx
cmp dword [ebp - 0xc0], 5
sete bl
inc ebx
call fcn.10046ab1
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x10050439
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xc0], eax
mov ebx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
call fcn.1003e84d
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 8]
imul edx, edx, 0x28
add edx, ebx
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xdc], edx
cmp eax, 6
jne 0x100504ba
xor ecx, ecx
jmp 0x100504c1
mov dword [ebp - 0xcc], 1
mov eax, str.into
cmp dword [ebp - 0xc0], ecx
je 0x1005049e
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
add esp, 0xc
jmp case.0x1004bbf2.17
mov ecx, dword [eax*4 + 0x100adb18]
mov dword [edx + 4], ecx
call fcn.100379dd
mov dword [edx + 0x18], eax
movzx eax, byte [ebp - 0xf0]
push eax
mov eax, edx
mov byte [edx + 0x1f], 1
call fcn.1004739e
jmp 0x1004be96
push dword [ebp - 0xd0]
lea eax, [esi + 0x38]
push eax
call fcn.10069aca
pop ecx
jmp 0x1004d513
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc8], eax
call fcn.10042726
mov dword [ebp - 0xcc], eax
cmp eax, 0x65
jne case.0x1004bbf2.17
mov edi, dword [edi + 8]
dec edi
and dword [ebp - 0xcc], 0
mov dword [ebp - 0xd8], edi
jmp case.0x1004bbf2.17
cmp dword [edi + 4], 0
jne 0x10050552
mov eax, dword [ebp - 0xd0]
call fcn.1004a47c
jmp case.0x1004bbf2.17
mov byte [esi + 0x63], 1
jmp case.0x1004bbf2.17
mov al, byte [edi + 0xc]
test al, al
jne 0x10050575
mov ecx, dword [ebp - 0xd0]
test dword [ecx + 0xc], 0x80000
jne case.0x1004bbf2.17
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov ebx, dword [ecx + 8]
mov ecx, dword [edi + 8]
shl edx, 4
mov edx, dword [edx + ebx + 4]
call fcn.10046a1e
mov dword [ebp - 0xcc], eax
cmp al, 6
jne case.0x1004bbf2.17
push dword [edi + 0x10]
push str.database_table_is_locked:__s
jmp 0x100504a4
mov edi, dword [edi + 0x10]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], edi
call fcn.1006a8af
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
test eax, eax
je case.0x1004bbf2.17
mov esi, dword [eax + 8]
mov edi, dword [ebp - 0xd4]
call fcn.1004ba64
mov esi, edi
jmp case.0x1004bbf2.17
mov ecx, dword [ebp - 0xd0]
lea eax, [esi + 0x38]
push eax
push dword [edi + 0x10]
mov eax, dword [edi + 4]
call fcn.1006a570
jmp 0x100504f3
mov ecx, dword [ebp - 0xd0]
mov byte [esi + 0x66], 2
push dword [edi + 0x10]
mov eax, dword [edi + 4]
call fcn.1006a778
pop ecx
mov dword [ebp - 0xcc], eax
mov byte [esi + 0x66], 0
jmp case.0x1004bbf2.17
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
lea edx, [ebp - 0xc4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [eax]
push edx
push eax
mov dword [ebp - 0xbc], ecx
call dword [ecx + 0x18]
mov esi, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
cmp dword [ebp - 0xcc], ebx
jne 0x1004c3c2
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc4]
mov dword [ecx], eax
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 4]
push ebx
push 0xffffffffffffffff
push ebx
mov eax, edi
call fcn.1004b8c9
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x100506c9
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x28], eax
jmp 0x100505e1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
push dword [ebp - 0xc4]
mov eax, dword [ebp - 0xbc]
call dword [eax + 0x1c]
pop ecx
jmp 0x100505e1
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov ebx, dword [esi + 0x44]
mov dword [ebp - 0xbc], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0xb8], edx
mov ecx, dword [edi + 4]
mov ecx, dword [ebx + ecx*4]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0xb4], ecx
mov ebx, dword [ecx]
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebx]
mov dword [ebp - 0xc0], ebx
mov ebx, dword [edx + 0x10]
mov dword [ebp - 0xc8], ebx
mov eax, dword [eax + 0x10]
and dword [ebp - 0xa8], 0
and dword [ebp - 0xa4], 0
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xa0], eax
test ebx, ebx
jle 0x100507a1
jmp 0x1005075c
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xa4]
lea ecx, [eax + 1]
imul ecx, ecx, 0x28
add ecx, edx
mov edx, dword [ebp - 0xa0]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + eax*4]
call fcn.1004b89e
inc dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0xc8]
jl 0x10050756
mov ecx, dword [ebp - 0xb4]
push dword [ebp - 0xa0]
mov eax, dword [ebp - 0xc0]
push dword [ebp - 0xc8]
mov byte [esi + 0x66], 1
push dword [edi + 0x10]
push dword [ebp - 0xc4]
push ecx
call dword [eax + 0x20]
mov edi, dword [ebp - 0xd4]
mov byte [esi + 0x66], 0
mov esi, dword [ebp - 0xb0]
add esp, 0x14
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
cmp dword [ebp - 0xcc], 0
jne 0x10050801
push dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc0]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x1005081a
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x1c], 0
jmp 0x100505e1
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, ebx
mov dword [ebp - 0xc0], eax
cmp byte [ecx + 0x1c], 0
mov dword [ebp - 0xe4], ecx
je 0x10050853
mov edi, eax
jmp 0x1004c0b4
mov esi, dword [ebp - 0xe4]
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [eax]
push 0x40
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0xb8]
push 0
push eax
call fcn.10087ea0
mov ebx, dword [ebp - 0xc0]
add esp, 0xc
lea eax, [ebp - 0xb0]
call fcn.10047a96
mov eax, dword [ebp - 0x94]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x94], ax
push dword [edi + 8]
lea eax, [ebp - 0xb8]
push eax
push dword [esi + 0x24]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x2c]
mov esi, dword [ebp - 0xc8]
mov edi, dword [ebp - 0xd4]
add esp, 0xc
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x100508e5
mov dword [ebp - 0xcc], eax
movzx eax, byte [ebp - 0xf0]
push eax
lea eax, [ebp - 0xb0]
call fcn.1004739e
mov eax, dword [ebp - 0xc0]
pop ecx
lea ebx, [ebp - 0xb0]
call fcn.10047a96
mov ecx, dword [ebp - 0xc0]
call fcn.100479d5
mov esi, edi
jmp 0x1004c72b
and dword [ebp - 0xc0], 0
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xbc], eax
cmp byte [eax + 0x1c], 0
jne case.0x1004bbf2.17
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0xc4], ecx
mov byte [esi + 0x66], 1
push dword [eax + 0x24]
call dword [ecx + 0x24]
mov edi, dword [ebp - 0xd4]
mov byte [esi + 0x66], 0
mov esi, dword [ebp - 0xc8]
pop ecx
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
cmp dword [ebp - 0xcc], 0
jne 0x10050997
mov eax, dword [ebp - 0xbc]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jne 0x1004c3c2
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0xd8], eax
jmp 0x100505e1
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc8], eax
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, ebx
mov dword [ebp - 0xc4], edi
push dword [edi + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
mov esi, dword [ebp - 0xc8]
mov edi, dword [ebp - 0xd4]
pop ecx
pop ecx
mov dword [ebp - 0xcc], eax
call fcn.1004ba64
mov byte [edi + 0x63], 0
jmp 0x100505e1
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc8], eax
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov edx, dword [edi + 8]
mov dword [ebp - 0xc0], edx
cmp dword [eax + 0x34], 0
je case.0x1004bbf2.17
mov eax, dword [ebp - 0xd0]
mov al, byte [eax + 0x22]
mov byte [ebp - 0x101], al
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xb0], eax
mov ecx, dword [edi + 0xc]
and dword [ebp - 0xbc], 0
imul ecx, ecx, 0x28
add ecx, ebx
mov dword [ebp - 0xac], ecx
test edx, edx
jle 0x10050a93
call fcn.1004b89e
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb0]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xac]
add ecx, 0x28
inc dword [ebp - 0xbc]
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xc0]
mov dword [ebp - 0xac], ecx
jl 0x10050a56
mov al, byte [edi + 3]
mov esi, dword [ebp - 0xd0]
mov byte [esi + 0x22], al
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xc0]
push dword [ebp - 0xc8]
call dword [eax + 0x34]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
mov al, byte [ebp - 0x101]
mov byte [esi + 0x22], al
mov esi, dword [ebp - 0xc8]
add esp, 0x10
call fcn.1004ba64
mov eax, dword [ebp - 0xec]
xor esi, esi
cmp dword [ebp - 0xcc], esi
jne 0x10050b23
cmp dword [eax + 4], esi
je 0x10050b23
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x100], ecx
mov dword [edx + 0x30], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [edx + 0x34], ecx
cmp dword [ebp - 0xcc], 0x13
jne 0x10050b5b
mov ecx, dword [eax + 0x10]
cmp byte [ecx + 0x10], 0
je 0x10050b5b
mov al, byte [eax + 3]
cmp al, 4
jne 0x10050b47
mov dword [ebp - 0xcc], esi
jmp 0x100505e1
cmp al, 5
jne 0x10050b50
push 2
pop eax
jmp 0x10050b53
movzx eax, al
mov byte [edi + 0x60], al
jmp 0x100505e1
inc dword [edi + 0x6c]
jmp 0x100505e1
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp - 0xdc]
and dword [eax + 0x14], 0
mov dword [eax + 0x10], ecx
jmp case.0x1004bbf2.17
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov edi, dword [edi + 0xc]
mov ecx, dword [ecx + 8]
shl eax, 4
mov esi, dword [eax + ecx + 4]
xor ebx, ebx
test edi, edi
je 0x10050bb6
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x30]
cmp ebx, edi
jae 0x10050bb6
mov ebx, edi
mov eax, esi
call fcn.10040629
mov eax, dword [esi + 4]
mov eax, dword [eax]
test ebx, ebx
jle 0x10050bcc
mov dword [eax + 0x84], ebx
mov edi, dword [eax + 0x84]
call fcn.10040697
mov ecx, dword [ebp - 0xdc]
mov eax, edi
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x1004c3c2
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0x98], 0
je case.0x1004bbf2.17
mov edi, dword [edi + 0x10]
mov ecx, edi
test edi, edi
jne 0x10050c0d
mov ecx, dword [esi + 0xa0]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je case.0x1004bbf2.17
push esi
call fcn.1004b598
mov edi, dword [ebp - 0xd0]
pop ecx
push eax
mov dword [ebp - 0xc4], eax
push dword [edi + 0x9c]
call dword [edi + 0x98]
push dword [ebp - 0xc4]
push edi
call fcn.10035f73
add esp, 0x10
jmp case.0x1004bbf2.17
mov dword [ebp - 0xcc], 9
jmp 0x1004c752
mov eax, dword [edi + 4]
mov dword [esi + 0x5c], eax
mov al, byte [edi + 8]
mov byte [esi + 0x60], al
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10050cb8
push eax
push 0x100b6914
push dword [ebp - 0xd0]
lea edi, [esi + 0x38]
call fcn.100362b9
mov eax, dword [ebp - 0xec]
add esp, 0xc
push dword [eax + 0x10]
push dword [esi + 0xa0]
push dword [ebp - 0xd8]
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.10037317
add esp, 0x14
jmp 0x10050cda
cmp dword [esi + 0x5c], 0
je 0x10050cda
push dword [esi + 0xa0]
push dword [ebp - 0xd8]
push str.constraint_failed_at__d_in___s_
push dword [edi + 4]
call fcn.10037317
add esp, 0x10
mov eax, esi
call fcn.10049859
push 5
pop edi
cmp eax, edi
je 0x10050d19
mov edi, dword [esi + 0x5c]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x1004c7b2
lea eax, [ebp - 0xb8]
push eax
call fcn.100476ac
pop ecx
jmp 0x1004f995
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x58], eax
mov byte [ebx + 0x1c], 0
mov dword [esi + 0x5c], edi
jmp 0x1004c7b2
test edi, edi
je 0x10050d58
mov esi, dword [ebp - 0xd0]
mov eax, esi
call fcn.10071e32
mov byte [esi + 0x1c], bl
mov edi, esi
mov esi, edi
call fcn.10071b95
mov eax, dword [ebp - 0xd4]
mov edi, dword [eax + 0x5c]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
mov esi, eax
jmp 0x1004c7b2
push ebx
mov eax, esi
call fcn.10049804
mov edi, eax
pop ecx
test edi, edi
jne 0x1004c7b2
mov al, byte [ebp - 0xc8]
mov edi, dword [ebp - 0xd0]
mov byte [edi + 0x1c], al
mov eax, esi
call fcn.10049859
push 5
pop ecx
cmp eax, ecx
jne 0x10050d37
mov eax, dword [ebp - 0xd8]
sub bl, byte [ebp - 0xc8]
mov dword [esi + 0x58], eax
mov byte [edi + 0x1c], bl
mov edi, ecx
mov dword [esi + 0x5c], ecx
jmp 0x1004c7b2
mov ecx, dword [ebp - 0xd8]
mov dword [esi + 0x58], ecx
mov edi, eax
mov dword [esi + 0x5c], eax
jmp 0x1004c7b2
push 0x10157
call fcn.10073159
pop ecx
mov dword [ebp - 0xcc], eax
mov esi, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x1e], 0
je 0x10050de4
mov dword [ebp - 0xcc], 7
cmp dword [ebp - 0xcc], 0xc0a
je 0x1004c752
mov eax, dword [ebp - 0xcc]
call fcn.10071ede
push eax
push 0x100b6914
push ecx
lea edi, [esi + 0x38]
call fcn.100362b9
add esp, 0xc
jmp 0x1004c752
mov dword [ebp - 0xcc], 0xd
jmp 0x10050dc8
mov dword [ebp - 0xcc], 0xd
jmp 0x10050dce
mov ebx, dword [ebp - 0xd0]
push 9
pop eax
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x5c], eax
call fcn.10071ede
push eax
push 0x100b6914
push ebx
jmp 0x10050e06