Function at 0x505864
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x348
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
mov ebx, dword [edi]
mov cl, byte [ebx + 0x3e]
mov esi, dword [edi + 8]
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xdc], eax
xor eax, eax
mov dword [ebp - 0xd4], eax
mov byte [ebp - 0x121], al
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x16c], eax
mov eax, dword [ebx + 0x24]
push edi
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xd8], ebx
mov byte [ebp - 0x120], cl
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], eax
call fcn.004acc40
add esp, 4
cmp dword [edi + 0x50], 7
je 0x50ac96
xor eax, eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], eax
mov dword [edi + 0x14], eax
mov ecx, dword [ebx + 0xf0]
mov dword [ebx + 0x1c4], eax
test ecx, ecx
jne 0x50acea
mov ecx, ebx
cmp dword [ecx + 0x124], eax
je 0x505945
mov eax, dword [edi + 0x7c]
test eax, eax
jne 0x505937
mov edx, dword [ecx + 0x12c]
jmp 0x50593f
xor edx, edx
div dword [ecx + 0x12c]
mov dword [ebp - 0x160], edx
mov eax, dword [edi + 0x4c]
mov edx, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [ebp - 0xdc], eax
cmp byte [ecx + 0x41], 0
jne 0x50ac96
mov ebx, dword [ebp - 0xdc]
mov dl, byte [ebx]
inc dword [ebp - 0x14c]
movzx ecx, dl
lea eax, [ecx - 1]
cmp eax, 0x9a
ja case.default.0x505983
jmp dword [eax*4 + 0x50ad28]
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov ecx, ebx
sub ecx, dword [ebp - 0x118]
mov edx, 4
mov word [esi + 8], dx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x50aa36
mov ebx, dword [ebx + 4]
mov edx, dword [ebp - 0x118]
lea eax, [ebx + ebx*4]
lea esi, [esi + eax*8]
mov eax, dword [esi]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov ecx, 0x80
mov dword [ebp - 0xdc], eax
mov word [esi + 8], cx
jmp 0x505a3f
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea ecx, [esi + edx*8]
dec eax
cdq
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebx + 8], 0
jne 0x50aa36
jmp case.default.0x505983
mov ebx, dword [ebx + 4]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + ecx*8]
lea esi, [esi + ecx*8]
mov ecx, dword [ebp - 0x118]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 + 8]
lea eax, [eax + eax*4]
mov edx, 0x80
lea ecx, [ecx + eax*4 - 0x14]
mov word [esi + 8], dx
mov dword [ebp - 0xdc], ecx
mov ebx, dword [ebp - 0xdc]
add ebx, 0x14
cmp dword [ebp - 0xd4], 0
mov dword [ebp - 0xdc], ebx
jne 0x50a6f3
mov esi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xd8]
jmp 0x50595a
mov eax, dword [ebx + 4]
sub ebx, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, 4
mov word [esi + 8], cx
mov ecx, dword [esi]
mov dword [esi], eax
mov eax, dword [ebp - 0x118]
mov dword [esi + 4], edx
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*4]
jmp 0x505a39
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
je case.default.0x505983
mov ecx, ebx
sub ecx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 4], 0
mov dword [ebp - 0xfc], eax
jne 0x50aa51
mov esi, dword [edi + 0xb0]
test esi, esi
je 0x50aa51
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xd8]
dec dword [edi + 0xb8]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0x5c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
call fcn.004f5230
cmp dword [ebx + 8], 4
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], ecx
jne 0x505b3b
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4 + 8]
dec eax
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x11c], edx
lea ecx, [ecx + eax*4]
jmp 0x505a39
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xf0], eax
mov byte [ebx], 0x1b
call fcn.0049c199
cmp byte [ebp - 0x120], 1
mov dword [ebx + 4], eax
je 0x505c4f
mov ebx, dword [ebp - 0xf0]
push 0
push 1
push ecx
or eax, 0xffffffff
mov ecx, ebx
call fcn.004b779d
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp eax, 0x12
je 0x50acc5
movzx ecx, byte [ebp - 0x120]
mov eax, ebx
call fcn.004b76bb
test eax, eax
jne 0x50ac96
mov edx, 0x800
or word [ebx + 8], dx
mov dword [ebx + 0x18], eax
mov ebx, dword [ebp - 0xdc]
cmp byte [ebx + 1], 0xff
jne 0x505c33
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xd8]
call fcn.0049bfbf
mov eax, dword [ebp - 0xf0]
mov byte [ebx + 1], 0xff
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [eax + 0xc]
mov dword [ebx + 4], edx
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xd8]
cmp eax, dword [ecx + 0x58]
jg 0x50acc5
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, 0xa02
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx + 4]
mov cl, byte [ebp - 0x120]
mov dword [eax + 0xc], edx
mov byte [eax + 0xa], cl
cmp byte [ebx + 3], 0
je case.default.0x505983
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [esi + ecx*8]
or edx, dword [esi + ecx*8 + 4]
je case.default.0x505983
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov edx, dword [ebx + 4]
neg edx
sbb edx, edx
and edx, 0x100
inc edx
movzx ecx, dx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xfc], ecx
mov word [eax + 8], cx
test esi, esi
jle case.default.0x505983
jmp 0x505cf4
mov eax, dword [ebp - 0xf0]
add eax, 0x28
mov dword [ebp - 0xf0], eax
call fcn.004a138b
mov ax, word [ebp - 0xfc]
mov ecx, dword [ebp - 0xf0]
dec esi
mov word [ecx + 8], ax
test esi, esi
jg 0x505cf4
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov ax, word [esi + edx*8 + 8]
lea esi, [esi + edx*8]
mov ecx, 0xff7f
and ax, cx
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, dword [ebx + 0x10]
push 0
mov esi, eax
mov eax, dword [ebx + 4]
push 0
push edx
mov ecx, esi
call fcn.004b779d
mov al, byte [ebp - 0x120]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x3c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8 - 0x28]
mov ecx, esi
call fcn.004a1413
test eax, eax
jne 0x50acc5
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edi, esi
push 0x800
mov esi, eax
call fcn.004a143a
add esp, 4
mov edi, dword [ebp - 0xf4]
jmp case.default.0x505983
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea edi, [esi + ecx*8]
lea esi, [esi + edx*8]
lea esp, [esp]
mov eax, esi
call fcn.004a147e
mov eax, 0x1000
test word [esi + 8], ax
je 0x505dfb
mov eax, esi
call fcn.004b30f5
test eax, eax
jne 0x50ac90
mov ebx, dword [ebp - 0xdc]
add edi, 0x28
add esi, 0x28
dec dword [ebp - 0xe0]
jne 0x505dd4
mov edi, dword [ebp - 0xf4]
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [esi + edx*8]
mov dword [ebp - 0xe0], ecx
lea esi, [esi + eax*8]
jmp 0x505e34
push 0x1000
call fcn.004a143a
mov ecx, 0x1000
add esp, 4
test word [esi + 8], cx
je 0x505e61
mov eax, esi
call fcn.004b30f5
test eax, eax
jne 0x50ac90
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
mov edx, eax
dec eax
mov dword [ebp - 0xe0], eax
test edx, edx
je 0x505daa
add esi, 0x28
add edi, 0x28
jmp 0x505e34
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x11c]
lea edi, [eax + ecx*8]
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
push 0x1000
lea esi, [eax + edx*8]
call fcn.004a143a
mov edi, dword [ebp - 0xf4]
add esp, 4
jmp case.default.0x505983
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x124]
test eax, eax
je 0x505ee8
mov ecx, dword [ebp - 0x160]
cmp dword [ebp - 0x14c], ecx
jb 0x505ee8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [edx + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x50a6e9
push 0
mov edx, edi
call fcn.004ccaf0
add esp, 4
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
push 1
push edi
call fcn.004e37dd
add esp, 8
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
mov eax, dword [edi + 0x48]
add eax, 2
or eax, 1
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov dword [edi + 0x14], esi
cmp dword [ebx + 8], 0
mov dword [ebp - 0xfc], 0
jle 0x505f80
nop
mov edx, 0x1000
test word [esi + 8], dx
je 0x505f64
mov eax, esi
call fcn.004b30f5
test eax, eax
jne 0x50ac96
mov ebx, dword [ebp - 0xdc]
mov eax, esi
call fcn.004ac364
mov eax, dword [ebp - 0xfc]
inc eax
add esi, 0x28
mov dword [ebp - 0xfc], eax
cmp eax, dword [ebx + 8]
jl 0x505f44
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 0x41], 0
jne 0x50ac96
mov ecx, dword [ebp - 0xdc]
sub ecx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [edi + 0x4c], edx
mov esi, 0x64
jmp 0x50a792
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea ecx, [esi + edx*8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
mov cl, byte [edx + 8]
or cl, al
mov dword [ebp - 0xf8], edx
test cl, 1
je 0x505ffd
mov eax, esi
call fcn.004a138b
jmp case.default.0x505983
test eax, 0x4000
je 0x506017
mov eax, dword [ebp - 0xe4]
call fcn.004ac2cd
test eax, eax
jne 0x50ac96
mov eax, dword [ebp - 0xf8]
mov edx, 0x4000
test word [eax + 8], dx
je 0x506035
call fcn.004ac2cd
test eax, eax
jne 0x50ac96
mov ecx, dword [ebp - 0xe4]
mov bl, 0x12
test byte [ecx + 8], bl
jne 0x50605d
mov edx, dword [ebp - 0x120]
push 0
push edx
mov eax, ecx
call fcn.004b76d7
add esp, 8
test eax, eax
jne 0x50ac96
mov eax, dword [ebp - 0xf8]
test byte [eax + 8], bl
jne 0x506081
mov ecx, dword [ebp - 0x120]
push 0
push ecx
call fcn.004b76d7
add esp, 8
test eax, eax
jne 0x50ac96
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xf8]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0xd8]
mov ebx, eax
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x50acc5
jl 0x5060b4
cmp ebx, eax
ja 0x50acc5
xor eax, eax
cmp esi, dword [ebp - 0xf8]
lea ecx, [ebx + 2]
sete al
mov edi, esi
call fcn.004ac194
test eax, eax
jne 0x50ac90
mov ax, word [esi + 8]
mov edi, dword [ebp - 0xf8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x506105
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push 0xffffffffffffffff
push ecx
call fcn.0040ab34
add esp, 0x10
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov ecx, dword [esi + 0x10]
add ecx, dword [edi + 0xc]
push edx
push eax
push 0xffffffffffffffff
push ecx
call fcn.0040ab34
mov edx, dword [esi + 0x10]
mov edi, dword [ebp - 0xf4]
mov byte [ebx + edx], 0
mov eax, dword [esi + 0x10]
mov dl, byte [ebp - 0x120]
mov byte [eax + ebx + 1], 0
mov ecx, 0x200
add esp, 0x10
or word [esi + 8], cx
mov dword [esi + 0xc], ebx
mov byte [esi + 0xa], dl
jmp 0x505a3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0xe4], eax
call fcn.004a270e
movzx ecx, ax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xf8], eax
call fcn.004a270e
movzx eax, ax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xf8]
lea edx, [esi + ecx*8]
mov cl, byte [eax + 8]
mov dword [ebp - 0xf0], edx
mov edx, dword [ebp - 0xe4]
or cl, byte [edx + 8]
test cl, 1
jne 0x50645a
mov al, byte [ebp - 0xe0]
and al, byte [ebp - 0x108]
test al, 4
je 0x506317
mov ecx, edx
mov edx, dword [ebp - 0xf8]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x158], edx
movzx edx, byte [ebx]
add edx, 0xffffffa7
mov dword [ebp - 0x15c], esi
mov byte [ebp - 0x10d], 1
cmp edx, 3
ja case.default.0x5061ff
jmp dword [edx*4 + 0x50af94]
push ecx
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.0049ce31
add esp, 0xc
test eax, eax
jne 0x50631e
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
mov dword [eax], ecx
jmp 0x506804
push ecx
push eax
lea edx, [ebp - 0x15c]
call fcn.0049cec9
add esp, 8
test eax, eax
jne 0x50631e
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
mov dword [eax], ecx
jmp 0x506804
push ecx
push eax
lea ecx, [ebp - 0x15c]
push ecx
call fcn.0049cf18
add esp, 0xc
test eax, eax
jne 0x50631e
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
mov dword [eax], ecx
jmp 0x506804
mov edx, eax
or edx, ecx
je 0x50645a
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x5062be
test esi, esi
jne 0x5062be
cmp dword [ebp - 0x158], 0x80000000
je 0x50631e
push ecx
push eax
mov eax, dword [ebp - 0x158]
push eax
push esi
call fcn.00454150
jmp 0x5062f8
mov edx, eax
or edx, ecx
je 0x50645a
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x5062e9
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0x158]
push eax
push esi
call fcn.0050dcf0
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x158], edx
mov dword [eax], ecx
jmp 0x506804
mov byte [ebp - 0x10d], 0
mov eax, dword [ebp - 0xe4]
call fcn.004a117c
fstp qword [ebp - 0x100]
mov eax, dword [ebp - 0xf8]
call fcn.004a117c
movzx eax, byte [ebx]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x506345
jmp dword [eax*4 + 0x50afa4]
fadd qword [ebp - 0x100]
jmp 0x5063e8
fsub qword [ebp - 0x100]
jmp 0x5063e8
fmul qword [ebp - 0x100]
jmp 0x5063e8
fld qword [ebp - 0x100]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x506456
fdivp st(1)
jmp 0x5063e8
fld qword [ebp - 0x100]
call fcn.00455136
mov esi, eax
mov dword [ebp - 0x1ac], edx
call fcn.00455136
mov ecx, esi
or ecx, dword [ebp - 0x1ac]
je 0x50645a
mov ecx, esi
and ecx, dword [ebp - 0x1ac]
cmp ecx, 0xffffffff
jne 0x5063c7
mov esi, 1
mov dword [ebp - 0x1ac], 0
mov ecx, dword [ebp - 0x1ac]
push ecx
push esi
push edx
push eax
call fcn.0050dcf0
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], edx
fild qword [ebp - 0x22c]
sub esp, 8
fst qword [ebp - 0x100]
fstp qword [esp]
call fcn.0049c169
add esp, 8
test eax, eax
jne 0x50645a
mov eax, dword [ebp - 0xf0]
fld qword [ebp - 0x100]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0xbe08
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov dl, byte [ebp - 0xe0]
or dl, byte [ebp - 0x108]
test dl, 8
jne case.default.0x505983
cmp byte [ebp - 0x10d], 0
jne case.default.0x505983
mov edi, eax
call fcn.004a11c4
mov edi, dword [ebp - 0xf4]
jmp case.default.0x505983
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xf0]
call fcn.004a138b
jmp case.default.0x505983
mov eax, dword [ebx + 4]
test eax, eax
je case.default.0x505983
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [esi + eax*8]
call fcn.004a13db
add esp, 8
jmp case.default.0x505983
mov ecx, dword [edi + 0xc]
mov eax, dword [ebx + 0xc]
movzx edx, byte [ebx + 3]
lea eax, [eax + eax*4]
mov dword [ebp - 0x108], ecx
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x1ec], ecx
mov dword [ebp - 0xe0], eax
test edx, edx
jle 0x50650b
nop
mov ecx, dword [ebp - 0x108]
mov edx, 0x1000
mov dword [ecx + eax*4], esi
test word [esi + 8], dx
je 0x5064f3
mov eax, esi
call fcn.004b30f5
test eax, eax
jne 0x50ac96
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
inc eax
add esi, 0x28
mov dword [ebp - 0xe0], eax
cmp eax, dword [ebp - 0x10c]
jl 0x5064c4
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x1e8], eax
mov edx, ebx
sub edx, dword [ebp - 0x118]
mov eax, 0x66666667
imul edx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0x1dc], esi
mov dword [ebp - 0x1e0], edi
mov dx, word [ecx + 8]
mov eax, 0xbe01
and dx, ax
mov eax, dword [ebp - 0xd8]
or dx, 1
mov word [ecx + 8], dx
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x144]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x108]
push eax
mov eax, dword [ebp - 0x1e8]
push ecx
lea edx, [ebp - 0x1ec]
mov byte [ebp - 0x1d3], 0
mov ecx, dword [eax + 0xc]
push edx
mov dword [ebp - 0xfc], esi
call ecx
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
add esp, 0xc
cmp byte [ebp - 0x1d3], 0
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], eax
je 0x50660f
cmp dword [ebp - 0x1d8], 0
je 0x5065fa
mov ecx, dword [ebp - 0x1ec]
push ecx
call fcn.004b7e98
mov esi, dword [ebp - 0xd8]
push eax
push 0x539a5c
lea ebx, [edi + 0x2c]
call fcn.004c9994
mov edx, dword [ebp - 0x1d8]
mov ebx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xfc]
add esp, 0xc
mov dword [ebp - 0xd4], edx
mov eax, dword [ebx + 4]
push eax
push esi
mov ebx, edi
call fcn.004a17fe
mov ebx, dword [ebp - 0xdc]
add esp, 8
movzx ecx, byte [ebp - 0x120]
mov eax, dword [ebp - 0x1ec]
call fcn.004b76bb
mov ecx, dword [ebp - 0x1ec]
call fcn.004a1413
test eax, eax
jne 0x50acc5
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [esi + ecx*8]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0xf0], eax
mov al, byte [ecx + 8]
or al, byte [edx + 8]
mov dword [ebp - 0xe4], edx
test al, 1
je 0x50667a
mov eax, dword [ebp - 0xf0]
call fcn.004a138b
jmp case.default.0x505983
call fcn.004a1119
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
call fcn.004a1119
mov esi, eax
mov al, byte [ebx]
mov byte [ebp - 0x10d], al
cmp al, 0x55
jne 0x5066b5
and dword [ebp - 0x138], esi
and dword [ebp - 0x134], edx
jmp 0x5067f0
mov al, byte [ebp - 0x10d]
cmp al, 0x56
jne 0x5066d0
or dword [ebp - 0x138], esi
or dword [ebp - 0x134], edx
jmp 0x5067f0
mov ecx, esi
or ecx, edx
je 0x5067f0
test edx, edx
jg 0x50670e
jl 0x5066e4
test esi, esi
jae 0x506703
mov cl, 0xaf
sub cl, al
mov al, cl
mov byte [ebp - 0x10d], cl
cmp edx, 0xffffffff
jl 0x50670e
jg 0x5066fc
cmp esi, 0xffffffc0
jbe 0x50670e
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x50674f
jg 0x50670e
cmp esi, 0x40
jb 0x50674f
cmp dword [ebp - 0x134], 0
jg 0x50673b
jl 0x506722
cmp dword [ebp - 0x138], 0
jae 0x50673b
cmp al, 0x57
je 0x50673b
or eax, 0xffffffff
cdq
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
jmp 0x5067f0
xor eax, eax
cdq
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
jmp 0x5067f0
push 8
lea edx, [ebp - 0x138]
push edx
lea eax, [ebp - 0x154]
push 0xffffffffffffffff
push eax
call fcn.0040ab34
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 0x150]
add esp, 0x10
cmp byte [ebp - 0x10d], 0x57
mov ecx, esi
jne 0x506793
call fcn.0050d475
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
jmp 0x5067d6
call fcn.004672df
cmp dword [ebp - 0x134], 0
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
jg 0x5067d6
jl 0x5067b8
cmp dword [ebp - 0x138], 0
jae 0x5067d6
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0050d475
or dword [ebp - 0x154], eax
or dword [ebp - 0x150], edx
push 8
lea ecx, [ebp - 0x154]
push ecx
lea edx, [ebp - 0x138]
push 0xffffffffffffffff
push edx
call fcn.0040ab34
add esp, 0x10
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x138]
mov dword [eax], ecx
mov edx, dword [ebp - 0x134]
mov dword [eax + 4], edx
mov cx, word [eax + 8]
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 8], cx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.004a1261
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
movzx eax, word [esi + edx*8 + 8]
lea esi, [esi + edx*8]
test al, 4
jne 0x506898
test al, 8
jne 0x50686a
test al, 2
je 0x506877
push 1
mov eax, esi
call fcn.004a25cc
add esp, 4
jmp 0x506877
mov edi, esi
call fcn.004a11c4
mov edi, dword [ebp - 0xf4]
movzx eax, word [esi + 8]
test al, 4
jne 0x506898
cmp dword [ebx + 8], 0
jne 0x50aa36
mov dword [ebp - 0xd4], 0x14
jmp 0x50ac30
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 4
lea esi, [esi + eax*8]
je case.default.0x505983
call fcn.004a1284
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov edx, 0x4000
test word [esi + 8], dx
je 0x5068fd
mov eax, esi
call fcn.004ac2cd
mov dl, byte [ebp - 0x120]
mov cl, byte [ebx + 8]
mov dword [ebp - 0xd4], eax
mov eax, esi
call fcn.004bef98
jmp case.default.0x505983
mov dl, byte [ebp - 0x120]
mov cl, byte [ebx + 8]
mov eax, esi
mov dword [ebp - 0xd4], 0
call fcn.004bef98
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
lea edx, [esi + edx*8]
mov ecx, eax
mov dword [ebp - 0xec], ecx
movzx ecx, word [edx + 8]
mov dword [ebp - 0xf8], edx
mov edx, eax
mov dword [ebp - 0x114], ecx
or cl, dl
test cl, 1
je 0x5069bb
mov al, byte [ebx + 3]
test al, al
jns 0x506987
test dl, 1
je 0x50697d
mov eax, dword [ebp - 0x114]
test al, 1
je 0x50697d
test eax, 0x100
jne 0x50697d
xor eax, eax
jmp 0x506b0b
mov eax, 1
jmp 0x506b0b
test al, 0x20
je 0x5069ae
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov ax, word [esi + edx*8 + 8]
lea esi, [esi + edx*8]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x505983
test al, 0x10
jne 0x50aa36
jmp case.default.0x505983
mov bl, byte [ebx + 3]
and bl, 0x47
cmp bl, 0x43
jl 0x506a00
and al, 0xe
cmp al, 2
jne 0x5069dc
mov eax, dword [ebp - 0xe4]
push 0
call fcn.004a25cc
add esp, 4
mov edx, dword [ebp - 0xf8]
mov al, byte [edx + 8]
and al, 0xe
cmp al, 2
jne 0x506a91
push 0
mov eax, edx
call fcn.004a25cc
add esp, 4
jmp 0x506a91
cmp bl, 0x42
jne 0x506a91
test al, 2
jne 0x506a4a
test al, 0xc
je 0x506a4a
mov ecx, dword [ebp - 0x120]
mov ebx, dword [ebp - 0xe4]
push 1
push ecx
mov eax, ebx
call fcn.004b76d7
mov dx, word [ebx + 8]
xor dx, word [ebp - 0xec]
mov eax, 0x1ff
and dx, ax
add esp, 8
xor dx, word [ebx + 8]
movzx ecx, dx
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, word [edx + 8]
test al, 2
jne 0x506a91
test al, 0xc
je 0x506a91
mov eax, dword [ebp - 0x120]
push 1
mov ebx, edx
push eax
mov eax, ebx
call fcn.004b76d7
mov cx, word [ebx + 8]
xor cx, word [ebp - 0x114]
mov edx, 0x1ff
and cx, dx
add esp, 8
xor cx, word [ebx + 8]
movzx eax, cx
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0xe4]
mov ecx, 0x4000
test word [edx + 8], cx
je 0x506ab3
mov eax, edx
call fcn.004ac2cd
and dword [ebp - 0xec], 0xbfff
mov ecx, dword [ebp - 0xf8]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x506ad5
mov eax, ecx
call fcn.004ac2cd
and dword [ebp - 0x114], 0xbfff
mov edx, dword [ebp - 0xd8]
cmp byte [edx + 0x41], 0
jne 0x50ac96
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xf8]
call fcn.004b7d1e
mov ebx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xec]
movzx ecx, byte [ebx]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x506b16
jmp dword [ecx*4 + 0x50afb4]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x506b51
xor ecx, ecx
test eax, eax
setne cl
jmp 0x506b51
xor ecx, ecx
test eax, eax
sets cl
jmp 0x506b51
xor ecx, ecx
test eax, eax
setle cl
jmp 0x506b51
xor ecx, ecx
test eax, eax
setg cl
jmp 0x506b51
xor ecx, ecx
test eax, eax
setns cl
mov eax, ecx
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 8], dx
mov dx, word [ebp - 0x114]
mov ecx, dword [ebp - 0xf8]
mov word [ecx + 8], dx
test byte [ebx + 3], 0x20
je 0x506ecf
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
mov cx, word [esi + edx*8 + 8]
lea esi, [esi + edx*8]
mov edx, 0xbe04
and cx, dx
cdq
or cx, 4
mov word [esi + 8], cx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x16c], eax
jmp case.default.0x505983
test byte [ebx + 3], 1
jne 0x506bbf
mov dword [ebp - 0x16c], 0
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x104], 0
test eax, eax
jle 0x506c9f
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x104]
add edx, 0x14
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x16c]
test eax, eax
je 0x506c17
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x104]
movzx edx, byte [eax + edx]
mov eax, dword [ebp - 0xfc]
add eax, ecx
add ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], edx
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov edx, dword [ebp - 0x10c]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
call fcn.004b7d1e
mov dword [ebp - 0x168], eax
test eax, eax
jne 0x506c88
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], 4
inc ecx
mov dword [ebp - 0x104], ecx
cmp ecx, dword [ebp - 0x108]
jl 0x506c0a
mov dword [ebp - 0x16c], eax
jmp case.default.0x505983
cmp dword [ebp - 0xec], 0
je 0x506c9f
mov eax, dword [ebp - 0x168]
neg eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x16c], 0
jmp case.default.0x505983
mov eax, dword [ebp - 0x168]
mov edx, dword [ebp - 0x118]
test eax, eax
jns 0x506cd3
mov ebx, dword [ebx + 4]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xdc], eax
jmp 0x505a3f
jne 0x506cea
mov ebx, dword [ebx + 8]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xdc], eax
jmp 0x505a3f
mov ebx, dword [ebx + 0xc]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xdc], eax
jmp 0x505a3f
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 8], 1
lea ecx, [esi + ecx*8]
je 0x506d1b
mov dword [ebp - 0x104], 2
jmp 0x506d38
call fcn.004a1119
or eax, edx
mov dword [ebp - 0x104], 1
jne 0x506d38
mov dword [ebp - 0x104], 0
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
lea ecx, [esi + edx*8]
je 0x506d4f
mov eax, 2
jmp 0x506d61
call fcn.004a1119
or eax, edx
je 0x506d5f
mov eax, 1
jmp 0x506d61
xor eax, eax
cmp byte [ebx], 0x48
mov ecx, dword [ebp - 0x104]
jne 0x506d79
lea eax, [eax + ecx*2]
movzx eax, byte [ecx + eax + 0x53c1e4]
jmp 0x506d84
lea edx, [eax + ecx*2]
movzx eax, byte [ecx + edx + 0x53c228]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
cmp eax, 2
jne 0x506dab
mov dx, word [esi + 8]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [esi + 8], dx
jmp case.default.0x505983
mov cx, word [esi + 8]
cdq
mov dword [esi + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov dword [esi], eax
mov word [esi + 8], cx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, esi
mov dword [ebp - 0xe4], ecx
call fcn.004a138b
mov eax, dword [ebp - 0xe4]
test byte [eax + 8], 1
jne case.default.0x505983
mov ecx, 4
mov word [esi + 8], cx
mov ecx, eax
call fcn.004a1119
or eax, edx
jne 0x506e1d
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x505983
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.004a138b
mov edx, dword [ebp - 0xe4]
test byte [edx + 8], 1
jne case.default.0x505983
mov eax, 4
mov ecx, edx
mov word [esi + 8], ax
call fcn.004a1119
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x505983
mov eax, dword [edi + 0xc8]
mov edx, dword [ebx + 4]
cmp byte [eax + edx], 0
jne 0x50aa36
mov byte [eax + edx], 1
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea eax, [esi + eax*8]
je 0x506ea8
mov eax, dword [ebx + 0xc]
jmp 0x506ecf
call fcn.004a117c
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x506ebf
mov eax, 1
jmp 0x506ec1
xor eax, eax
cmp byte [ebx], 0x2e
jne 0x506ecf
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
jne 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
je 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x104], ecx
lea ecx, [eax + edx*8]
mov eax, dword [edi + 0x38]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
cmp byte [esi + 0x1a], 0
mov eax, dword [esi]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0xec], eax
je 0x506fbb
call fcn.004ebf89
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0
jne 0x50ac30
mov esi, dword [ebp - 0xf8]
mov edx, dword [esi + 0x3c]
cmp edx, dword [edi + 0x48]
je 0x507146
cmp byte [esi + 0x19], 0
je 0x507002
cmp dword [ebp - 0xec], 0
jne 0x506ff0
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8]
lea ecx, [esi + 0x40]
mov dword [esi + 0x44], edx
mov dword [ecx], edx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x164], edx
mov dword [ebp - 0xe4], ecx
mov dword [esi + 0x4c], eax
jmp 0x5070bf
test eax, eax
je 0x506fe1
cmp byte [eax + 0x49], 1
je 0x506fe1
mov edi, dword [ebp - 0xf8]
call fcn.004f36d8
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
jmp 0x506f57
mov dword [ebp - 0xd4], 0
jmp 0x506f6a
mov esi, dword [ebp - 0xf0]
mov eax, esi
call fcn.004a138b
jmp 0x50749c
test byte [esi + 0x1c], 4
mov esi, dword [ebp - 0xec]
jne 0x50704c
lea edi, [ebp - 0x224]
call fcn.004a0ca2
mov eax, dword [ebp - 0xec]
lea esi, [ebp - 0x164]
call fcn.004a0d43
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0xf4]
mov dword [ecx + 0x4c], eax
lea eax, [ecx + 0x40]
mov ecx, dword [ebp - 0x224]
mov dword [ebp - 0xe4], eax
mov dword [eax], ecx
jmp 0x50707e
mov eax, dword [ebp - 0xf8]
add eax, 0x40
push eax
mov dword [ebp - 0xe4], eax
call fcn.004a0cf2
mov eax, dword [ebp - 0xec]
add esp, 4
lea esi, [ebp - 0x164]
call fcn.004a0d43
mov edx, dword [ebp - 0xf8]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x164]
cmp eax, ecx
ja 0x50709b
mov ecx, dword [ebp - 0xf8]
mov dword [ecx + 0x44], eax
jmp 0x5070a4
mov edx, dword [ebp - 0xf8]
mov dword [edx + 0x44], ecx
mov ecx, dword [ebp - 0xd8]
cmp eax, dword [ecx + 0x58]
ja 0x50acc5
mov edx, dword [ebp - 0x164]
mov esi, dword [ebp - 0xf8]
mov eax, dword [edi + 0x48]
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x5070de
movzx eax, al
mov dword [ebp - 0x140], eax
mov ecx, 1
jmp 0x5070fe
lea esi, [ebp - 0x140]
call fcn.0049cd7d
mov edx, dword [ebp - 0x164]
mov esi, dword [ebp - 0xf8]
movzx ecx, al
mov eax, dword [ebp - 0x140]
movzx ecx, cl
mov dword [esi + 0x48], ecx
xor ecx, ecx
mov word [esi + 0x16], cx
mov ecx, dword [ebp - 0x114]
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x507131
mov ecx, dword [ebp - 0xe4]
cmp eax, dword [ecx]
ja 0x507131
cmp edx, eax
jae 0x507156
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x44], eax
jmp 0x507156
mov eax, 0x11e0a
call fcn.004c8db1
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
movzx edx, word [esi + 0x16]
cmp edx, dword [ebp - 0x104]
jg 0x507386
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0x114]
cmp eax, dword [ecx]
jae 0x507343
mov eax, dword [esi + 0x4c]
test eax, eax
jne 0x5071f1
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], eax
mov edx, dword [esi + 0x1c]
shr edx, 2
not edx
mov eax, ecx
mov ecx, dword [eax]
and edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0xec]
push 0
lea eax, [ebp - 0x288]
call fcn.004f28f1
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
mov edx, dword [ebp - 0x278]
mov dword [ebp - 0x10c], edx
jmp 0x5071f7
mov dword [ebp - 0x10c], eax
movzx ecx, word [esi + 0x16]
mov eax, dword [ebp - 0x114]
mov edx, dword [eax + ecx*4]
mov eax, dword [eax]
mov dword [ebp - 0x140], edx
mov edx, dword [esi + 0x48]
add edx, dword [ebp - 0x10c]
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe0], eax
lea eax, [esi + ecx*4 + 0x54]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0x108], eax
mov al, byte [edx]
cmp al, 0x80
jae 0x50724f
movzx eax, al
inc edx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0xe4], edx
jmp 0x50727b
mov ecx, dword [ebp - 0xe4]
lea esi, [ebp - 0x13c]
call fcn.0049cd7d
mov esi, dword [ebp - 0xf8]
movzx ecx, al
add dword [ebp - 0xe4], ecx
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x108]
mov dword [edx], eax
call fcn.004a19d8
mov edx, eax
mov eax, dword [ebp - 0x140]
add eax, edx
mov dword [ebp - 0x140], eax
cmp eax, edx
jb 0x507334
mov edx, dword [ebp - 0x114]
add dword [ebp - 0x108], 4
inc ecx
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], ecx
cmp ecx, dword [ebp - 0x104]
jg 0x5072d1
cmp edx, dword [ebp - 0xe0]
jb 0x507237
mov word [esi + 0x16], cx
mov ecx, edx
sub ecx, dword [ebp - 0x10c]
cmp dword [esi + 0x4c], 0
mov dword [esi + 0x48], ecx
jne 0x507309
lea eax, [ebp - 0x288]
call fcn.004a10a3
mov eax, dword [ebp - 0x140]
mov edx, 1
mov word [ebp - 0x280], dx
mov edx, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
cmp edx, ecx
jb 0x50731a
ja 0x50731f
cmp eax, dword [esi + 0x40]
jne 0x50731f
cmp eax, dword [esi + 0x40]
jbe 0x507343
mov eax, 0x11e5e
call fcn.004c8db1
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
mov edx, dword [ebp - 0xe0]
inc edx
mov dword [ebp - 0xe4], edx
jmp 0x5072d1
movzx eax, word [esi + 0x16]
cmp eax, dword [ebp - 0x104]
jg 0x507386
cmp byte [ebx + 1], 0xf8
jne 0x507376
mov edi, dword [ebx + 0x10]
mov esi, dword [ebp - 0xf0]
push 0x800
call fcn.004a143a
mov edi, dword [ebp - 0xf4]
add esp, 4
jmp 0x507496
mov eax, dword [ebp - 0xf0]
call fcn.004a138b
jmp 0x507496
mov edx, dword [ebp - 0xf0]
mov ecx, 0x2460
test word [edx + 8], cx
je 0x50739e
mov eax, edx
call fcn.004a138b
mov eax, dword [ebp - 0x104]
mov ecx, dword [esi + eax*4 + 0x54]
mov edx, dword [esi + 0x44]
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x114]
cmp edx, dword [ecx + eax*4 + 4]
jb 0x5073df
mov ecx, dword [esi + 0x4c]
mov edx, dword [ebp - 0x114]
add ecx, dword [edx + eax*4]
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x13c]
call fcn.004a1b28
jmp 0x507487
mov cl, byte [ebx + 3]
mov eax, dword [ebp - 0x13c]
test cl, 0xc0
je 0x5073fa
cmp eax, 0xc
jb 0x5073f6
test al, 1
je 0x507403
test cl, cl
js 0x507403
call fcn.004a19d8
test eax, eax
jne 0x507429
mov edx, dword [ebp - 0x13c]
mov ecx, 0xd
cmp ecx, edx
sbb ecx, ecx
not ecx
lea eax, [ebp - 0x224]
and ecx, eax
mov eax, dword [ebp - 0xf0]
call fcn.004a1b28
jmp 0x507487
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x114]
shr ecx, 2
not ecx
and ecx, 1
push ecx
push eax
mov eax, dword [ebp - 0x104]
mov ecx, dword [edx + eax*4]
mov eax, dword [ebp - 0xf0]
push ecx
mov ecx, dword [ebp - 0xec]
call fcn.004f28f1
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
mov esi, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x13c]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.004a1b28
mov edx, 0xefff
and word [esi + 8], dx
mov al, byte [ebp - 0x120]
mov ecx, dword [ebp - 0xf0]
mov byte [ecx + 0xa], al
mov esi, dword [ebp - 0xf0]
movzx eax, word [esi + 8]
test eax, 0x1000
je case.default.0x505983
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xfc], ecx
test ecx, ecx
je case.default.0x505983
mov ebx, dword [esi + 0xc]
and eax, 0x12
mov dword [ebp - 0xe8], eax
lea ecx, [ebx + 2]
mov eax, esi
call fcn.004ac2ad
test eax, eax
jne 0x50ac96
mov edx, dword [ebp - 0xfc]
mov eax, dword [esi + 0x10]
push ebx
push edx
push 0xffffffffffffffff
push eax
call fcn.0040ab34
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0xe8]
mov byte [ebx + ecx], 0
mov edx, dword [esi + 0x10]
add esp, 0x10
or eax, 0x200
mov byte [ebx + edx + 1], 0
mov word [esi + 8], ax
jmp 0x505a3f
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [ecx]
mov dword [ebp - 0xe0], ecx
test al, al
je case.default.0x505983
jmp 0x507534
mov ecx, dword [ebp - 0x120]
inc dword [ebp - 0xe0]
push ecx
mov ecx, esi
call fcn.004b8473
mov edx, dword [ebp - 0xe0]
mov al, byte [edx]
add esp, 4
add esi, 0x28
test al, al
jne 0x507534
jmp case.default.0x505983
mov ecx, dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0x108], edx
lea edx, [edx + eax*8 - 0x28]
movzx eax, byte [edi + 0x57]
mov dword [ebp - 0x10c], edx
lea edx, [ebx + ebx*4]
mov dword [ebp - 0xfc], eax
lea eax, [esi + edx*8]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xf0], eax
test ecx, ecx
je 0x5075f0
mov esi, dword [ebp - 0x108]
mov al, byte [ecx]
mov ebx, ecx
lea ebx, [ebx]
mov edx, dword [ebp - 0x120]
push edx
mov ecx, esi
call fcn.004b8473
mov al, byte [ebx + 1]
inc ebx
add esp, 4
add esi, 0x28
test al, al
jne 0x5075d4
mov esi, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xfc]
push eax
mov edx, esi
call fcn.004a18f4
mov ebx, eax
add esp, 4
mov dword [esi + 0x1c], ebx
call fcn.004a19d8
mov ecx, 0x4000
mov dword [ebp - 0xe0], eax
test word [esi + 8], cx
je 0x507650
mov edx, dword [ebp - 0x178]
or edx, dword [ebp - 0x174]
je 0x507639
mov eax, esi
call fcn.004ac2cd
jmp 0x507650
mov eax, dword [esi]
cdq
add dword [ebp - 0x180], eax
mov eax, dword [esi]
adc dword [ebp - 0x17c], edx
sub dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
cdq
add dword [ebp - 0x178], eax
adc dword [ebp - 0x174], edx
cmp ebx, 0x7f
ja 0x50766f
mov eax, 1
jmp 0x50767a
push 0
push ebx
call fcn.0049cdec
add esp, 8
add dword [ebp - 0x114], eax
sub esi, 0x28
cmp esi, dword [ebp - 0x108]
jae 0x5075f6
mov esi, dword [ebp - 0x114]
cmp esi, 0x7e
jle 0x5076bf
mov eax, esi
cdq
push edx
push eax
call fcn.0049cdec
mov ebx, eax
add esi, ebx
mov eax, esi
cdq
push edx
push eax
mov dword [ebp - 0x114], esi
call fcn.0049cdec
add esp, 0x10
cmp ebx, eax
jge 0x5076c6
inc esi
mov dword [ebp - 0x114], esi
mov ebx, dword [ebp - 0x178]
mov eax, esi
cdq
mov ecx, eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x58]
add ebx, ecx
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x174]
adc ecx, edx
mov esi, ebx
add esi, dword [ebp - 0x180]
mov dword [ebp - 0x1cc], edx
adc ecx, dword [ebp - 0x17c]
cdq
mov dword [ebp - 0x304], ebx
cmp ecx, edx
jg 0x50acc5
jl 0x507717
cmp esi, eax
ja 0x50acc5
mov esi, dword [ebp - 0xf0]
mov ecx, ebx
mov eax, esi
call fcn.004ac2ad
test eax, eax
jne 0x50ac96
mov eax, dword [ebp - 0x114]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0xfc], edi
cmp eax, 0x80
jae 0x507768
mov ecx, dword [ebp - 0x108]
mov byte [edi], al
mov eax, 1
movzx ebx, al
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x108], ecx
jmp 0x5077b0
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1d0]
push ecx
push edx
mov esi, edi
call fcn.0049cbb0
mov ecx, dword [ebp - 0x108]
movzx ebx, al
mov eax, dword [ebp - 0x114]
add esp, 8
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x108], ecx
jmp 0x5077b0
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x108]
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x104], eax
cmp eax, 0x80
jae 0x5077d0
mov byte [ebx + edi], al
mov eax, 1
jmp 0x5077de
push 0
push eax
lea esi, [ebx + edi]
call fcn.0049cbb0
add esp, 8
mov esi, dword [ebp - 0x108]
movzx eax, al
add ebx, eax
mov dword [ebp - 0xe8], ebx
mov ebx, dword [ebp - 0xe0]
lea ebx, [ebx + edi]
mov edi, dword [ebp - 0x104]
mov eax, esi
call fcn.004a19eb
add dword [ebp - 0xe0], eax
add esi, 0x28
mov dword [ebp - 0x108], esi
cmp esi, dword [ebp - 0x10c]
jbe 0x5077a4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x304]
mov ecx, 0x10
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x180]
mov dword [eax + 0xc], edx
mov edx, ecx
or edx, dword [ebp - 0x17c]
je 0x50784f
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov edi, dword [ebp - 0xf4]
mov byte [eax + 0xa], 1
jmp 0x505a3f
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
xor ecx, ecx
lea edx, [ebp - 0x1a0]
push edx
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
call fcn.004ebaed
mov dword [ebp - 0xd4], eax
add esp, 4
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x19c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xe0], ecx
test eax, eax
jne 0x5079c2
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 0x9c], 0
jle 0x5078f5
push str.cannot_open_savepoint___SQL_statements_in_progress
lea ebx, [edi + 0x2c]
mov esi, eax
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 5
jmp 0x505a3f
call fcn.0049c199
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
push ecx
push 0
push eax
call fcn.004a62ee
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
mov edx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xd8]
add edx, 0x21
push eax
push edx
call fcn.004a887f
mov esi, eax
add esp, 8
test esi, esi
je case.default.0x505983
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe0]
inc ecx
push ecx
push edx
lea eax, [esi + 0x20]
push 0xffffffffffffffff
push eax
mov dword [esi], eax
call fcn.0040ab34
mov eax, dword [ebp - 0xd8]
add esp, 0x10
cmp byte [eax + 0x3f], 0
je 0x507984
mov byte [eax + 0x3f], 0
mov byte [eax + 0x46], 1
jmp 0x50798a
inc dword [eax + 0x1f0]
mov ecx, dword [eax + 0x1e8]
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 0x1f8]
mov dword [eax + 0x1e8], esi
mov dword [esi + 8], edx
mov ecx, dword [eax + 0x1fc]
mov dword [esi + 0xc], ecx
mov edx, dword [eax + 0x200]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x204]
mov dword [esi + 0x14], eax
jmp case.default.0x505983
mov edx, dword [ebp - 0xd8]
mov esi, dword [edx + 0x1e8]
mov dword [ebp - 0x104], 0
test esi, esi
je 0x507a07
jmp 0x5079ea
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi]
push ecx
push eax
call fcn.0049c25b
add esp, 8
test eax, eax
je 0x507a33
mov esi, dword [esi + 0x18]
inc dword [ebp - 0x104]
test esi, esi
jne 0x5079e4
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
push ecx
push str.no_such_savepoint:__s
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 8
mov dword [ebp - 0xd4], 1
jmp 0x505a3f
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xec], esi
mov esi, dword [ebp - 0xd8]
xor ecx, ecx
cmp dword [esi + 0x9c], ecx
jle 0x507a73
cmp eax, 1
jne 0x507a73
push str.cannot_release_savepoint___SQL_statements_in_progress
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 5
jmp 0x505a3f
mov edx, dword [ebp - 0xec]
cmp dword [edx + 0x18], ecx
jne 0x507adb
cmp byte [esi + 0x46], cl
je 0x507adb
mov dword [ebp - 0x10c], 1
cmp eax, 1
jne 0x507ae1
push eax
mov edx, edi
call fcn.004ccaf0
mov esi, eax
add esp, 4
test esi, esi
jne 0x50a792
mov eax, dword [ebp - 0xd8]
mov esi, edi
mov byte [eax + 0x3f], 1
call fcn.004f9de1
mov ecx, dword [ebp - 0xd8]
cmp eax, 5
je 0x50ab10
mov byte [ecx + 0x46], 0
mov edx, dword [edi + 0x50]
mov dword [ebp - 0xd4], edx
mov esi, ecx
jmp 0x507c09
mov dword [ebp - 0x10c], ecx
mov edx, dword [esi + 0x1f0]
sub edx, dword [ebp - 0x104]
dec edx
mov dword [ebp - 0x104], edx
cmp eax, 2
jne 0x507b7f
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x114], ecx
cmp dword [esi + 0x14], ecx
jle 0x507b85
xor eax, eax
cmp dword [ebp - 0x108], eax
mov dword [ebp - 0xe0], ecx
sete al
mov dword [ebp - 0xfc], eax
lea esp, [esp]
mov ecx, dword [ebp - 0xfc]
mov edx, dword [esi + 0x10]
mov eax, dword [ebp - 0xe0]
push ecx
mov ecx, dword [edx + eax + 4]
push 0x204
push ecx
call fcn.004e9aaf
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
mov eax, dword [ebp - 0x114]
add dword [ebp - 0xe0], 0x10
inc eax
mov dword [ebp - 0x114], eax
cmp eax, dword [esi + 0x14]
jl 0x507b34
jmp 0x507b85
mov dword [ebp - 0x108], ecx
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x114], 0
jle 0x507bee
mov dword [ebp - 0xe0], 0
jmp 0x507ba4
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [esi + 0x10]
push edx
mov edx, dword [ebp - 0xe0]
push eax
mov eax, dword [ecx + edx + 4]
call fcn.004e3736
add esp, 8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
mov eax, dword [ebp - 0x114]
add dword [ebp - 0xe0], 0x10
inc eax
mov dword [ebp - 0x114], eax
cmp eax, dword [esi + 0x14]
jl 0x507ba4
cmp dword [ebp - 0x108], 0
je 0x507c09
mov eax, esi
call fcn.004a1f70
mov eax, esi
call fcn.004b9500
or dword [esi + 0x18], 2
mov ecx, dword [ebp - 0xec]
cmp dword [esi + 0x1e8], ecx
je 0x507c88
jmp 0x507c24
cmp dword [esi + 0x208], 0
mov eax, dword [esi + 0x1e8]
mov edx, dword [eax + 0x18]
mov dword [esi + 0x1e8], edx
je 0x507c45
mov ecx, esi
call fcn.0049bf83
jmp 0x507c74
cmp eax, dword [esi + 0x114]
jb 0x507c6b
cmp eax, dword [esi + 0x118]
jae 0x507c6b
mov edx, dword [esi + 0x110]
mov dword [eax], edx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], eax
jmp 0x507c7a
push eax
call fcn.0049bf1c
add esp, 4
mov ecx, dword [ebp - 0xec]
dec dword [esi + 0x1f0]
cmp dword [esi + 0x1e8], ecx
jne 0x507c24
mov eax, dword [ebp - 0xf8]
cmp eax, 1
jne 0x507cbe
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1e8], ecx
mov ecx, esi
call fcn.0049bfbf
cmp dword [ebp - 0x10c], 0
jne case.default.0x505983
dec dword [esi + 0x1f0]
jmp 0x507cf4
cmp dword [ebp - 0x10c], 0
mov edx, dword [ecx + 8]
mov dword [esi + 0x1f8], edx
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x1fc], edx
mov edx, dword [ecx + 0x10]
mov dword [esi + 0x200], edx
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x204], ecx
je 0x507cf4
cmp eax, 2
jne case.default.0x505983
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf8]
push edx
push eax
push esi
call fcn.004a62ee
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x507d67
cmp byte [edx + 0x3f], 0
jne 0x507d67
test ecx, ecx
jne 0x507d67
cmp dword [edx + 0x9c], ecx
jle 0x507d67
push str.cannot_commit_transaction___SQL_statements_in_progress
lea ebx, [edi + 0x2c]
mov esi, edx
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 5
jmp 0x505a3f
movzx edx, byte [edx + 0x3f]
cmp eax, edx
jne 0x50ab3b
test eax, eax
jne 0x507d7e
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x507d8c
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x507d8c
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [ebp - 0xd8]
push eax
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 1
jmp 0x505a3f
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x507dc7
mov eax, dword [ebp - 0xd8]
test dword [eax + 0x18], 0x2000000
jne 0x50abe5
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x507ee1
push ecx
push eax
call fcn.004e4a4f
add esp, 8
mov dword [ebp - 0xd4], eax
cmp eax, 5
je 0x50abf1
test eax, eax
jne 0x50ac30
cmp dword [ebx + 8], eax
je 0x507eb3
test byte [edi + 0x58], 0x20
je 0x507eb3
mov esi, dword [ebp - 0xd8]
cmp byte [esi + 0x3f], al
je 0x507e34
cmp dword [esi + 0x98], 1
jle 0x507eb9
cmp dword [edi + 0x68], 0
jne 0x507e4f
mov ecx, dword [esi + 0x1f0]
inc dword [esi + 0x1f4]
add ecx, dword [esi + 0x1f4]
mov dword [edi + 0x68], ecx
mov edx, dword [edi + 0x68]
dec edx
push edx
push 0
push esi
call fcn.004a62ee
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x507e81
mov eax, dword [edi + 0x68]
push eax
mov eax, dword [ebp - 0xe8]
call fcn.004abf1a
add esp, 4
mov dword [ebp - 0xd4], eax
mov ecx, dword [esi + 0x1f8]
mov dword [edi + 0x98], ecx
mov edx, dword [esi + 0x1fc]
mov dword [edi + 0x9c], edx
mov eax, dword [esi + 0x200]
mov dword [edi + 0xa0], eax
mov ecx, dword [esi + 0x204]
mov dword [edi + 0xa4], ecx
jmp 0x507eb9
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe8]
lea edx, [ebp - 0x184]
push edx
push 1
call fcn.004ac04c
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
add esp, 8
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
mov eax, dword [edx + 4]
jmp 0x507ef3
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0x184], 0
xor eax, eax
cmp byte [ebx + 3], 0
je case.default.0x505983
mov ecx, dword [ebp - 0x184]
cmp ecx, dword [ebx + 0xc]
jne 0x507f11
cmp eax, dword [ebx + 0x10]
je case.default.0x505983
mov eax, dword [edi + 0x2c]
mov ecx, esi
call fcn.0049bfbf
push esi
mov ebx, str.database_schema_has_changed
call fcn.004a8a4e
mov edx, dword [ebp - 0xdc]
mov dword [edi + 0x2c], eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x10]
mov ecx, eax
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 0xc]
mov edx, dword [ebp - 0x184]
add esp, 4
cmp dword [ecx], edx
je 0x507f5d
mov edi, dword [ebp - 0xd8]
mov esi, eax
call fcn.004b94d9
mov edi, dword [ebp - 0xf4]
or dword [edi + 0x58], 8
mov dword [ebp - 0xd4], 0x11
jmp 0x505a3f
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x1c4]
push eax
mov eax, dword [ebp - 0xd8]
push ecx
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
call fcn.004ac04c
add esp, 8
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, eax
mov eax, dword [ebp - 0x1c4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x11c]
shl eax, 4
add eax, dword [edx + 0x10]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.004a1261
mov edx, dword [esi]
mov eax, dword [ebp - 0xe0]
mov ebx, dword [ebx + 8]
mov eax, dword [eax + 4]
push edx
call fcn.004e119b
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd4], eax
mov eax, dword [ecx + 8]
add esp, 4
cmp eax, 1
jne 0x50801e
mov edx, dword [ebp - 0xe0]
mov eax, dword [edx + 0xc]
mov edx, dword [esi]
mov dword [eax], edx
mov eax, dword [ebp - 0xd8]
or dword [eax + 0x18], 2
jmp 0x508031
cmp eax, 2
jne 0x508031
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0xc]
mov al, byte [esi]
mov byte [edx + 0x4c], al
cmp dword [ecx + 4], 1
jne 0x505a3f
mov eax, dword [ebp - 0xd8]
call fcn.004a1f70
and dword [edi + 0x58], 0xfffffff7
jmp 0x505a3f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x505983.54
mov ecx, dword [esi + 0x20]
cmp ecx, dword [ebx + 8]
je 0x5081a8
test byte [edi + 0x58], 8
je 0x50807d
mov dword [ebp - 0xd4], 0x204
jmp case.default.0x505983
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10c], eax
shl eax, 4
add eax, dword [esi + 0x10]
xor ecx, ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0x104], esi
cmp dl, 0x37
jne 0x5080d1
mov edx, dword [eax + 0xc]
mov al, byte [edx + 0x4c]
mov dword [ebp - 0x108], 1
cmp al, byte [edi + 0x57]
jae 0x5080d7
mov byte [edi + 0x57], al
jmp 0x5080d7
mov dword [ebp - 0x108], ecx
test byte [ebx + 3], 4
je 0x50810b
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.004a1261
mov esi, dword [esi]
mov dword [ebp - 0xe0], esi
cmp esi, 2
jl 0x50ac18
mov ecx, dword [ebp - 0xfc]
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x508127
mov eax, dword [ebx + 0x10]
movzx ecx, word [eax + 8]
movzx edx, word [eax + 6]
mov dword [ebp - 0xe8], eax
add ecx, edx
jmp 0x50812e
cmp al, 0xf2
jne 0x50812e
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x10c]
push 1
push eax
push ecx
mov ecx, dword [ebx + 4]
push ecx
mov ebx, edi
call fcn.004f528f
mov esi, eax
add esp, 0x10
test esi, esi
je 0x50ac96
mov edx, dword [esi]
mov ebx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0xe0]
or dword [esi + 0x1c], 8
push edx
push ebx
push ecx
mov dword [esi + 0x20], eax
push eax
mov eax, dword [ebp - 0x104]
mov byte [esi + 0x19], 1
call fcn.004abffd
xor edx, edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xdc]
add esp, 0x10
mov dword [esi + 8], ebx
cmp byte [eax + 1], 0xfa
mov ebx, eax
setne dl
add edx, edx
add edx, edx
xor edx, dword [esi + 0x1c]
and edx, 4
xor dword [esi + 0x1c], edx
mov cl, byte [ebx + 3]
mov edx, dword [esi]
and cl, 3
mov byte [edx + 0x4a], cl
jmp case.default.0x505983
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push eax
push ecx
mov ebx, edi
call fcn.004f528f
mov esi, eax
add esp, 0x10
test esi, esi
je 0x50ac96
or dword [esi + 0x1c], 1
mov edx, dword [ebp - 0xdc]
mov byte [esi + 0x19], 1
movzx eax, byte [edx + 3]
mov edx, dword [ebp - 0xd8]
mov ecx, dword [edx]
push 0x41e
or eax, 5
push eax
push 0
push ecx
lea ecx, [esi + 4]
call fcn.004e4078
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x5082bb
mov edx, dword [esi + 4]
push 1
push edx
call fcn.004e4a4f
add esp, 8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x5082bb
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x50829d
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ecx + 3]
or edx, 2
push edx
lea eax, [ebp - 0x1f0]
push eax
mov eax, dword [esi + 4]
call fcn.004f1bac
add esp, 8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x508297
mov ecx, dword [esi]
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x1f0]
push ecx
push eax
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
push 1
push edx
call fcn.004abffd
add esp, 0x10
mov dword [ebp - 0xd4], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x5082bb
mov eax, dword [esi]
push eax
mov eax, dword [esi + 4]
push 0
push 1
push 1
call fcn.004abffd
add esp, 0x10
or dword [esi + 0x1c], 4
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xdc]
xor ecx, ecx
cmp byte [edx + 3], 8
setne cl
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 8
xor dword [esi + 0x1c], ecx
jmp 0x505a3f
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push eax
push ecx
mov ebx, edi
call fcn.004f528f
add esp, 0x10
test eax, eax
je 0x50ac96
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xd8]
push eax
push ecx
call fcn.004b3940
add esp, 0xc
mov dword [ebp - 0xd4], eax
jmp 0x505a3f
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x2e4], edx
adc edx, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edx
mov eax, ecx
or eax, dword [ebp - 0x2e4]
je 0x50aa36
jmp case.default.0x505983
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push ecx
push edx
mov ebx, edi
call fcn.004f528f
add esp, 0x10
test eax, eax
je 0x50ac96
mov ecx, dword [ebp - 0xdc]
mov byte [eax + 0x19], 1
mov edx, dword [ecx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], edx
jmp 0x505a3f
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, edi
call fcn.004f5177
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov dword [eax + edx*4], 0
jmp case.default.0x505983
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
test byte [eax + 0x1c], 4
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xec], ecx
mov byte [eax + 0x19], 0
je 0x5084a6
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov dl, byte [esi + ecx*8 + 8]
lea esi, [esi + ecx*8]
and dl, 0xe
cmp dl, 2
jne 0x5083fa
push 0
mov eax, esi
call fcn.004a25cc
add esp, 4
mov ecx, esi
call fcn.004a1119
mov dword [ebp - 0x18c], eax
movzx eax, word [esi + 8]
mov dword [ebp - 0x188], edx
test al, 4
jne 0x508457
test al, 8
je 0x50aa36
fild qword [ebp - 0x18c]
fcom qword [esi]
fnstsw ax
test ah, 0x41
jne 0x50843f
test byte [ebp - 0xec], 1
fstp st(0)
je 0x508457
dec dword [ebp - 0xec]
jmp 0x508457
fcomp qword [esi]
fnstsw ax
test ah, 5
jp 0x508457
test byte [ebp - 0xec], 1
jne 0x508457
inc dword [ebp - 0xec]
mov ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0x18c]
mov esi, dword [ebp - 0xe0]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [esi]
push 0
push ecx
push edx
push 0
push eax
call fcn.004e9fb1
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x188]
add esp, 0x18
mov dword [ebp - 0xd4], eax
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edx
test eax, eax
jne 0x50ac30
jmp 0x508522
mov eax, dword [eax + 8]
mov dx, word [ebx + 0x10]
mov dword [ebp - 0x2e0], eax
test cl, 1
sete al
mov word [ebp - 0x2dc], dx
mov edx, 0x4000
lea eax, [eax + eax - 1]
mov byte [ebp - 0x2da], al
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
mov dword [ebp - 0x2d8], eax
test word [eax + 8], dx
je 0x5084e9
call fcn.004ac2cd
mov edx, dword [ebp - 0xe0]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [edx]
push 0
push 0
push 0
lea ecx, [ebp - 0x2e0]
push ecx
push eax
call fcn.004e9fb1
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xec]
xor edx, edx
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], edx
mov eax, dword [ebp - 0x130]
cmp ecx, 0x40
jl 0x508569
cmp eax, edx
jl 0x508552
jne 0x508547
cmp ecx, 0x41
je 0x508552
mov dword [ebp - 0x130], edx
jmp case.default.0x505983
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x130], edx
mov edx, dword [esi]
push ecx
push edx
call fcn.004f1282
jmp 0x50859c
cmp eax, edx
jg 0x508587
jne 0x508574
cmp ecx, 0x3e
je 0x508587
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x49], 1
setne cl
mov dword [ebp - 0x130], ecx
jmp 0x5085ad
mov dword [ebp - 0x130], edx
mov eax, dword [esi]
lea edx, [ebp - 0x130]
push edx
push eax
call fcn.004f1418
add esp, 8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac30
cmp dword [ebp - 0x130], 0
jne 0x50aa36
jmp case.default.0x505983
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0xfc], eax
mov byte [eax + 0x19], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.004a1119
mov ecx, dword [ebp - 0xfc]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov byte [ecx + 0x1a], 1
jmp case.default.0x505983
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x108], eax
cmp dword [ebx + 0x10], eax
jle 0x508690
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x2c4], ecx
mov cx, word [ebx + 0x10]
mov dword [ebp - 0x2bc], esi
xor edx, edx
xor esi, esi
mov word [ebp - 0x2c0], cx
cmp dx, cx
jae 0x508688
mov dword [ebp - 0xe8], eax
jmp 0x508654
add eax, dword [ebp - 0x2bc]
mov edx, 0x4000
test word [eax + 8], dx
je 0x508671
call fcn.004ac2cd
mov cx, word [ebp - 0x2c0]
mov eax, dword [ebp - 0xe8]
movzx edx, cx
inc esi
add eax, 0x28
mov dword [ebp - 0xe8], eax
cmp esi, edx
jl 0x508654
lea esi, [ebp - 0x2c4]
jmp 0x5086ff
mov eax, dword [ebp - 0xe0]
mov edi, dword [eax + 8]
push 0xbf
lea ebx, [ebp - 0x108]
lea edx, [ebp - 0xc4]
call fcn.004ad08a
mov esi, eax
add esp, 4
test esi, esi
je 0x50ac90
mov eax, dword [ebp - 0xf8]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x5086d2
call fcn.004ac2cd
mov eax, dword [ebp - 0xf8]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xe0]
push esi
push edx
mov edx, dword [ecx + 8]
push eax
push edx
call fcn.004a1c9c
mov ebx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xf4]
add esp, 0x10
xor ecx, ecx
mov byte [esi + 6], 0
cmp byte [ebx], 0x43
mov dword [ebp - 0xe8], ecx
jne 0x508741
xor eax, eax
cmp ax, word [esi + 4]
jae 0x508741
mov eax, dword [esi + 8]
add eax, 8
lea ebx, [ebx]
test byte [eax], 1
jne 0x508737
movzx edx, word [esi + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x508724
jmp 0x508741
mov dword [ebp - 0xe8], 1
lea eax, [ebp - 0x1c0]
push eax
push 0
push 0
push 0
push esi
mov esi, dword [ebp - 0xe0]
mov ecx, dword [esi]
push ecx
call fcn.004e9fb1
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x108]
add esp, 0x18
call fcn.0049bfbf
cmp dword [ebp - 0xd4], 0
jne case.default.0x505983
mov ecx, dword [ebp - 0x1c0]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
sub dl, al
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
cmp byte [ebx], 0x45
jne 0x5087b8
test eax, eax
jne 0x50aa36
jmp case.default.0x505983
cmp dword [ebp - 0xe8], 0
jne 0x50aa36
test eax, eax
je 0x50aa36
jmp case.default.0x505983
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*8]
mov esi, dword [esi + eax*8 + 4]
lea eax, [ebp - 0xe8]
push eax
push 0
push esi
push ecx
push 0
push edx
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x320], ecx
call fcn.004e9fb1
mov ecx, dword [ebp - 0x320]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xfc]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0xe8]
add esp, 0x18
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], 0
mov word [eax + 0x19], 0
mov dword [eax + 0xc], ecx
test ecx, ecx
jne 0x50aa36
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x505983
xor eax, eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x10c], eax
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov dword [ebp - 0xf0], eax
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0xec], eax
mov eax, dword [eax]
test eax, eax
je 0x508aa1
mov ecx, dword [ebp - 0xec]
test byte [ecx + 0x1c], 2
jne 0x50895b
lea edi, [ebp - 0x10c]
mov esi, eax
call fcn.004e9f70
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac2a
cmp dword [ebp - 0x10c], eax
je 0x508905
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x128], eax
jmp 0x50894f
mov edx, dword [ebp - 0xec]
mov esi, dword [edx]
lea edi, [ebp - 0x12c]
call fcn.004a0ca2
cmp dword [ebp - 0x128], 0x7fffffff
mov dword [ebp - 0xd4], eax
jl 0x508941
jg 0x508935
cmp dword [ebp - 0x12c], 0xffffffff
jb 0x508941
mov eax, dword [ebp - 0xec]
or dword [eax + 0x1c], 2
jmp 0x50894f
add dword [ebp - 0x12c], 1
adc dword [ebp - 0x128], 0
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x11c]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x5089f1
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x50898b
mov eax, dword [ecx + 4]
test eax, eax
je 0x508980
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x508977
mov ecx, dword [ecx + 0x10]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
jmp 0x508991
lea edx, [edx + edx*4]
lea esi, [esi + edx*8]
call fcn.004a1261
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x5089ac
cmp ecx, 0x7fffffff
je 0x508a81
mov edx, dword [ebp - 0xec]
test byte [edx + 0x1c], 2
jne 0x508a81
add eax, 1
adc ecx, 0
mov edx, ecx
mov ecx, dword [ebp - 0x128]
cmp ecx, edx
jg 0x5089e6
jl 0x5089d8
cmp dword [ebp - 0x12c], eax
jae 0x5089e6
mov ecx, edx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x12c]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0xec]
test byte [ecx + 0x1c], 2
je 0x508a90
mov dword [ebp - 0xe8], 0
mov esi, ecx
lea esp, [esp]
lea edx, [ebp - 0x12c]
push edx
push 8
call fcn.004dee0e
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x12c]
and eax, 0x3fffffff
add ecx, 1
lea edx, [ebp - 0x10c]
push edx
adc eax, 0
push 0
push eax
push ecx
mov dword [ebp - 0x128], eax
mov eax, dword [esi]
push 0
push eax
mov dword [ebp - 0x12c], ecx
call fcn.004e9fb1
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x508a90
cmp dword [ebp - 0x10c], eax
jne 0x508a90
mov eax, dword [ebp - 0xe8]
inc eax
mov dword [ebp - 0xe8], eax
cmp eax, 0x64
jl 0x508a14
mov dword [ebp - 0xd4], 0xd
jmp 0x50ac30
mov eax, dword [ebp - 0xec]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x128]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 4]
mov dword [ebp - 0xfc], ecx
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0xc]
cmp dl, 0x4b
jne 0x508aef
lea edx, [eax + eax*4]
mov eax, dword [esi + edx*8]
mov esi, dword [esi + edx*8 + 4]
jmp 0x508af2
cdq
mov esi, edx
test byte [ebx + 3], 1
mov dword [ebp - 0x1bc], eax
je 0x508b01
inc dword [edi + 0x5c]
test byte [ebx + 3], 2
je 0x508b1f
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], esi
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], esi
mov eax, dword [ebp - 0xfc]
movzx edx, word [eax + 8]
xor ecx, ecx
test dl, 1
je 0x508b36
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov dl, byte [ebx + 3]
test dl, 0x10
je 0x508b47
mov ecx, dword [ebp - 0x10c]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0xe8], ecx
movzx ecx, word [eax + 8]
test ecx, 0x4000
je 0x508b5d
mov ecx, dword [eax]
jmp 0x508b5f
xor ecx, ecx
push dword [ebp - 0xe8]
movzx edx, dl
shr edx, 3
and edx, 1
push edx
mov edx, dword [eax + 0x10]
push ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1bc]
push ecx
mov ecx, dword [ebp - 0x10c]
push edx
push esi
push eax
mov eax, dword [ecx]
push 0
call fcn.004f1468
mov ecx, dword [ebp - 0x10c]
add esp, 0x20
mov dword [ebp - 0xd4], eax
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
test eax, eax
jne case.default.0x505983
mov edx, dword [ebp - 0xd8]
mov ecx, dword [edx + 0xd4]
test ecx, ecx
je case.default.0x505983
mov eax, dword [ebx + 0x10]
test eax, eax
je case.default.0x505983
mov edx, dword [ebp - 0x1bc]
push esi
mov esi, dword [ebp - 0xd8]
push edx
push eax
mov eax, dword [ebp - 0x10c]
movsx edx, byte [eax + 0x18]
mov eax, dword [esi + 0x10]
add edx, edx
mov edx, dword [eax + edx*8]
mov al, byte [ebx + 3]
push edx
and al, 4
movzx edx, al
mov eax, dword [esi + 0xd0]
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.default.0x505983
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
call fcn.004f1694
mov dword [ebp - 0xd4], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x508c82
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0xd4]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x508c82
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x508c82
test byte [esi + 0x1c], 4
je 0x508c82
mov edx, dword [esi + 0x34]
push edx
mov edx, dword [esi + 0x30]
push edx
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xd0]
push eax
movsx eax, byte [esi + 0x18]
add eax, eax
mov eax, dword [edx + eax*8]
push eax
push 9
push ecx
call dword [ebp - 0xfc]
add esp, 0x18
test byte [ebx + 8], 1
je case.default.0x505983
inc dword [edi + 0x5c]
jmp case.default.0x505983
mov ecx, dword [edi + 0x5c]
mov eax, dword [ebp - 0xd8]
add dword [eax + 0x54], ecx
mov dword [eax + 0x50], ecx
mov dword [edi + 0x5c], 0
jmp case.default.0x505983
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [ebx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
lea esi, [ebp - 0x114]
push esi
push edx
push ecx
mov dword [ebp - 0x114], 0
call fcn.004ce4e1
add esp, 0xc
cmp dword [ebp - 0x114], 0
mov dword [ebp - 0xd4], eax
jne 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea ecx, [esi + edx*8]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + eax*4]
call fcn.004adf82
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [edx + 0x3c], 0
jmp case.default.0x505983
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + edx*4]
test byte [ebx + 0x1c], 4
mov esi, dword [ebx]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xe8], esi
jne 0x508d8e
lea edi, [ebp - 0x244]
call fcn.004a0ca2
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0x58]
cdq
cmp dword [ebp - 0x240], edx
jg 0x50acbf
mov esi, dword [ebp - 0x244]
jl 0x508d80
cmp esi, eax
ja 0x50acbf
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0x190], esi
jmp 0x508db2
lea edx, [ebp - 0x190]
push edx
call fcn.004a0cf2
mov esi, dword [ebp - 0x190]
mov eax, dword [ebp - 0xd8]
add esp, 4
cmp esi, dword [eax + 0x58]
ja 0x50acc5
mov ecx, esi
cmp esi, 0x20
ja 0x508dbe
mov ecx, 0x20
mov eax, dword [ebp - 0xf0]
call fcn.004ac2ad
test eax, eax
jne 0x50ac96
mov eax, dword [ebp - 0xf0]
mov cx, word [eax + 8]
mov edx, 0xbe10
and cx, dx
or cx, 0x10
mov dword [eax + 0xc], esi
mov word [eax + 8], cx
test byte [ebx + 0x1c], 4
jne 0x508e21
mov eax, dword [eax + 0x10]
push 0
push eax
mov eax, dword [ebp - 0xe8]
push esi
push 0
push eax
call fcn.004e51f6
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xf0]
add esp, 0x14
mov byte [eax + 0xa], 1
jmp 0x505a3f
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xe8]
push ecx
push esi
push 0
push edx
call fcn.004f1115
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xf0]
add esp, 0x10
mov byte [eax + 0xa], 1
jmp 0x505a3f
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 0x19], 0
mov dword [ebp - 0xf0], eax
je 0x508e78
mov ecx, 1
mov word [eax + 8], cx
jmp case.default.0x505983
cmp byte [esi + 0x1a], 0
je 0x508ea2
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x198], edx
mov ecx, dword [esi + 0x34]
mov dword [ebp - 0x194], ecx
mov ecx, edx
mov dword [eax], ecx
mov edx, dword [ebp - 0x194]
mov dword [eax + 4], edx
jmp case.default.0x505983
cmp dword [esi + 0x24], 0
je 0x508ee8
mov eax, dword [esi + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x198]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004ad0e1
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x198]
mov dword [eax], ecx
mov edx, dword [ebp - 0x194]
add esp, 0x10
mov dword [eax + 4], edx
jmp case.default.0x505983
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 1
je 0x508f25
mov edi, esi
call fcn.004f36d8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac2a
mov edi, dword [ebp - 0xf4]
cmp byte [esi + 0x19], 0
je 0x508f31
mov eax, dword [ebp - 0xf0]
mov edx, 1
mov word [eax + 8], dx
jmp case.default.0x505983
mov dword [ebp - 0xd4], 0
jmp 0x508f0b
mov esi, dword [esi]
lea edi, [ebp - 0x198]
call fcn.004a0ca2
mov ecx, dword [ebp - 0x198]
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xf0]
mov dword [eax], ecx
mov edx, dword [ebp - 0x194]
mov dword [eax + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.default.0x505983
mov esi, eax
call fcn.004a0915
jmp case.default.0x505983
mov eax, dword [edi + 0x38]
mov edx, dword [ebx + 4]
mov eax, dword [eax + edx*4]
mov esi, dword [eax]
lea edi, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], 0
call fcn.004e9f70
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xfc]
mov byte [eax + 0x19], cl
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
cmp dword [ebx + 8], 0
jle case.default.0x505983
test ecx, ecx
jne 0x50aa36
jmp case.default.0x505983
inc dword [edi + 0x74]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
cmp dword [esi + 0x38], 0
mov dword [ebp - 0x104], 1
je 0x50902a
lea edi, [ebp - 0x104]
mov eax, esi
call fcn.004ce494
mov edi, dword [ebp - 0xf4]
jmp 0x50906e
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
call fcn.004e9d46
test eax, eax
jne 0x509063
mov ecx, dword [ebp - 0xfc]
cmp byte [ecx + 0x49], al
jne 0x509052
mov dword [ebp - 0x104], 1
jmp 0x509063
mov eax, ecx
mov dword [ebp - 0x104], 0
call fcn.004e9e92
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x104]
mov byte [esi + 0x19], al
test eax, eax
jne 0x50aa36
jmp case.default.0x505983
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebp - 0xd8]
push ecx
lea ebx, [ebp - 0x170]
mov eax, esi
mov dword [ebp - 0x170], 0
call fcn.004b423a
mov ebx, dword [ebp - 0xdc]
add esp, 4
jmp 0x5090f0
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + edx*4], 0
je case.default.0x505983
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x170], eax
mov edx, dword [esi]
mov eax, dword [ebx + 0x10]
lea ecx, [ebp - 0x170]
push ecx
push edx
call eax
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0x170], 0
mov dword [ebp - 0xd4], eax
jne 0x50911b
mov byte [esi + 0x19], 0
movzx ecx, byte [ebx + 3]
inc dword [edi + ecx*4 + 0x6c]
lea eax, [edi + ecx*4 + 0x6c]
jmp case.0x505983.16
mov byte [esi + 0x19], 1
jmp 0x50a689
test byte [ebx + 3], 1
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0xe0], ecx
lea esi, [esi + edx*8]
mov dword [ebp - 0xfc], eax
je 0x50914d
inc dword [edi + 0x5c]
mov edx, 0x4000
test word [esi + 8], dx
je 0x509173
mov eax, esi
call fcn.004ac2cd
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
mov ecx, dword [ebp - 0xe0]
cmp dword [ecx + 0x38], 0
je 0x509193
mov eax, dword [ebp - 0xe0]
push esi
call fcn.004ce132
add esp, 4
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
test byte [ebx + 3], 0x10
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
je 0x5091a4
mov ecx, dword [ecx + 0xc]
jmp 0x5091a6
xor ecx, ecx
push ecx
mov ecx, dword [ebx + 0xc]
push ecx
push 0
push 0
cdq
push 0x52243e
push edx
push eax
mov eax, dword [ebp - 0xfc]
push esi
call fcn.004f1468
mov edx, dword [ebp - 0xe0]
add esp, 0x20
mov dword [ebp - 0xd4], eax
mov dword [edx + 0x3c], 0
jmp case.default.0x505983
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x2f8], ax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2fc], edx
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
lea edx, [ebp - 0x1c8]
push edx
push 0
push 0
mov dword [ebp - 0x2f4], eax
push 0
lea eax, [ebp - 0x2fc]
push eax
push ecx
mov dword [ebp - 0xfc], ecx
mov byte [ebp - 0x2f6], 0
call fcn.004e9fb1
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50925f
cmp dword [ebp - 0x1c8], eax
jne 0x50925f
mov eax, dword [ebp - 0xfc]
call fcn.004f1694
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xe8]
mov dword [ecx + 0x3c], 0
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + edx*4]
mov edx, dword [esi]
mov ecx, 1
mov word [eax + 8], cx
mov dword [ebp - 0xfc], edx
mov edx, dword [esi]
mov dword [ebp - 0xf0], eax
cmp byte [edx + 0x49], cl
je 0x509327
mov edi, esi
call fcn.004f36d8
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50ac2a
mov edi, dword [ebp - 0xf4]
cmp byte [esi + 0x19], 0
jne case.default.0x505983
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [ebp - 0xfc]
xor esi, esi
push ecx
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x1a4], esi
call fcn.004f370f
add esp, 8
mov dword [ebp - 0xd4], eax
cmp eax, esi
jne 0x50ac30
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a4]
mov dword [eax], edx
mov edx, 4
mov dword [eax + 4], ecx
mov word [eax + 8], dx
jmp case.default.0x505983
mov dword [ebp - 0xd4], 0
jmp 0x5092c0
mov ecx, dword [edi + 0x38]
mov eax, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov cx, word [ebx + 0x10]
mov dword [ebp - 0x318], eax
mov eax, dword [ebx + 0xc]
cmp dl, 0x73
sbb dl, dl
mov word [ebp - 0x314], cx
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
mov byte [ebp - 0x312], dl
lea edx, [ecx + eax*8]
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x318]
mov dword [ebp - 0x310], edx
mov edx, dword [ebp - 0xd8]
push ecx
push edx
mov dword [ebp - 0xe0], 0
call fcn.004f3856
add esp, 0xc
test byte [ebx], 1
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xe0]
je 0x5093ac
neg eax
jmp 0x5093ad
inc eax
mov edi, dword [ebp - 0xf4]
test eax, eax
jg 0x50aa36
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xa4]
inc ecx
cmp dword [eax + 0x98], ecx
jle 0x5093fc
mov dword [ebp - 0xd4], 6
mov byte [edi + 0x56], 2
jmp case.default.0x505983
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0xf0]
push edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0xe8], ecx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
push edx
mov dword [ebp - 0xf0], 0
call fcn.004f1eb2
mov ecx, 4
mov dword [ebp - 0xd4], eax
mov word [esi + 8], cx
mov ecx, dword [ebp - 0xf0]
mov eax, ecx
cdq
add esp, 8
cmp dword [ebp - 0xd4], 0
mov dword [esi], eax
mov dword [esi + 4], edx
jne case.default.0x505983
test ecx, ecx
je case.default.0x505983
mov edi, dword [ebx + 4]
mov eax, dword [ebp - 0xe8]
mov esi, ecx
mov ecx, dword [ebp - 0xd8]
call fcn.004a448b
mov al, byte [ebp - 0xe8]
mov edi, dword [ebp - 0xf4]
inc al
mov byte [ebp - 0x121], al
jmp case.default.0x505983
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov ebx, dword [ebx + 4]
neg edx
sbb edx, edx
lea eax, [ebp - 0xe4]
and edx, eax
push edx
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov dword [ebp - 0xe4], 0
mov eax, dword [eax + ecx*8 + 4]
call fcn.004f1bf2
mov ecx, dword [ebp - 0xdc]
add esp, 4
cmp dword [ecx + 0xc], 0
mov dword [ebp - 0xd4], eax
je 0x505a3f
mov eax, dword [ebp - 0xe4]
add dword [edi + 0x5c], eax
mov edx, ecx
mov ecx, dword [edx + 0xc]
test ecx, ecx
jle 0x505a3f
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp 0x505a3f
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x50952a
mov edx, dword [ebp - 0xd8]
push edx
call fcn.004b3af4
add esp, 4
jmp 0x505a3f
mov eax, dword [eax]
mov ebx, dword [eax + 0x3c]
mov eax, dword [eax]
push 0
call fcn.004f1bf2
add esp, 4
mov dword [ebp - 0xd4], eax
jmp 0x505a3f
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebp - 0xd8]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x79
mov eax, dword [eax + 4]
setne cl
lea edx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0
inc ecx
push ecx
push edx
call fcn.004f1bac
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xfc]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x5095af
mov ecx, str.sqlite_master
mov esi, dword [ebp - 0xd8]
lea edx, [edi + 0x2c]
mov dword [ebp - 0x238], edx
mov edx, dword [ebx + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x234], eax
add eax, eax
mov dword [ebp - 0x23c], esi
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.004bd49c
mov ebx, dword [ebp - 0xd8]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x5095fd
mov dword [ebp - 0xd4], 7
jmp 0x509655
push 0
lea eax, [ebp - 0x23c]
push eax
push fcn.00505655
push esi
push ebx
mov byte [ebx + 0x91], 1
mov dword [ebp - 0x230], 0
call fcn.0050be45
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50963c
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0xd4], ecx
mov eax, esi
mov ecx, ebx
call fcn.0049bfbf
cmp dword [ebp - 0xd4], 0
mov byte [ebx + 0x91], 0
je 0x50965c
mov eax, ebx
call fcn.004b9500
cmp dword [ebp - 0xd4], 7
je 0x50ac96
jmp 0x505a3f
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0xd8]
call fcn.004c0ecd
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0xd8]
push edx
call fcn.004b4f83
mov edi, dword [ebp - 0xf4]
add esp, 4
jmp case.default.0x505983
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xd8]
push eax
mov eax, dword [ebx + 4]
push ecx
call fcn.004af1c9
add esp, 8
jmp case.default.0x505983
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0xd8]
push edx
push eax
mov eax, dword [ebx + 4]
call fcn.004b093d
add esp, 8
jmp case.default.0x505983
mov ebx, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
lea ecx, [ebx*4 + 4]
push 0
push ecx
mov dword [ebp - 0x108], ebx
call fcn.004a887f
add esp, 8
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x50ac96
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
xor esi, esi
lea eax, [ecx + edx*8]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0x108], esi
jle 0x50976a
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe0]
call fcn.004a1119
mov ecx, dword [ebp - 0x10c]
add dword [ebp - 0xe0], 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [ebp - 0x108]
jl 0x509746
mov eax, dword [ebp - 0x10c]
mov dword [eax + esi*4], 0
mov ecx, dword [ebx]
mov esi, dword [ebp - 0xd8]
lea edx, [ebp - 0x1b4]
push edx
mov edx, dword [ebp - 0x108]
push ecx
push edx
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [eax + 3]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
call fcn.004e6fae
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x10c]
add esp, 0x10
mov ecx, esi
call fcn.0049bfbf
mov esi, dword [ebp - 0x1b4]
mov eax, esi
cdq
sub dword [ebx], eax
mov eax, dword [ebp - 0xe4]
sbb dword [ebx + 4], edx
call fcn.004a138b
test esi, esi
je 0x509801
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x50ac96
mov ecx, dword [ebp - 0xe4]
push fcn.0049bf1c
push 1
push eax
or eax, 0xffffffff
call fcn.004b779d
add esp, 0xc
movzx ecx, byte [ebp - 0x120]
mov eax, dword [ebp - 0xe4]
call fcn.004b76bb
jmp 0x505a3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 0x20
lea edi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
jne 0x509846
call fcn.004ac37e
test byte [edi + 8], 0x20
je 0x50ac90
mov ebx, dword [ebp - 0xdc]
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [edi]
push edx
push eax
call fcn.004aa181
mov edi, dword [ebp - 0xf4]
add esp, 8
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 8], 0x20
lea eax, [esi + ecx*8]
mov dword [ebp - 0xe4], eax
je 0x5098bb
mov edx, eax
mov eax, dword [edx]
lea esi, [ebp - 0x21c]
call fcn.0049f001
test eax, eax
je 0x5098b5
mov eax, dword [ebp - 0x218]
mov ebx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x21c]
push eax
mov eax, dword [ebp - 0x11c]
lea edx, [ebx + ebx*4]
push ecx
lea eax, [eax + edx*8]
call fcn.004a13db
add esp, 8
jmp 0x50a689
mov eax, dword [ebp - 0xe4]
call fcn.004a138b
jmp case.0x505983.16
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 8], 0x20
mov eax, dword [ebx + 0xc]
lea ecx, [esi + ecx*8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe4], ecx
lea esi, [esi + edx*8]
mov dword [ebp - 0xfc], eax
jne 0x509910
mov edi, ecx
call fcn.004ac37e
test byte [edi + 8], 0x20
je 0x50ac90
mov ebx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x50993c
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
push edx
push eax
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax]
call fcn.004aa218
add esp, 0xc
test eax, eax
jne 0x50aa36
mov eax, dword [ebp - 0xfc]
test eax, eax
js case.default.0x505983
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [ebp - 0xe4]
mov edi, dword [eax]
push ecx
push edx
call fcn.004aa181
mov edi, dword [ebp - 0xf4]
add esp, 8
jmp case.default.0x505983
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
lea edx, [esi + edx*8]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xe0], edx
je 0x5099a4
mov eax, dword [edi + 0xb0]
mov ecx, dword [ecx + 0x14]
test eax, eax
je 0x5099a4
jmp 0x509994
cmp dword [eax + 0x1c], ecx
je case.default.0x505983
mov eax, dword [eax + 4]
test eax, eax
jne 0x509994
mov eax, dword [edi + 0xb8]
mov ecx, dword [ebp - 0xd8]
cmp eax, dword [ecx + 0x80]
jl 0x5099d9
push str.too_many_levels_of_trigger_recursion
lea ebx, [edi + 0x2c]
mov esi, ecx
mov dword [ebp - 0xd4], 1
call fcn.004c9994
add esp, 4
jmp 0x505a3f
test byte [edx + 8], 0x40
jne 0x509acb
mov ecx, dword [ebp - 0x108]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
add ebx, eax
lea edx, [ebx + ebx*4 + 0xa]
lea eax, [eax + edx*2]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0xd8]
cdq
push edx
push eax
call fcn.004b2ae7
mov esi, eax
add esp, 8
test esi, esi
je 0x50ac96
mov eax, dword [ebp - 0xe0]
call fcn.004a10a3
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x108]
mov dword [eax], esi
mov edx, 0x40
mov word [eax + 8], dx
mov edx, dword [ebp - 0xdc]
sub edx, dword [ebp - 0x118]
mov dword [esi], edi
mov dword [esi + 0x3c], ebx
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 8]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x34], eax
mov edx, dword [edi + 0x38]
mov dword [esi + 0x18], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x28], eax
mov edx, dword [edi + 4]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x20]
mov dword [esi + 0x30], eax
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x1c], ecx
mov edx, dword [edi + 0xc8]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0xc4]
lea ecx, [ebx + ebx*4 + 0xa]
mov dword [esi + 0x38], eax
lea ecx, [esi + ecx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x509ad3
mov edx, dword [ebp - 0xd8]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x509ab6
jmp 0x509ad3
mov edx, dword [ebp - 0xe0]
mov esi, dword [edx]
inc dword [edi + 0xb8]
mov eax, dword [edi + 0xb0]
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x144]
mov dword [esi + 4], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x44], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 0x50]
mov dword [esi + 0x48], edx
lea ecx, [esi + 0x28]
mov dword [edi + 0xb0], esi
mov dword [edi + 8], ecx
mov dword [edi + 0x5c], 0
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x1c], eax
movzx edx, word [esi + 0x40]
mov dword [edi + 0x24], edx
lea eax, [eax + eax*4 + 5]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x108]
mov dword [edi + 0x38], edx
mov dword [ebp - 0x11c], ecx
mov ecx, dword [eax]
mov dword [edi + 4], ecx
mov esi, dword [eax + 4]
mov dword [edi + 0x20], esi
mov esi, dword [edi + 0x24]
lea edx, [edx + esi*4]
mov dword [edi + 0xc8], edx
mov eax, dword [eax + 0x10]
push eax
mov dword [ebp - 0x118], ecx
add ecx, 0xffffffec
push 0
push edx
mov dword [edi + 0xc4], eax
mov dword [ebp - 0xdc], ecx
call fcn.00402e70
add esp, 0xc
jmp 0x505a3f
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edi, dword [edi + 0xb0]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 8]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
add ecx, dword [ebx + 4]
mov edx, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
push 0x1000
lea edi, [edx + ecx*8]
mov esi, eax
call fcn.004a143a
mov edi, dword [ebp - 0xf4]
add esp, 4
jmp case.default.0x505983
mov ecx, dword [ebp - 0xd8]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebx + 8]
cdq
je 0x509bde
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.default.0x505983
cmp dword [ebx + 4], 0
je 0x509bf5
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x505983
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x505983
cmp dword [ebx + 4], 0
je 0x509c3b
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x1f8]
or ecx, dword [eax + 0x1fc]
jne case.default.0x505983
mov edx, dword [eax + 0x200]
or edx, dword [eax + 0x204]
je 0x50aa36
jmp case.default.0x505983
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jne case.default.0x505983
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
je 0x50aa36
jmp case.default.0x505983
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x509c98
mov eax, dword [ecx + 4]
test eax, eax
je 0x509c84
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x509c7b
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea ecx, [eax + edx*8]
mov dword [ebp - 0xe4], ecx
jmp 0x509ca7
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [ebp - 0xe4], eax
mov esi, dword [ebp - 0xe4]
call fcn.004a1261
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x11c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.004a1261
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [eax + 4]
cmp edx, esi
jg case.default.0x505983
jl 0x509ce8
mov edx, dword [eax]
cmp edx, ecx
jae case.default.0x505983
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
jg 0x50aa36
jl case.default.0x505983
cmp dword [esi + eax*8], 0
ja 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ebx + 0xc]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
cmp dword [esi + 4], 0
jl 0x50aa36
jg case.default.0x505983
cmp dword [esi], 0
jb 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea ecx, [esi + ecx*8]
mov esi, dword [ecx]
mov edx, esi
or edx, dword [ecx + 4]
je case.default.0x505983
mov eax, dword [ebx + 0xc]
cdq
add eax, esi
adc edx, dword [ecx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x50aa36
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
add dword [esi + eax*8], 0xffffffff
mov ecx, dword [esi + eax*8]
lea eax, [esi + eax*8]
adc dword [eax + 4], 0xffffffff
or ecx, dword [eax + 4]
je 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8]
lea eax, [esi + edx*8]
mov edx, dword [eax + 4]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x2c8], edx
adc edx, 0
mov dword [eax], esi
mov dword [eax + 4], edx
mov eax, ecx
or eax, dword [ebp - 0x2c8]
je 0x50aa36
jmp case.default.0x505983
mov eax, dword [ebx + 8]
movzx ecx, byte [ebx + 3]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0xe8], ecx
test ecx, ecx
jle 0x509e0b
lea esp, [esp]
mov ecx, dword [ebp - 0xfc]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0xe8]
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x509df4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x208], edx
mov dword [ebp - 0x204], eax
inc dword [eax + 0xc]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x328], eax
xor eax, eax
mov edx, 1
mov word [ebp - 0x340], dx
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x1f8], eax
lea edx, [ebp - 0x348]
mov dword [ebp - 0x20c], edx
mov edx, ebx
sub edx, dword [ebp - 0x118]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xfc]
push edx
mov dword [ebp - 0x1fc], eax
push ecx
mov ecx, dword [ebp - 0x208]
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x200], edi
mov byte [ebp - 0x1f4], 0
mov edx, dword [ecx + 0x10]
push eax
call edx
add esp, 0xc
cmp dword [ebp - 0x1f8], 0
je 0x509ee5
lea eax, [ebp - 0x348]
push eax
call fcn.004b7e98
mov esi, dword [ebp - 0xd8]
push eax
push 0x539a5c
lea ebx, [edi + 0x2c]
call fcn.004c9994
mov ecx, dword [ebp - 0x1f8]
mov ebx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0x11c]
add esp, 0xc
mov dword [ebp - 0xd4], ecx
cmp byte [ebp - 0x1f4], 0
je 0x509f07
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x509f07
lea edx, [eax + eax*4]
push 0
push 1
lea eax, [esi + edx*8]
call fcn.004a13db
add esp, 8
lea eax, [ebp - 0x348]
call fcn.004a10a3
jmp case.default.0x505983
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xfc], esi
call fcn.004a0f0d
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x509f63
mov edx, esi
push edx
call fcn.004b7e98
mov esi, dword [ebp - 0xd8]
push eax
push 0x539a5c
lea ebx, [edi + 0x2c]
call fcn.004c9994
mov ebx, dword [ebp - 0xdc]
add esp, 0xc
mov esi, dword [ebp - 0xfc]
movzx ecx, byte [ebp - 0x120]
mov eax, esi
call fcn.004b76bb
mov ecx, esi
call fcn.004a1413
test eax, eax
jne 0x50acc5
jmp case.default.0x505983
mov edx, dword [ebx + 8]
or eax, 0xffffffff
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0xcc]
push ecx
mov ecx, dword [ebp - 0xd8]
push edx
push eax
push ecx
mov dword [ebp - 0xd0], 0
call fcn.004e38e0
add esp, 0x14
mov dword [ebp - 0xd4], eax
cmp eax, 5
jne 0x509fe8
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 1
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov dword [ebp - 0xe0], 0
lea esi, [esi + edx*8]
jmp 0x50a004
mov eax, dword [ebp - 0xe0]
mov eax, dword [ebp + eax*4 - 0xd0]
cdq
push edx
push eax
mov eax, esi
call fcn.004a13db
mov eax, dword [ebp - 0xe0]
inc eax
add esp, 8
add esi, 0x28
mov dword [ebp - 0xe0], eax
cmp eax, 3
jl 0x50a004
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0xf0], eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xfc], eax
mov eax, dword [ecx]
movzx edx, byte [eax + 5]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x104], edx
mov eax, edx
cmp esi, 0xffffffff
jne 0x50a080
mov esi, edx
mov edx, dword [ebp - 0xec]
cmp byte [edx + 0x10], 3
jae 0x50a0a2
mov ecx, dword [edx + 0x40]
cmp dword [ecx], 0
je 0x50a0a4
cmp dword [edx + 0x4c], 0
jl 0x50a0a4
jg 0x50a0a2
cmp dword [edx + 0x48], 0
jbe 0x50a0a4
mov esi, eax
cmp byte [edx + 0xf], 0
mov ecx, 0x52243e
jne 0x50a0b5
mov ecx, dword [edx + 0xa8]
cmp esi, 5
jne 0x50a0dc
call fcn.0049c199
test eax, eax
je 0x50a160
mov eax, edx
call fcn.0049fc6b
test eax, eax
je 0x50a160
mov eax, dword [ebp - 0x104]
cmp esi, eax
je 0x50a166
cmp eax, 5
je 0x50a0ee
cmp esi, 5
jne 0x50a166
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x3f], 0
je 0x50a18b
cmp dword [ecx + 0x98], 1
jg 0x50a18b
cmp eax, 5
jne 0x50a129
mov eax, dword [ebp - 0xec]
call fcn.004e3a9a
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50a160
mov eax, esi
jmp 0x50a133
cmp eax, 4
jne 0x50a13e
mov eax, 2
mov ecx, dword [ebp - 0xec]
call fcn.004e350d
mov eax, dword [ebp - 0xfc]
xor edx, edx
cmp esi, 5
sete dl
inc edx
push edx
call fcn.004e758b
add esp, 4
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x50a166
mov esi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xec]
mov eax, esi
call fcn.004e350d
mov edx, dword [ebp - 0xf0]
mov ecx, 0xa02
mov word [edx + 8], cx
cmp eax, 6
jne 0x50a1bc
xor eax, eax
jmp 0x50a1c3
mov dword [ebp - 0xd4], 1
mov eax, str.into
cmp esi, 5
je 0x50a1a4
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
lea ebx, [edi + 0x2c]
mov esi, ecx
call fcn.004c9994
add esp, 8
jmp 0x505a3f
mov eax, dword [eax*4 + 0x53c9e8]
mov edx, dword [ebp - 0xf0]
mov ecx, eax
mov dword [edx + 0x10], eax
call fcn.0049c199
movzx ecx, byte [ebp - 0x120]
mov dword [edx + 0xc], eax
mov eax, edx
mov byte [edx + 0xa], 1
call fcn.004b76bb
jmp case.default.0x505983
lea eax, [edi + 0x2c]
push eax
mov eax, dword [ebp - 0xd8]
call fcn.00505123
add esp, 4
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
push eax
call fcn.004f0bf4
add esp, 4
mov dword [ebp - 0xd4], eax
cmp eax, 0x65
jne case.default.0x505983
mov dword [ebp - 0xd4], 0
jmp 0x50aa36
cmp dword [ebx + 4], 0
jne 0x50a259
mov eax, dword [ebp - 0xd8]
call fcn.004a1f70
jmp case.default.0x505983
or dword [edi + 0x58], 8
jmp case.default.0x505983
mov cl, byte [ebx + 0xc]
test cl, cl
jne 0x50a27c
mov edx, dword [ebp - 0xd8]
test dword [edx + 0x18], 0x4000
jne case.default.0x505983
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push edx
mov edx, dword [ebp - 0xd8]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.004ac131
add esp, 4
mov dword [ebp - 0xd4], eax
cmp al, 6
jne case.default.0x505983
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
push eax
push str.database_table_is_locked:__s
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 8
jmp 0x505a3f
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp - 0xd8]
call fcn.004b0c40
mov dword [ebp - 0xd4], eax
test edi, edi
je 0x505daa
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xf4]
push ecx
push edx
call fcn.004ad0e1
mov edi, dword [ebp - 0xf4]
add esp, 8
jmp case.default.0x505983
mov edx, dword [ebp - 0x11c]
xor eax, eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x290], eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
lea esi, [ebp - 0x2b0]
call fcn.004b3164
mov dword [ebp - 0xd4], eax
mov eax, esi
push eax
call fcn.004b7e98
add esp, 4
test eax, eax
je 0x50a39c
mov ecx, dword [ebp - 0xf4]
add ecx, 0x2c
push ecx
mov ecx, dword [ebp - 0xd8]
push eax
mov eax, dword [ebx + 4]
call fcn.004c74e0
add esp, 8
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x2b0]
call fcn.004a10a3
mov edi, dword [ebp - 0xf4]
jmp case.default.0x505983
mov esi, dword [ebp - 0xd8]
inc dword [esi + 0xa4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push edx
mov ecx, esi
call fcn.004a6134
add esp, 4
dec dword [esi + 0xa4]
mov dword [ebp - 0xd4], eax
jmp case.default.0x505983
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xec], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x50a45f
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x50a45f
mov edx, dword [eax + 0x18]
lea ecx, [ebp - 0xec]
push ecx
push esi
call edx
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004ad0e1
add esp, 0x10
cmp dword [ebp - 0xd4], 0
jne case.default.0x505983
mov eax, dword [ebp - 0xec]
push 0
push 0xffffffffffffffff
mov dword [eax], esi
mov ecx, dword [ebx + 4]
push 0
push ecx
mov ebx, edi
call fcn.004f528f
mov edx, dword [ebp - 0xec]
add esp, 0x10
test eax, eax
je 0x50ac7f
mov dword [eax + 0x24], edx
inc dword [esi + 4]
jmp 0x505a3f
mov dword [ebp - 0xd4], 6
jmp case.default.0x505983
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x24]
mov dword [ebp - 0xec], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x104], eax
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xfc], ecx
xor ecx, ecx
mov dword [ebp - 0x108], esi
mov dword [ebp - 0xe0], 0
test eax, eax
jle 0x50a4dd
mov esi, dword [ebp - 0xfc]
add edx, 0x50
mov dword [esi + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x50a4cc
mov esi, dword [ebp - 0x108]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x10c]
push edx
mov edx, dword [ebp - 0xe8]
push eax
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0x104]
push ecx
push edi
mov dword [ebp - 0xd4], eax
call fcn.004ad0e1
add esp, 0x1c
cmp dword [ebp - 0xd4], 0
jne 0x50a530
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx + 0x28]
push esi
call eax
add esp, 4
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
mov ecx, dword [ebp - 0xec]
mov byte [ecx + 0x19], 0
jne 0x50aa36
jmp case.default.0x505983
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x19], 0
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
je 0x50a570
mov eax, esi
call fcn.004a138b
jmp case.default.0x505983
mov eax, dword [ecx + 0x24]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [ebp - 0xe8], eax
xor eax, eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0x260], esi
mov ax, word [esi + 8]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [esi + 8], ax
mov eax, dword [ebx + 8]
push eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ebp - 0xfc]
lea edx, [ebp - 0x260]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xe8]
push eax
push edi
call fcn.004ad0e1
mov eax, dword [ebp - 0x24c]
add esp, 0x14
test eax, eax
je 0x509f69
mov dword [ebp - 0xd4], eax
jmp 0x509f69
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + ecx*4]
cmp byte [eax + 0x19], 0
mov dword [ebp - 0xfc], eax
jne case.default.0x505983
mov eax, dword [eax + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ecx + 0x24]
push eax
call ecx
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004ad0e1
add esp, 0xc
cmp dword [ebp - 0xd4], 0
jne case.0x505983.16
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
test eax, eax
jne 0x50a689
mov ebx, dword [ebx + 8]
mov ecx, dword [ebp - 0x118]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xdc], edx
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0xf0]
test eax, eax
jne 0x50acea
mov ebx, dword [esi + 0x124]
test ebx, ebx
je 0x505a3f
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x160]
jb 0x505a3f
mov ecx, dword [esi + 0x12c]
xor edx, edx
div ecx
sub ecx, edx
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x160], ecx
mov ecx, dword [esi + 0x128]
push ecx
call ebx
add esp, 4
test eax, eax
je 0x505a3f
mov dword [ebp - 0xd4], 9
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ebp - 0xdc]
sub ecx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0xd4]
push edx
push eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str.statement_aborts_at__d:___s___s
push ebx
mov dword [edi + 0x50], ebx
call fcn.004bd709
add esp, 0x14
mov esi, edi
call fcn.004f9de1
cmp ebx, 0xc0a
jne 0x50a74c
mov edx, dword [ebp - 0xd8]
mov byte [edx + 0x41], 1
mov al, byte [ebp - 0x121]
mov esi, 1
test al, al
je 0x50a792
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x10]
movzx ebx, al
dec ebx
mov eax, ebx
add eax, eax
mov eax, dword [edx + eax*8 + 0xc]
push eax
call fcn.004b5587
add esp, 4
cmp ebx, esi
je 0x50a792
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 0x1c]
push eax
call fcn.004b5587
add esp, 4
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x144]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x14c]
add dword [edi + 0x7c], eax
push edi
call fcn.004a1641
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040330b
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov ecx, 1
mov eax, esi
call fcn.004b76bb
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x505983
mov eax, dword [ebp - 0xfc]
mov ecx, dword [esi + 0x10]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xfc]
push eax
push edi
call fcn.004ad0e1
add esp, 0x10
and dword [edi + 0x58], 0xfffffff7
jmp case.default.0x505983
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x50a45f
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x50a45f
cmp dword [eax + 0x34], 0
mov ecx, dword [ebx + 8]
je case.default.0x505983
mov edx, dword [ebp - 0xd8]
mov al, byte [edx + 0x45]
mov esi, dword [edi + 0xc]
mov byte [ebp - 0x10d], al
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x11c]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x50a892
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x50a887
mov dl, byte [ebx + 3]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x45], dl
mov eax, dword [ebp - 0xfc]
lea edx, [ebp - 0x214]
push edx
push esi
push ecx
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx + 0x34]
push eax
call edx
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0x10d]
push edx
push edi
mov byte [ecx + 0x45], al
call fcn.004ad0e1
add esp, 0x18
cmp dword [ebp - 0xd4], 0
jne 0x50a911
cmp dword [ebx + 4], 0
je 0x50a911
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], ecx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
cmp byte [ebp - 0xd4], 0x13
jne 0x508c8c
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x508c8c
mov al, byte [ebx + 3]
cmp al, 4
jne 0x50a941
mov dword [ebp - 0xd4], 0
jmp case.default.0x505983
cmp al, 5
jne 0x50a952
mov eax, 2
mov byte [edi + 0x56], al
jmp case.default.0x505983
movzx eax, al
mov byte [edi + 0x56], al
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0xd8]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp case.default.0x505983
mov eax, ebx
mov edx, edi
call fcn.004a272d
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
xor ecx, ecx
test ebx, ebx
je 0x50a9be
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x2c]
cmp ecx, ebx
jae 0x50a9be
mov ecx, ebx
mov ebx, ecx
call fcn.004abdba
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x505a3f
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 0xb0], 0
je 0x50aa2c
test dword [edi + 0x58], 0x200
jne 0x50aa2c
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x50a9f9
mov edx, dword [edi + 0xa8]
test edx, edx
je 0x50aa2c
mov ecx, edi
call fcn.004bf7d1
mov esi, dword [ebp - 0xd8]
mov ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0xb0]
push eax
push ecx
mov dword [ebp - 0xfc], eax
call edx
mov eax, dword [ebp - 0xfc]
add esp, 8
mov ecx, esi
call fcn.0049bfbf
cmp dword [ebx + 8], 0
je case.default.0x505983
mov ebx, dword [ebx + 8]
mov ecx, dword [ebp - 0x118]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xdc], edx
jmp 0x505a3f
mov ecx, dword [ebx + 4]
mov dword [edi + 0x50], ecx
mov dl, byte [ebx + 8]
mov byte [edi + 0x56], dl
mov dword [edi + 0x4c], eax
test ecx, ecx
je 0x50aaee
mov al, byte [ebx + 3]
test al, al
je 0x50aa9e
movzx eax, al
mov eax, dword [eax*4 + 0x53c214]
test eax, eax
je 0x50aaa0
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x50aaa0
mov esi, dword [ebp - 0xd8]
push ecx
push eax
lea ebx, [edi + 0x2c]
push str._s_constraint_failed:__s
call fcn.004c9994
add esp, 0xc
jmp 0x50aac6
xor eax, eax
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
lea ebx, [edi + 0x2c]
test ecx, ecx
je 0x50aab8
push ecx
push 0x539a5c
jmp 0x50aabe
push eax
push str._s_constraint_failed
call fcn.004c9994
add esp, 8
mov ecx, dword [ebx]
mov edx, dword [edi + 0xa8]
mov eax, dword [ebp - 0xfc]
push ecx
mov ecx, dword [ebp - 0xdc]
push edx
mov edx, dword [ecx + 4]
push eax
push str.abort_at__d_in___s_:__s
push edx
call fcn.004bd709
add esp, 0x14
mov esi, edi
call fcn.004f9de1
mov esi, 5
cmp eax, esi
je 0x50ab33
mov esi, dword [edi + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x50a792
sub ebx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x4c], eax
mov byte [ecx + 0x3f], 0
mov esi, 5
mov dword [edi + 0x50], esi
jmp 0x50a792
test ecx, ecx
je 0x50ab7d
mov esi, dword [ebp - 0xd8]
push 0x204
mov eax, esi
call fcn.004f4f58
add esp, 4
mov byte [esi + 0x3f], 1
mov edi, dword [ebp - 0xd8]
call fcn.004a78fb
mov ecx, dword [ebp - 0xf4]
mov esi, dword [ecx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
mov edi, ecx
jmp 0x50a792
push 1
mov edx, edi
call fcn.004ccaf0
mov esi, eax
add esp, 4
test esi, esi
jne 0x50a792
mov dl, byte [ebp - 0xfc]
mov eax, dword [ebp - 0xd8]
mov esi, edi
mov byte [eax + 0x3f], dl
call fcn.004f9de1
mov esi, 5
cmp eax, esi
jne 0x50ab58
sub ebx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ebx
mov eax, dword [ebp - 0xd8]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, 1
sub dl, byte [ebp - 0xfc]
mov dword [edi + 0x4c], ecx
mov byte [eax + 0x3f], dl
mov dword [edi + 0x50], esi
jmp 0x50a792
mov dword [ebp - 0xd4], 8
jmp 0x50ac30
sub ebx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, 5
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], esi
jmp 0x50a792
mov eax, 0x121b7
call fcn.004c8db1
mov dword [ebp - 0xd4], eax
jmp 0x50ac30
mov edi, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x41], 0
je 0x50ac48
mov dword [ebp - 0xd4], 7
jmp 0x50ac58
cmp dword [ebp - 0xd4], 0xc0a
je 0x50a6f3
mov ecx, dword [ebp - 0xd4]
call fcn.004a7a39
mov esi, dword [ebp - 0xd8]
push eax
push 0x539a5c
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 8
jmp 0x50a6f3
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp 0x50ac96
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xd8]
push 0x53a600
lea ebx, [edi + 0x2c]
mov byte [esi + 0x41], 1
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 7
jmp 0x50a6f3
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xd8]
push str.string_or_blob_too_big
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 4
mov dword [ebp - 0xd4], 0x12
jmp 0x50a6f3
mov eax, 9
mov dword [edi + 0x50], eax
mov ecx, dword [str.interrupted]
mov dword [ebp - 0xd4], eax
mov eax, str.unknown_error
test ecx, ecx
je 0x50ad09
mov eax, ecx
mov esi, dword [ebp - 0xd8]
push eax
push 0x539a5c
lea ebx, [edi + 0x2c]
call fcn.004c9994
add esp, 8
jmp 0x50a6f3