Function at 0x5618c0
Capabilities:
Enumerate pe sections
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x11c
mov eax, dword [0x667050]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
xor eax, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 0xc]
mov dl, byte [ecx + 0x4d]
mov ecx, dword [esi + 8]
push edi
push esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov byte [esp + 0x37], al
mov byte [esp + 0x2c], dl
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
call fcn.0055d570
add esp, 4
cmp dword [esi + 0x5c], 7
je 0x561d02
mov ecx, dword [esp + 0x1c]
xor edi, edi
mov eax, esi
mov dword [eax + 0x5c], edi
mov dword [eax + 0x14], edi
mov edx, dword [ecx + 0xe0]
test edx, edx
mov dword [ecx + 0x1b4], edi
jne 0x5664c8
cmp dword [ecx + 0x114], edi
mov eax, dword [eax + 0x58]
setne dl
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], edx
cmp byte [ecx + 0x1e], 0
jne 0x561d02
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea ebp, [edx + ecx*4]
je 0x5619b6
mov eax, dword [esp + 0x44]
cmp dword [ebx + 0x11c], eax
jne 0x5619af
mov eax, dword [ebx + 0x118]
mov ecx, dword [ebx + 0x114]
push eax
call ecx
add esp, 4
test eax, eax
jne 0x566309
add eax, 1
mov dword [esp + 0x44], eax
test byte [ebp + 2], 2
mov edi, dword [esp + 0x2c]
je 0x5619dc
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
mov eax, esi
mov dword [esp + 0x24], esi
call fcn.0055ba00
mov word [esi + 0x1c], 4
jmp 0x5619e0
mov esi, dword [esp + 0x24]
movzx eax, byte [ebp]
add eax, 0xffffffff
cmp eax, 0x90
mov ecx, 4
ja case.0x5619f7.16
jmp dword [eax*4 + 0x566578]
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x5664c2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [edi + edx*8]
cdq
mov dword [edi + 0x10], eax
mov word [edi + 0x1c], cx
mov dword [edi + 0x14], edx
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [esp + 0x20], eax
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov edx, dword [edi + ecx*8 + 0x10]
mov dword [esp + 0x20], edx
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
lea edi, [edi + eax*8]
mov eax, dword [esp + 0x20]
mov word [edi + 0x1c], cx
mov ecx, dword [edi + 0x10]
cdq
mov dword [esp + 0x60], ecx
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x20], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
je case.0x5619f7.16
cmp dword [ebp + 4], 0
mov edi, dword [esp + 0x18]
jne 0x566313
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x566313
mov ecx, dword [eax + 0x3c]
add dword [edi + 0xb0], 0xffffffff
mov dword [edi + 0xa8], ecx
mov ecx, dword [edi + 0x6c]
add dword [ebx + 0x40], ecx
mov dword [ebx + 0x3c], ecx
call fcn.0055de40
cmp dword [ebp + 8], 4
mov dword [esp + 0x20], eax
jne 0x561ae9
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov ecx, dword [eax + edx*4 + 8]
sub ecx, 1
mov dword [esp + 0x20], ecx
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov ebp, dword [ebp + 0x10]
mov ecx, dword [ebp]
mov dword [esi + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov word [esi + 0x1c], 8
mov eax, dword [ebp + 0x10]
fld qword [eax]
fstp qword [esi + 8]
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov byte [ebp], 9
call fcn.00545410
cmp byte [esp + 0x28], 1
mov dword [ebp + 4], eax
je 0x561bc0
push 1
push 0xffffffffffffffff
push ecx
xor eax, eax
mov ecx, esi
call fcn.0055c030
add esp, 0xc
cmp eax, 0x12
mov dword [esp + 0x14], eax
je 0x5623c3
movzx ecx, byte [esp + 0x28]
mov eax, dword [esp + 0x24]
call fcn.0055b6a0
test eax, eax
jne 0x561d02
mov esi, dword [esp + 0x24]
mov cx, word [esi + 0x1c]
and cx, 0xfbff
or cx, 0x800
mov dword [esi + 0x24], eax
mov word [esi + 0x1c], cx
cmp byte [ebp + 1], 0xff
jne 0x561bac
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00543400
add esp, 8
mov ebx, dword [esp + 0x1c]
mov byte [ebp + 1], 0xff
mov ecx, dword [esi + 4]
mov dword [ebp + 0x10], ecx
mov edx, dword [esi + 0x18]
mov dword [ebp + 4], edx
mov eax, dword [ebp + 4]
cmp eax, dword [ebx + 0x48]
jg 0x5623c3
mov esi, dword [esp + 0x24]
mov al, byte [esp + 0x28]
mov word [esi + 0x1c], 0xa02
mov ecx, dword [ebp + 0x10]
mov dword [esi + 4], ecx
mov edx, dword [ebp + 4]
mov dword [esi + 0x18], edx
mov byte [esi + 0x1f], al
jmp case.0x5619f7.16
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
push 0
push ecx
push edx
xor eax, eax
mov ecx, esi
call fcn.0055c030
mov al, byte [esp + 0x34]
add esp, 0xc
mov byte [esi + 0x1f], al
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x48]
lea ecx, [ebp + ebp*4]
lea esi, [eax + ecx*8 - 0x28]
mov ecx, esi
mov dword [esp + 0x60], esi
call fcn.0055bf00
test eax, eax
jne 0x5623c3
mov ecx, dword [esp + 0x24]
push 0x800
push esi
push ecx
call fcn.0055bf30
add esp, 0xc
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
test eax, eax
mov dword [esp + 0x64], eax
mov ecx, dword [ebp + 4]
mov dword [esp + 0x68], ecx
mov ebp, dword [ebp + 8]
lea edx, [ecx + ecx*4]
lea ecx, [ebp + ebp*4]
lea esi, [edi + edx*8]
lea edi, [edi + ecx*8]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x24], edi
je 0x561cb5
xor ebx, ebx
lea esp, [esp]
sub eax, 1
mov dword [esp + 0x64], eax
mov edx, dword [edi + 0x24]
mov dword [esp + 0x60], edx
push esi
mov eax, edi
mov dword [edi + 0x24], ebx
call fcn.0055bfe0
mov eax, dword [esp + 0x64]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x68]
add esp, 4
add esi, 0x28
add edi, 0x28
cmp eax, ebx
jne 0x561c80
mov dword [esp + 0x24], edi
sub eax, 1
mov dword [esp + 0x64], eax
jmp case.0x5619f7.16
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edx, [ebp + ebp*4]
push 0x1000
lea eax, [edi + edx*8]
lea esi, [edi + ecx*8]
push eax
push esi
mov dword [esp + 0x30], esi
call fcn.0055bf30
add esp, 0xc
test word [esi + 0x1c], 0x1000
je case.0x5619f7.16
mov eax, esi
call fcn.0055b7d0
test eax, eax
je case.0x5619f7.16
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
push str.out_of_memory
add edi, 0x38
mov byte [eax + 0x1e], 1
call fcn.00543800
add esp, 4
mov esi, 7
mov ebx, dword [esp + 0x1c]
jmp 0x5664ff
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
lea edx, [ebp + ebp*4]
push 0x1000
lea ecx, [edi + edx*8]
push ecx
push eax
mov dword [esp + 0x30], eax
call fcn.0055bf30
add esp, 0xc
jmp case.0x5619f7.16
mov esi, dword [esp + 0x18]
push 0
mov ecx, esi
call fcn.0055e850
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
push 1
push esi
call fcn.0055e780
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov eax, dword [esi + 0x54]
add eax, 2
or eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
xor ecx, ecx
mov dword [esi + 0x14], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ecx
cmp dword [ebp + 8], ecx
jle 0x561e07
mov eax, dword [esp + 0x60]
lea edx, [ecx + ecx*4]
test word [eax + edx*8 + 0x1c], 0x1000
lea eax, [eax + edx*8]
je 0x561dd5
call fcn.0055b7d0
test eax, eax
jne 0x561d02
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*8]
call fcn.0055b890
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00561690
mov ecx, dword [esp + 0x64]
add ecx, 1
mov dword [esp + 0x64], ecx
cmp ecx, dword [ebp + 8]
jl 0x561db1
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x1e], 0
jne 0x561d02
mov eax, dword [esp + 0x20]
mov edi, esi
add eax, 1
mov dword [edi + 0x58], eax
mov esi, 0x64
jmp 0x566554
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
lea ecx, [ecx + ecx*4]
lea ebx, [edi + ecx*8]
movzx ecx, word [eax + 0x1c]
lea edx, [ebp + ebp*4]
lea esi, [edi + edx*8]
mov dl, byte [ebx + 0x1c]
or dl, cl
test dl, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], esi
je 0x561e67
call fcn.0055bcc0
jmp case.0x5619f7.16
test ecx, 0x4000
je 0x561e80
call fcn.0055b830
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x34]
test word [ebx + 0x1c], 0x4000
je 0x561e9b
mov eax, ebx
call fcn.0055b830
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x34]
test byte [eax + 0x1c], 0x12
jne 0x561eb7
movzx esi, byte [esp + 0x28]
call fcn.0055b8e0
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x34]
test byte [ebx + 0x1c], 0x12
jne 0x561ed5
movzx esi, byte [esp + 0x28]
mov eax, ebx
call fcn.0055b8e0
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
add eax, dword [ebx + 0x18]
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x5623c3
jl 0x561f02
cmp esi, eax
ja 0x5623c3
mov edi, dword [esp + 0x24]
mov cx, word [edi + 0x1c]
and cx, 0xbf02
xor edx, edx
or cx, 2
cmp edi, ebx
sete dl
mov word [edi + 0x1c], cx
mov eax, dword [esp + 0x60]
add eax, 2
push edx
call fcn.0055b6c0
add esp, 4
test eax, eax
jne 0x561d02
mov esi, edi
cmp esi, ebx
je 0x561f50
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 4]
push eax
push ecx
push edx
call fcn.005e796e
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esi + 4]
add eax, dword [ebx + 0x18]
push ecx
push edx
push eax
call fcn.005e796e
mov edx, dword [esp + 0x6c]
mov ecx, dword [esi + 4]
mov byte [edx + ecx], 0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esi + 4]
mov byte [eax + ecx + 1], 0
mov al, byte [esp + 0x34]
add esp, 0xc
or word [esi + 0x1c], 0x200
mov edx, dword [esp + 0x60]
mov dword [esi + 0x18], edx
mov byte [esi + 0x1f], al
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x2c]
lea ecx, [eax + eax*4]
lea edi, [ebx + ecx*8]
mov esi, edi
call fcn.00561780
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [ebx + edx*8]
call fcn.00561780
mov eax, dword [ebp + 0xc]
movzx edx, word [esi + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [edi + 0x1c]
or edx, eax
test dl, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x60], edx
jne 0x5621f5
mov cl, byte [esi + 0x1c]
and cl, byte [edi + 0x1c]
test cl, 4
je 0x562036
mov eax, dword [edi + 0x10]
mov dword [esp + 0x68], eax
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x6c], ecx
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x70], ebx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x74], edx
movzx edx, byte [ebp]
add edx, 0xffffffaa
cmp edx, 3
ja case.default.0x562018
jmp dword [edx*4 + 0x5667bc]
push ecx
push eax
lea eax, [esp + 0x78]
push eax
call fcn.005462d0
add esp, 0xc
test eax, eax
je 0x5620f6
mov eax, edi
call fcn.0055bb80
fstp qword [esp + 0x78]
mov eax, esi
call fcn.0055bb80
fst qword [esp + 0x80]
movzx eax, byte [ebp]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x56205f
jmp dword [eax*4 + 0x5667cc]
push ecx
push eax
lea edx, [esp + 0x78]
call fcn.00546360
add esp, 8
test eax, eax
jne 0x562036
jmp 0x5620f6
push ecx
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.005463b0
add esp, 0xc
test eax, eax
jne 0x562036
jmp 0x5620f6
mov edx, eax
or edx, ecx
je 0x5621f5
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x5620b0
test ebx, ebx
jne 0x5620b0
cmp dword [esp + 0x74], 0x80000000
je 0x562036
push ecx
push eax
mov eax, dword [esp + 0x7c]
push eax
push ebx
call fcn.005e7980
jmp 0x5620ee
mov edx, eax
or edx, ecx
je 0x5621f5
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x5620e1
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
push ecx
push eax
mov eax, dword [esp + 0x7c]
push eax
push ebx
call fcn.005e7b10
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x74]
and cx, 0xbf04
or cx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.0x5619f7.16
fadd qword [esp + 0x78]
jmp 0x5621a2
fsub qword [esp + 0x78]
jmp 0x5621a2
fmul qword [esp + 0x78]
jmp 0x5621a2
fldz
fld qword [esp + 0x78]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x5621f1
fdivp st(1)
jmp 0x5621a2
fld qword [esp + 0x78]
call fcn.005e7a66
mov esi, eax
mov edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
call fcn.005e7a66
mov ecx, esi
or ecx, edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
je 0x5621f5
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x56218d
mov esi, 1
xor edi, edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
push edi
push esi
push edx
push eax
call fcn.005e7b10
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
fild qword [esp + 0x50]
sub esp, 8
fst qword [esp + 0x88]
fstp qword [esp]
call fcn.005453d0
add esp, 8
test eax, eax
jne 0x5621f5
mov eax, dword [esp + 0x24]
fld qword [esp + 0x80]
mov dx, word [eax + 0x1c]
fstp qword [eax + 8]
and dx, 0xbf08
or dx, 8
mov word [eax + 0x1c], dx
test byte [esp + 0x60], 8
jne case.0x5619f7.16
mov esi, eax
call fcn.0055bbd0
jmp case.0x5619f7.16
fstp st(0)
fstp st(0)
mov esi, dword [esp + 0x24]
call fcn.0055bcc0
jmp case.0x5619f7.16
movzx ecx, byte [ebp + 3]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], eax
jle 0x56228d
mov ecx, dword [esp + 0xa8]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x64]
test word [eax + 0x1c], 0x1000
je 0x562267
call fcn.0055b7d0
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x64]
mov ecx, eax
call fcn.00561690
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
add eax, 1
add edi, 0x28
cmp eax, dword [esp + 0xac]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
jl 0x562240
xor edi, edi
cmp byte [ebp + 1], 0xfb
jne 0x5622a2
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edi
jmp 0x5622af
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push ebx
lea eax, [esp + 0x74]
mov word [esp + 0x90], 1
mov dword [esp + 0x74], esi
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
call fcn.0055bfe0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x6c]
and ecx, 0xbf01
or ecx, 1
add esp, 4
mov word [esp + 0x8c], cx
mov dword [esp + 0x9c], edi
test byte [eax + 3], 8
je 0x562313
mov edx, dword [ebp - 4]
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
push ecx
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x70]
push ecx
call edx
add esp, 0xc
cmp byte [esi + 0x1e], 0
jne 0x5663a3
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x56235a
mov ecx, dword [ebp + 4]
push ecx
push eax
call fcn.0055ece0
mov edx, dword [esp + 0x74]
add esp, 8
mov dword [ebp + 0x10], edx
mov byte [ebp + 1], 0xf9
cmp dword [esp + 0x9c], edi
je 0x562397
push 1
lea edi, [esp + 0x74]
call fcn.0055c5e0
mov edi, dword [esp + 0x1c]
add esp, 4
push eax
push 0x62c378
add edi, 0x38
mov eax, esi
call fcn.00543800
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x14], eax
movzx ecx, byte [esp + 0x28]
lea eax, [esp + 0x70]
call fcn.0055b6a0
lea ecx, [esp + 0x70]
push ecx
mov eax, ebx
call fcn.0055bfe0
add esp, 4
mov ecx, ebx
call fcn.0055bf00
test eax, eax
je case.0x5619f7.16
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push str.string_or_blob_too_big
add edi, 0x38
call fcn.00543800
mov ebx, dword [esp + 0x20]
add esp, 4
mov esi, 0x12
jmp 0x5664ff
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea esi, [edi + edx*8]
lea edx, [eax + eax*4]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
lea edi, [edi + edx*8]
test al, 1
mov dword [esp + 0x24], edi
je 0x56241e
mov esi, edi
call fcn.0055bcc0
jmp case.0x5619f7.16
call fcn.0055bb10
mov ecx, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.0055bb10
mov ebx, eax
mov esi, edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
mov al, byte [ebp]
cmp al, 0x52
mov byte [esp + 0x78], al
jne 0x562456
and dword [esp + 0x60], ebx
and dword [esp + 0x64], esi
jmp 0x562552
cmp al, 0x53
jne 0x562467
or dword [esp + 0x60], ebx
or dword [esp + 0x64], esi
jmp 0x562552
mov ecx, ebx
or ecx, esi
je 0x562552
test esi, esi
jg 0x5624ab
jl 0x56247b
test ebx, ebx
jae 0x5624a0
mov dl, 0xa9
sub dl, al
cmp esi, 0xffffffff
mov al, dl
mov byte [esp + 0x78], al
jl 0x5624d0
jg 0x562491
cmp ebx, 0xffffffc0
jbe 0x5624d0
neg ebx
adc esi, 0
neg esi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
test esi, esi
jl 0x5624ef
jg 0x5624ab
cmp ebx, 0x40
jb 0x5624ef
cmp dword [esp + 0x64], 0
jg 0x5624e2
jl 0x5624bb
cmp dword [esp + 0x60], 0
jae 0x5624e2
cmp al, 0x54
je 0x5624e2
or eax, 0xffffffff
cdq
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
jmp 0x562552
mov dword [esp + 0x70], 0x40
mov dword [esp + 0x74], 0
jmp 0x5624ab
xor eax, eax
cdq
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
jmp 0x562552
cmp al, 0x54
mov eax, dword [esp + 0x60]
mov ecx, ebx
jne 0x562508
mov edx, dword [esp + 0x64]
call fcn.005e7af0
mov esi, eax
mov ebp, edx
jmp 0x562542
mov edi, dword [esp + 0x64]
mov edx, edi
call fcn.005e7cb0
test edi, edi
mov esi, eax
mov ebp, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ebp
jg 0x56254a
jl 0x56252c
cmp dword [esp + 0x60], 0
jae 0x56254a
mov ecx, 0x40
sub ecx, ebx
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.005e7af0
or esi, eax
or ebp, edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x64]
and cx, 0xbf04
or cx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
call fcn.0055bc30
mov eax, dword [ebp + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
call fcn.00561780
test byte [esi + 0x1c], 8
je 0x5625b0
call fcn.0055bbd0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x5625cf
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x5663b5
add ebp, 0xffffffff
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
and eax, 0xbf04
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
movzx ebx, word [edi + ecx*8 + 0x1c]
test bl, 4
lea esi, [edi + ecx*8]
je case.0x5619f7.16
mov eax, esi
call fcn.0055bb80
fstp qword [esi + 8]
and ebx, 0xbf08
or ebx, 8
mov word [esi + 0x1c], bx
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
movzx ecx, word [edi + edx*8 + 0x1c]
test cl, 1
lea edi, [edi + edx*8]
jne case.0x5619f7.16
movzx eax, cl
shr al, 3
and eax, 2
or eax, ecx
test al, 2
mov word [edi + 0x1c], ax
jne 0x56264f
test al, 0xc
je 0x56264f
movzx esi, byte [esp + 0x28]
mov eax, edi
call fcn.0055b8e0
and word [edi + 0x1c], 0xfff3
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x562676
mov eax, edi
call fcn.0055b830
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x14], 0
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
lea edi, [edi + eax*8]
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x5619f7.16
test al, 0x10
jne 0x5626cd
test al, 2
jne 0x5626b7
test al, 0xc
je 0x5626b7
movzx esi, byte [esp + 0x28]
mov eax, edi
call fcn.0055b8e0
mov cx, word [edi + 0x1c]
and cx, 0xbf10
or cx, 0x10
mov word [edi + 0x1c], cx
jmp case.0x5619f7.16
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
lea eax, [edi + edx*8]
call fcn.0055bc50
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
test byte [edi + eax*8 + 0x1c], 1
lea esi, [edi + eax*8]
jne case.0x5619f7.16
call fcn.0055bc30
jmp case.0x5619f7.16
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
movzx ebx, word [edi + ecx*8 + 0x1c]
test bl, 1
lea esi, [edi + ecx*8]
jne case.0x5619f7.16
jmp 0x5625f8
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov cx, word [edi + edx*8 + 0x1c]
lea esi, [edi + edx*8]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov word [esp + 0x66], cx
mov dx, word [ebx + 0x1c]
mov word [esp + 0x68], dx
movzx eax, word [ebx + 0x1c]
movzx ecx, word [esi + 0x1c]
mov dl, al
or dl, cl
test dl, 1
je 0x5627ba
mov dl, byte [ebp + 3]
test dl, dl
jns 0x562778
and al, cl
and al, 1
neg al
sbb eax, eax
add eax, 1
jmp 0x562827
test dl, 0x10
je 0x5627a2
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
mov cx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and cx, 0xbf01
or cx, 1
mov dword [esp + 0x24], edi
mov word [edi + 0x1c], cx
jmp case.0x5619f7.16
test dl, 8
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov al, byte [ebp + 3]
and al, 0x67
mov byte [esp + 0x64], al
je 0x5627f9
mov edx, dword [esp + 0x28]
push edx
mov edi, esi
call fcn.00561800
mov eax, dword [esp + 0x2c]
add esp, 4
push eax
mov al, byte [esp + 0x68]
mov edi, ebx
call fcn.00561800
mov ecx, dword [esp + 0x20]
add esp, 4
cmp byte [ecx + 0x1e], 0
jne 0x561d02
mov edi, dword [esp + 0x2c]
test word [esi + 0x1c], 0x4000
je 0x562808
mov eax, esi
call fcn.0055b830
test word [ebx + 0x1c], 0x4000
je 0x562817
mov eax, ebx
call fcn.0055b830
mov edx, dword [ebp + 0x10]
push edx
mov eax, esi
mov ecx, ebx
call fcn.0055c1f0
add esp, 4
mov dword [esp + 0x60], eax
movzx ecx, byte [ebp]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x562837
jmp dword [ecx*4 + 0x5667dc]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x56287a
xor edx, edx
test eax, eax
setne dl
jmp 0x562878
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x56287a
xor edx, edx
test eax, eax
setle dl
jmp 0x562878
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x56287a
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x60], eax
test byte [ebp + 3], 0x10
je 0x5628c2
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
mov cx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and cx, 0xbf04
or cx, 4
mov word [edi + 0x1c], cx
mov eax, dword [esp + 0x60]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov dl, byte [esp + 0x66]
mov byte [esi + 0x1c], dl
mov al, byte [esp + 0x68]
mov dword [esp + 0x24], edi
mov byte [ebx + 0x1c], al
jmp case.0x5619f7.16
test eax, eax
je 0x5628d0
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov dl, byte [esp + 0x66]
mov byte [esi + 0x1c], dl
mov al, byte [esp + 0x68]
mov byte [ebx + 0x1c], al
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x40], ecx
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x60], ecx
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x70], esi
mov edx, dword [ebp + 4]
mov dword [esp + 0x68], edx
mov eax, dword [ebp + 8]
mov dword [esp + 0x6c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x64], eax
jle 0x5629a1
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
jmp 0x562927
mov esi, dword [esp + 0x70]
test ebx, ebx
je 0x562930
mov ecx, dword [ebx + eax*4]
jmp 0x562932
mov ecx, eax
mov dword [esp + 0x74], ecx
mov edx, dword [esi + eax*4 + 0xc]
mov dword [esp + 0x78], edx
mov esi, dword [esi + 8]
movzx eax, byte [esi + eax]
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x80], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
add ecx, edx
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edi + eax*8]
lea ecx, [edi + ecx*8]
call fcn.0055c1f0
add esp, 4
test eax, eax
mov dword [esp + 0x38], eax
jne 0x562994
mov eax, dword [esp + 0x64]
add eax, 1
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
jl 0x562923
mov dword [esp + 0x40], 0
jmp case.0x5619f7.16
cmp dword [esp + 0x7c], 0
je 0x5629a1
neg eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0
jmp case.0x5619f7.16
mov eax, dword [esp + 0x38]
test eax, eax
jge 0x5629c5
mov ebp, dword [ebp + 4]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
jne 0x5629d6
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov ebp, dword [ebp + 0xc]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
lea ecx, [edi + edx*8]
je 0x5629fc
mov edx, 2
jmp 0x562a0e
call fcn.0055bb10
or eax, edx
je 0x562a0c
mov edx, 1
jmp 0x562a0e
xor edx, edx
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea ecx, [edi + eax*8]
je 0x562a29
mov eax, 2
jmp 0x562a3f
call fcn.0055bb10
or eax, edx
mov edx, dword [esp + 0x60]
je 0x562a3d
mov eax, 1
jmp 0x562a3f
xor eax, eax
mov dword [esp + 0x64], eax
cmp byte [ebp], 0x45
jne 0x562a56
lea ecx, [eax + edx*2]
movzx eax, byte [edx + ecx + 0x618278]
jmp 0x562a61
lea eax, [eax + edx*2]
movzx eax, byte [edx + eax + 0x618284]
cmp eax, 2
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x24], edi
jne 0x562a8e
mov dx, word [edi + 0x1c]
and dx, 0xbf01
or dx, 1
mov word [edi + 0x1c], dx
jmp case.0x5619f7.16
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
and ax, 0xbf04
or ax, 4
mov dword [edi + 0x14], edx
mov word [edi + 0x1c], ax
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
lea edx, [ebp + ebp*4]
lea ecx, [edi + ecx*8]
lea esi, [edi + edx*8]
mov dword [esp + 0x24], esi
je 0x562ad2
call fcn.0055bcc0
jmp case.0x5619f7.16
call fcn.0055bb10
or eax, edx
jne 0x562af0
mov eax, 1
cdq
push edx
push eax
call fcn.0055bd50
add esp, 8
jmp case.0x5619f7.16
xor eax, eax
cdq
push edx
push eax
call fcn.0055bd50
add esp, 8
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea edx, [ebp + ebp*4]
lea ecx, [edi + eax*8]
lea esi, [edi + edx*8]
mov dword [esp + 0x24], esi
je 0x562b2a
call fcn.0055bcc0
jmp case.0x5619f7.16
call fcn.0055bb10
not edx
not eax
push edx
push eax
call fcn.0055bd50
add esp, 8
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea edi, [edi + eax*8]
je 0x562b57
mov eax, dword [ebp + 0xc]
jmp 0x562b87
mov eax, edi
call fcn.0055bb80
fcomp qword [0x6384d0]
fnstsw ax
test ah, 0x44
jnp 0x562b72
mov eax, 1
jmp 0x562b74
xor eax, eax
mov dword [esp + 0x60], eax
cmp byte [ebp], 0x1b
jne 0x562b8b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov dword [esp + 0x60], eax
test eax, eax
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov ecx, dword [ebp + 4]
xor eax, eax
mov dword [esp + 0x70], ecx
mov edx, dword [ebp + 8]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x78], esi
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x9c], eax
mov cx, word [eax + 0x1c]
and cx, 0xbf01
or cx, 1
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x70]
mov eax, dword [edx + 0x44]
mov dword [esp + 0x7c], esi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x78], eax
mov ecx, dword [eax]
cmp ecx, esi
mov dword [esp + 0x80], ecx
je 0x562d55
mov edi, eax
call fcn.0055ee40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov eax, dword [esp + 0x78]
cmp byte [eax + 0x1c], 0
je 0x562cac
mov dword [esp + 0x60], esi
jmp case.0x5619f7.16
mov edx, dword [eax + 0x4c]
mov ecx, dword [esp + 0x18]
cmp edx, dword [ecx + 0x54]
jne 0x562cc8
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x7c], edx
jmp 0x562cee
cmp byte [eax + 0x1f], 0
je 0x562d36
mov eax, dword [esp + 0x80]
lea edi, [esp + 0x68]
call fcn.00554d70
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x1c]
test ecx, ecx
je case.0x5619f7.16
cmp ecx, dword [ebx + 0x48]
ja 0x5623c3
mov edx, dword [eax + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x84], ecx
mov edi, dword [eax + 0x4c]
cmp edi, dword [esi + 0x54]
jne 0x562da6
mov edx, dword [eax + 0x58]
mov dword [esp + 0x88], edx
jmp 0x563056
mov esi, dword [esp + 0x80]
mov edi, esi
call fcn.00554d20
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x14], 0
jmp 0x562cea
mov ecx, dword [eax + 0x10]
cmp ecx, esi
jle 0x564118
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0xe0], edi
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x7c], ecx
test byte [ebp + 3], 0x20
je 0x562d93
xor ecx, ecx
mov dword [eax + 0x4c], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
jmp 0x562cf2
mov ecx, dword [edx + 0x54]
mov dword [eax + 0x4c], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
jmp 0x562cf2
lea ecx, [ecx + edx*4]
mov dword [esp + 0x88], ecx
xor edi, edi
mov dword [esp + 0xdc], edi
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x50], ecx
mov edx, dword [esi + 0x54]
mov eax, dword [esp + 0x78]
mov dword [eax + 0x4c], edx
mov ecx, dword [esp + 0x7c]
cmp ecx, edi
je 0x562de2
mov dword [esp + 0x98], ecx
jmp 0x562e48
mov ecx, dword [esp + 0x78]
cmp byte [ecx + 0x1f], 0
je 0x562e02
mov eax, dword [esp + 0x80]
lea edx, [esp + 0xdc]
push edx
call fcn.00555320
jmp 0x562e16
lea eax, [esp + 0xdc]
push eax
mov eax, dword [esp + 0x84]
call fcn.00555340
mov ecx, dword [esp + 0x64]
add esp, 4
cmp ecx, dword [esp + 0xdc]
mov dword [esp + 0x98], eax
ja 0x562e3a
mov edx, dword [esp + 0x78]
mov dword [esp + 0x7c], eax
mov dword [edx + 0x5c], eax
jmp 0x562e41
mov eax, dword [esp + 0x78]
mov dword [eax + 0x5c], edi
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x562e5f
movzx edx, al
mov dword [esp + 0xd0], edx
mov eax, 1
jmp 0x562e7c
lea esi, [esp + 0xd0]
call fcn.00546110
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x98]
movzx eax, al
cmp edx, 0x18003
movzx eax, al
mov dword [esp + 0xd8], eax
jbe 0x562ea1
mov eax, 0xfbbf
call fcn.00597a00
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov esi, dword [esp + 0x8c]
lea eax, [esi + esi*4 + 3]
cmp eax, edx
mov dword [esp + 0x90], eax
jle 0x562ec0
mov eax, edx
mov dword [esp + 0x90], eax
cmp dword [esp + 0x7c], edi
jne 0x562f2e
cmp dword [esp + 0xdc], eax
jge 0x562f2e
mov ecx, dword [esp + 0x78]
mov word [esp + 0xbc], di
mov dword [esp + 0xa0], edi
movzx edx, byte [ecx + 0x1f]
mov ecx, dword [esp + 0x80]
push edx
push eax
push edi
lea eax, [esp + 0xac]
call fcn.0055c490
add esp, 0xc
cmp eax, edi
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x98], ecx
add eax, ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd8]
add eax, ecx
xor ecx, ecx
cmp esi, edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0x94], ecx
jle 0x563000
mov eax, dword [esp + 0xc8]
cmp eax, dword [esp + 0xcc]
mov eax, dword [esp + 0x88]
jae 0x5630a0
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xc8]
mov al, byte [ecx]
cmp al, 0x80
mov edx, dword [esp + 0x94]
jae 0x562f9e
movzx ecx, al
mov eax, dword [esp + 0x84]
mov dword [eax + edx*4], ecx
mov eax, 1
jmp 0x562fb0
mov eax, dword [esp + 0x84]
lea esi, [eax + edx*4]
call fcn.00546110
movzx eax, al
mov edx, dword [esp + 0x84]
movzx ecx, al
add dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x94]
mov eax, dword [edx + ecx*4]
call fcn.0055efd0
mov edx, dword [esp + 0xd0]
add edx, eax
cmp edx, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], edx
jae 0x5630b5
mov ecx, dword [esp + 0xcc]
add ecx, 1
mov dword [esp + 0xc8], ecx
lea edx, [esp + 0xa0]
push edx
call fcn.0055ba70
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
add esp, 4
cmp eax, ecx
mov word [esp + 0xbc], 1
ja 0x5631ef
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0x60]
cmp edx, esi
ja 0x5631ef
cmp eax, ecx
jne 0x56304f
cmp edx, esi
jne 0x5631ef
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x88]
cmp dword [edx + eax*4], 0
je 0x563175
cmp dword [esp + 0x7c], 0
je 0x5630d1
mov eax, dword [esp + 0x9c]
call fcn.0055ba00
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx + eax*4]
add ecx, dword [esp + 0x7c]
push edx
jmp 0x563156
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x94]
add ecx, 1
cmp ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], ecx
jl 0x562f58
jmp 0x563000
mov eax, dword [ecx + eax*4]
call fcn.0055efd0
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
push edx
lea eax, [esp + 0xa4]
call fcn.0055bfe0
mov eax, dword [esp + 0x7c]
movzx ecx, byte [eax + 0x1f]
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
add esp, 4
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
push edx
lea eax, [esp + 0xac]
call fcn.0055c490
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x98], ecx
mov eax, dword [eax + edx*4]
push eax
mov esi, dword [esp + 0xa0]
call fcn.0055f0b0
mov ecx, dword [esp + 0xa0]
mov dl, byte [esp + 0x2c]
add esp, 4
mov byte [ecx + 0x1f], dl
jmp 0x563194
cmp byte [ebp + 1], 0xf8
jne 0x563194
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x9c]
push 0x800
push eax
push ecx
call fcn.0055bf30
add esp, 0xc
cmp dword [esp + 0xc4], 0
je 0x5631da
mov eax, dword [esp + 0x9c]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [esp + 0x9c]
or word [eax + 0x1c], 0x200
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa4]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x24], ecx
mov eax, dword [esp + 0x9c]
call fcn.0055b7d0
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov eax, 0xfc09
call fcn.00597a00
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x60], ecx
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
lea edi, [edi + eax*8]
mov al, byte [ecx]
test al, al
mov byte [esp + 0x64], al
je 0x563258
lea ecx, [ecx]
add ecx, 1
mov dword [esp + 0x60], ecx
test word [edi + 0x1c], 0x4000
je 0x56323a
mov eax, edi
call fcn.0055b830
mov al, byte [esp + 0x64]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00561800
mov ecx, dword [esp + 0x64]
mov al, byte [ecx]
add esp, 4
add edi, 0x28
test al, al
mov byte [esp + 0x64], al
jne 0x563220
add ecx, 1
mov dword [esp + 0x60], ecx
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x94], eax
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [esp + 0x98], edx
mov dword [esp + 0x8c], esi
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov dword [esp + 0x94], eax
lea eax, [esi + edx*8 - 0x28]
cmp esi, eax
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + 0x66]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x90], eax
mov ebp, dword [ebp + 0xc]
lea edx, [ebp + ebp*4]
lea ecx, [ecx + edx*8]
mov edi, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x64], edi
ja 0x5633ba
mov ebp, 0x4000
mov ebx, dword [esp + 0x98]
test ebx, ebx
je 0x563321
mov edx, dword [esp + 0x28]
mov ecx, edi
push edx
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov al, byte [eax + ebx]
call fcn.00561800
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x68]
add esp, 4
test word [edi + 0x1c], bp
je 0x56333f
cmp dword [edi + 0x18], 0
jle 0x56333f
mov eax, edi
call fcn.0055b830
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x9c]
push ecx
mov ecx, edi
call fcn.0055eee0
mov ecx, eax
add esp, 4
mov dword [esp + 0x88], ecx
call fcn.0055efd0
mov ebx, eax
cdq
add dword [esp + 0x68], eax
push 0
push ecx
adc dword [esp + 0x74], edx
mov dword [esp + 0xac], ebx
call fcn.00546190
add dword [esp + 0x78], eax
mov ebp, 0x4000
add esp, 8
test word [edi + 0x1c], bp
je 0x563397
mov edx, dword [edi + 0x10]
add dword [esp + 0x80], edx
jmp 0x5633a6
test ebx, ebx
je 0x5633a6
mov dword [esp + 0x80], 0
add edi, 0x28
cmp edi, dword [esp + 0x90]
mov dword [esp + 0x64], edi
jbe 0x5632e6
mov esi, dword [esp + 0x70]
mov eax, esi
cdq
push edx
push eax
call fcn.00546190
mov edi, eax
add esi, edi
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x94], edi
mov dword [esp + 0x80], esi
call fcn.00546190
add esp, 0x10
cmp edi, eax
jge 0x5633f2
add esi, 1
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0x80]
cdq
mov edi, eax
mov eax, esi
mov ebx, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
sub esi, edi
mov ecx, edx
sbb ecx, ebx
add esi, dword [esp + 0x68]
adc ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x5623c3
jl 0x563433
cmp esi, eax
ja 0x5623c3
mov edi, dword [esp + 0x24]
push 0
mov eax, esi
call fcn.0055b6c0
add esp, 4
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x70]
cmp eax, 0x80
mov ecx, dword [edi + 4]
mov dword [esp + 0x60], ecx
jae 0x563468
mov dl, al
mov byte [ecx], dl
mov eax, 1
jmp 0x56346d
call fcn.00545f50
mov ecx, dword [esp + 0x8c]
movzx esi, al
mov eax, dword [esp + 0x90]
cmp ecx, eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
ja 0x5634f9
lea ecx, [ecx]
mov eax, dword [esp + 0x9c]
push eax
call fcn.0055eee0
add esp, 4
cmp eax, 0x80
mov dword [esp + 0x88], eax
jae 0x5634be
mov edx, dword [esp + 0x60]
mov cl, al
mov byte [esi + edx], cl
mov eax, 1
jmp 0x5634c9
mov ecx, dword [esp + 0x60]
add ecx, esi
call fcn.00545f50
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0xa0]
movzx edx, al
mov eax, dword [esp + 0x90]
add ecx, 0x28
add esi, edx
cmp ecx, eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
jbe 0x563490
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
mov dword [esp + 0x64], ecx
ja 0x563542
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
sub eax, esi
push eax
mov eax, dword [esp + 0xa0]
add esi, edx
push esi
call fcn.0055eff0
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0xa8]
add ecx, 0x28
add esi, eax
add esp, 8
cmp ecx, dword [esp + 0x90]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
jbe 0x563501
mov eax, dword [esp + 0x78]
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], 0x410
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x80]
test eax, eax
je 0x56356a
mov dword [edi + 0x10], eax
mov word [edi + 0x1c], 0x4410
mov byte [edi + 0x1f], 1
jmp case.0x5619f7.16
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x68], eax
je 0x5635b0
lea edx, [esp + 0x60]
push edx
call fcn.00558e40
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x10], eax
mov ecx, dword [esp + 0x68]
add esp, 4
mov dword [esi + 0x14], ecx
jmp case.0x5619f7.16
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov eax, ecx
mov dword [esi + 0x10], eax
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x14], ecx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x64], ebp
jne 0x56369e
cmp dword [ebx + 0x90], eax
jle 0x56360c
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add edi, 0x38
call fcn.00543800
add esp, 4
mov dword [esp + 0x14], 5
jmp case.0x5619f7.16
mov ecx, ebp
call fcn.00545410
lea ecx, [eax + 0x19]
mov esi, ebx
mov dword [esp + 0x68], eax
call fcn.00543630
test eax, eax
mov dword [esp + 0x6c], eax
je case.0x5619f7.16
lea edx, [eax + 0x18]
mov dword [eax], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
add eax, 1
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.005e796e
add esp, 0xc
cmp byte [ebx + 0x1c], 0
je 0x563661
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1e8], 1
jmp 0x563668
add dword [ebx + 0x1e0], 1
mov ecx, dword [ebx + 0x1dc]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebx + 0x1f0]
mov dword [ebx + 0x1dc], eax
mov edx, dword [esp + 0x6c]
mov dword [edx + 8], ecx
mov eax, dword [ebx + 0x1f4]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0xc], eax
jmp case.0x5619f7.16
xor esi, esi
mov dword [esp + 0x78], esi
mov edi, dword [ebx + 0x1dc]
test edi, edi
mov dword [esp + 0x70], edi
je 0x5636d1
mov ecx, dword [edi]
mov edx, ebp
call fcn.00545600
test eax, eax
je 0x5636f7
add esi, 1
mov dword [esp + 0x78], esi
mov edi, dword [edi + 0x10]
test edi, edi
mov dword [esp + 0x70], edi
jne 0x5636b2
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push ebp
push str.no_such_savepoint:__s
add edi, 0x38
call fcn.00543800
add esp, 8
mov dword [esp + 0x14], 1
jmp case.0x5619f7.16
cmp dword [ebx + 0x90], 0
jg 0x5638b3
mov eax, dword [esp + 0x60]
cmp eax, 2
jne 0x56371a
cmp dword [ebx + 0x8c], 1
jg 0x5638ba
cmp dword [edi + 0x10], 0
jne 0x5637fe
cmp byte [ebx + 0x1e8], 0
je 0x5637fe
mov ebp, 1
cmp eax, ebp
jne 0x563800
mov edi, dword [esp + 0x18]
push ebp
mov ecx, edi
call fcn.0055e850
mov esi, eax
add esp, 4
test esi, esi
jne 0x566554
push edi
mov byte [ebx + 0x1c], 1
call fcn.0055e8b0
add esp, 4
cmp eax, 5
je 0x5663c2
mov byte [ebx + 0x1e8], 0
mov edx, dword [edi + 0x5c]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x1dc], edi
je 0x5637c4
jmp 0x563790
mov eax, dword [esi + 0x1dc]
mov dword [esp + 0x74], eax
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1dc], eax
mov ecx, dword [esp + 0x74]
push ecx
push esi
call fcn.00543400
add dword [esi + 0x1e0], 0xffffffff
mov edi, dword [esp + 0x78]
add esp, 8
cmp dword [esi + 0x1dc], edi
jne 0x563790
cmp dword [esp + 0x60], 1
jne 0x56389c
mov edx, dword [edi + 0x10]
mov dword [esi + 0x1dc], edx
mov eax, dword [esp + 0x70]
push eax
push esi
call fcn.00543400
add esp, 8
test ebp, ebp
jne case.0x5619f7.16
mov eax, dword [esp + 0x1c]
add dword [eax + 0x1e0], 0xffffffff
jmp case.0x5619f7.16
xor ebp, ebp
mov ecx, dword [ebx + 0x1e0]
sub ecx, esi
sub ecx, 1
xor eax, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
cmp dword [ebx + 4], eax
jle 0x563860
mov edx, dword [esp + 0x1c]
jmp 0x563824
mov ecx, dword [esp + 0x78]
mov edx, dword [edx + 8]
push ecx
mov ecx, dword [esp + 0x64]
shl eax, 4
mov eax, dword [eax + edx + 4]
push ecx
call fcn.00554a90
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1c]
add eax, 1
mov dword [esp + 0x7c], eax
cmp eax, dword [edx + 4]
jl 0x563820
mov edi, dword [esp + 0x70]
cmp dword [esp + 0x60], 2
jne 0x56377f
mov esi, dword [esp + 0x1c]
mov ebx, 0x200
test dword [esi + 0xc], ebx
je 0x563783
mov eax, esi
call fcn.0055f870
push esi
or eax, 0xffffffff
call fcn.005707f0
add esp, 4
or dword [esi + 0xc], ebx
mov edi, dword [esp + 0x70]
jmp 0x563783
mov ecx, dword [edi + 8]
mov dword [esi + 0x1f0], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x1f4], edx
jmp case.0x5619f7.16
cmp dword [esp + 0x60], 2
jne 0x5638c1
mov eax, str.rollback
jmp 0x5638c6
mov eax, str.release
mov edi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push str.cannot__s_savepoint___SQL_statements_in_progress
add edi, 0x38
call fcn.00543800
add esp, 8
mov dword [esp + 0x14], 5
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 8]
mov dword [esp + 0x64], ebp
je 0x563923
cmp byte [ebx + 0x1c], 0
jne 0x563923
test ebp, ebp
mov ecx, 1
mov dword [esp + 0x68], ecx
je 0x563942
cmp dword [ebx + 0x8c], ecx
jle 0x56392b
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x5635ec
mov dword [esp + 0x68], 0
movzx ecx, byte [ebx + 0x1c]
cmp eax, ecx
jne 0x5663da
test eax, eax
jne 0x563955
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x563963
cmp dword [ebx + 0x90], 0
jle 0x56392b
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x5635ec
test ebp, ebp
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x563963
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
add edi, 0x38
call fcn.00543800
add esp, 4
mov dword [esp + 0x14], 1
jmp case.0x5619f7.16
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
test eax, eax
mov dword [esp + 0x60], eax
je case.0x5619f7.16
mov ecx, dword [ebp + 8]
push ecx
push eax
call fcn.00553770
add esp, 8
cmp eax, 5
mov dword [esp + 0x14], eax
je 0x566451
test eax, eax
jne 0x566481
cmp dword [ebp + 8], eax
je case.0x5619f7.16
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x68], al
je case.0x5619f7.16
cmp byte [ebx + 0x1c], al
je 0x5639e7
cmp dword [ebx + 0x8c], 1
jle case.0x5619f7.16
cmp dword [esi + 0x78], 0
jne 0x563a05
add dword [ebx + 0x1e4], 1
mov eax, dword [ebx + 0x1e4]
mov edx, dword [ebx + 0x1e0]
add edx, eax
mov dword [esi + 0x78], edx
mov eax, dword [esi + 0x78]
push eax
mov eax, dword [esp + 0x64]
call fcn.00554a40
mov ecx, dword [ebx + 0x1f0]
mov dword [esi + 0x98], ecx
mov edx, dword [ebx + 0x1f4]
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esi + 0x9c], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov dword [esp + 0x64], eax
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x68], ebp
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x60]
push ecx
shl eax, 4
mov eax, dword [eax + edx + 4]
push ebp
call fcn.00558d50
mov eax, dword [esp + 0x68]
cdq
add esp, 8
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
call fcn.0055bc30
mov edx, dword [esi + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x60]
push edx
push eax
mov eax, dword [ecx + 4]
call fcn.00558db0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 1
jne 0x563abf
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [eax], ecx
or dword [ebx + 0xc], 0x200
jmp 0x563ad1
cmp eax, 2
jne 0x563ad1
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov cl, byte [esi + 0x10]
mov byte [eax + 0x4c], cl
cmp dword [ebp + 4], 1
jne case.0x5619f7.16
mov eax, ebx
call fcn.0055f870
mov edx, dword [esp + 0x18]
mov byte [edx + 0x64], 0
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
test eax, eax
mov dword [esp + 0x68], eax
je 0x563b25
lea edx, [esp + 0x60]
push edx
push 1
call fcn.00558d50
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 8]
add esp, 8
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x563b2f
mov dword [esp + 0x60], 0
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
cmp ecx, dword [ebp + 8]
jne 0x563b45
cmp eax, dword [ebp + 0xc]
je case.0x5619f7.16
mov esi, dword [esp + 0x18]
mov edx, dword [esi + 0x38]
push edx
push ebx
call fcn.00543400
push str.database_schema_has_changed
push ebx
call fcn.00543770
mov dword [esi + 0x38], eax
mov ebp, dword [ebp + 4]
mov ecx, dword [ebx + 8]
mov eax, ebp
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx]
add esp, 0x10
cmp eax, dword [esp + 0x60]
je 0x563b86
push ebx
mov eax, ebp
call fcn.005707f0
add esp, 4
mov byte [esi + 0x64], 1
mov dword [esp + 0x14], 0x11
jmp case.0x5619f7.16
mov edx, dword [esp + 0x18]
cmp byte [edx + 0x64], 0
je 0x563baa
mov dword [esp + 0x14], ecx
jmp case.0x5619f7.16
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov edx, dword [ebp + 8]
mov dword [esp + 0x68], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0x7c], eax
mov esi, dword [eax + 4]
mov dword [esp + 0x74], esi
cmp byte [ebp], 0x27
jne 0x563bf5
mov esi, dword [esp + 0x18]
mov dword [esp + 0x70], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x66]
jae 0x563bf9
mov byte [esi + 0x66], al
jmp 0x563bf9
mov dword [esp + 0x70], ecx
cmp byte [ebp + 3], 0
je 0x563c1e
lea ecx, [edx + edx*4]
lea esi, [edi + ecx*8]
call fcn.0055bc30
mov esi, dword [esi + 0x10]
cmp esi, 2
mov dword [esp + 0x68], esi
jl 0x566469
mov ecx, dword [esp + 0x60]
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x563c4b
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx]
mov dword [esp + 0x64], eax
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0xc]
mov dl, byte [ecx + 0x4d]
mov byte [eax + 4], dl
mov eax, dword [esp + 0x64]
movzx ecx, word [eax + 6]
add ecx, 1
jmp 0x563c52
cmp al, 0xf2
jne 0x563c56
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x6c]
mov eax, dword [ebp + 4]
push 1
push edx
push ecx
mov ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.005616c0
add esp, 0x14
test eax, eax
mov dword [esp + 0x78], eax
je 0x561d02
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x78]
mov byte [edx + 0x20], 1
mov eax, dword [esp + 0x78]
mov ecx, dword [eax]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
mov eax, dword [esp + 0x80]
push ecx
call fcn.00554bb0
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
add esp, 0x10
cmp eax, 0x10
mov dword [esp + 0x14], eax
mov dword [edx + 8], ecx
jne 0x563cd5
mov edx, dword [esp + 0x78]
mov dword [edx], 0
mov dword [esp + 0x14], 0
cmp byte [ebp + 1], 0xfa
mov ecx, dword [esp + 0x78]
setne al
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x78]
cmp byte [eax + 0x1e], 0
sete dl
mov byte [eax + 0x1f], dl
jmp case.0x5619f7.16
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
push 1
push 0xffffffffffffffff
push eax
push ecx
push edx
call fcn.005616c0
add esp, 0x14
test eax, eax
mov dword [esp + 0x60], eax
je 0x561d02
mov edx, dword [esp + 0x1c]
mov byte [eax + 0x1c], 1
movzx eax, byte [ebp + 3]
mov ecx, dword [esp + 0x60]
push 0x41e
or eax, 9
push eax
add ecx, 4
push ecx
push edx
xor ecx, ecx
call fcn.00552700
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jne 0x563dff
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
push 1
push ecx
call fcn.00553770
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x563dff
cmp dword [ebp + 0x10], 0
mov eax, dword [esp + 0x60]
je 0x563ddf
mov eax, dword [eax + 4]
lea edx, [esp + 0x4c]
push 2
push edx
call fcn.00558850
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x563dd5
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x10]
mov eax, dword [eax + 4]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push 1
push ecx
call fcn.00554bb0
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x70]
mov dword [eax + 8], edx
mov edx, dword [ecx]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x70]
mov eax, dword [edx + 8]
mov cl, byte [ecx + 0x4d]
add esp, 0x10
mov byte [eax + 4], cl
mov edx, dword [esp + 0x60]
mov byte [edx + 0x1e], 0
jmp 0x563dff
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push ecx
push 0
push 1
push 1
call fcn.00554bb0
mov edx, dword [esp + 0x70]
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [edx + 0x1e], 1
cmp byte [ebp + 3], 0x10
mov ecx, dword [esp + 0x60]
setne al
mov byte [ecx + 0x20], al
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x1e], 0
sete dl
mov byte [eax + 0x1f], dl
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
push 0
push 0xffffffffffffffff
push eax
push ecx
push edx
call fcn.005616c0
add esp, 0x14
test eax, eax
mov dword [esp + 0x60], eax
je 0x561d02
mov byte [eax + 0x1c], 1
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x60]
mov byte [edx + 0x1e], 1
mov eax, dword [esp + 0x60]
mov byte [eax + 0x1f], 0
jmp case.0x5619f7.16
mov esi, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x44]
mov eax, dword [edx + ecx*4]
push esi
call fcn.0055ddf0
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x44]
add esp, 4
mov dword [ecx + eax*4], 0
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x44]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x68], eax
cmp dword [eax], 0
je 0x561a0c
movzx edx, byte [ebp]
mov dword [esp + 0x64], edx
mov byte [eax + 0x1c], 0
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1e], 0
je 0x564072
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
call fcn.00561780
mov ecx, esi
call fcn.0055bb10
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov byte [ecx + 0x19], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x56400b
test al, 8
jne 0x563f0e
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
xor ecx, ecx
cmp dword [esp + 0x90], ecx
jne 0x563fb9
mov eax, 0x80000000
cmp dword [esp + 0x94], eax
jne 0x563fb9
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
fild qword [esp + 0x58]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x563f51
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x563fb9
fldz
mov dword [esp + 0x60], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x563f7d
cmp dword [esp + 0x64], 0x2e
jl 0x563faa
mov edx, dword [esp + 0x68]
mov esi, dword [edx]
lea edi, [esp + 0x60]
call fcn.00555680
jmp 0x563f93
cmp dword [esp + 0x64], 0x2d
jg 0x563faa
mov eax, dword [esp + 0x68]
mov esi, dword [eax]
lea edi, [esp + 0x60]
call fcn.005556b0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
cmp dword [esp + 0x60], 0
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [esp + 0x64]
cmp eax, 0x2c
je 0x563feb
cmp eax, 0x2e
je 0x563feb
fild qword [esp + 0x90]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x56400b
or eax, 0xffffffff
add dword [esp + 0x90], eax
adc dword [esp + 0x94], eax
jmp 0x56400b
fild qword [esp + 0x90]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x56400b
add dword [esp + 0x90], 1
adc dword [esp + 0x94], ecx
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x6c]
push 0
push edx
mov edx, dword [ecx]
push eax
push 0
push edx
call fcn.005556f0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
cmp dword [esp + 0x60], eax
jne 0x5640ef
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 1
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x68]
mov dword [edx + 0x40], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x44], eax
jmp 0x5640ef
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x88], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x70], eax
movzx eax, byte [esp + 0x64]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
mov word [esp + 0x74], dx
mov word [esp + 0x76], ax
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x80], edi
test word [edi + 0x1c], 0x4000
je 0x5640be
mov eax, edi
call fcn.0055b830
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x60]
push eax
mov eax, dword [ecx]
push 0
push 0
push 0
lea edx, [esp + 0x80]
push edx
push eax
call fcn.005556f0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x19], al
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x68]
xor esi, esi
mov dword [eax + 0x4c], esi
mov ecx, dword [esp + 0x64]
cmp ecx, 0x2e
mov eax, dword [esp + 0x60]
jl 0x56414b
cmp eax, esi
jl 0x564121
jne 0x564118
cmp ecx, 0x2f
je 0x564121
mov dword [esp + 0x60], esi
jmp case.0x5619f7.16
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.00555ab0
add esp, 8
cmp eax, esi
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x19], 0
jmp 0x564193
cmp eax, esi
jg 0x56416b
jne 0x564156
cmp ecx, 0x2c
je 0x56416b
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
xor ecx, ecx
cmp byte [eax + 0x53], 1
setne cl
mov dword [esp + 0x60], ecx
jmp 0x564193
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
lea edx, [esp + 0x60]
push edx
push ecx
call fcn.00555c00
add esp, 8
cmp eax, esi
mov dword [esp + 0x14], eax
jne 0x566481
mov edx, dword [esp + 0x68]
mov byte [edx + 0x19], 0
cmp dword [esp + 0x60], esi
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x44]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x60], eax
cmp dword [eax], 0
je case.0x5619f7.16
mov byte [eax + 0x1c], 0
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
lea ecx, [edi + eax*8]
call fcn.0055bb10
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x60]
mov dword [eax + 0x3c], edx
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x60]
mov byte [edx + 0x1d], 1
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x44]
xor edx, edx
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x64], eax
cmp dword [eax], edx
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
je 0x5642e2
cmp dword [ebp + 0x10], edx
jle 0x564251
mov edx, dword [eax + 8]
mov dword [esp + 0x70], edx
mov cx, word [ebp + 0x10]
lea edx, [esp + 0x70]
mov word [esp + 0x74], cx
mov dword [esp + 0x80], edi
mov word [esp + 0x76], 0x10
mov dword [esp + 0x6c], edx
jmp 0x564286
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x18]
mov eax, dword [eax + 8]
push ecx
push edx
push eax
mov edx, 0x97
lea eax, [esp + 0x94]
call fcn.0055f2b0
add esp, 0xc
test eax, eax
mov dword [esp + 0x6c], eax
je 0x561d02
or word [eax + 6], 0x10
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
lea ecx, [esp + 0x68]
push ecx
push 0
push 0
push 0
push edx
push eax
call fcn.005556f0
add esp, 0x18
cmp dword [ebp + 0x10], 0
mov esi, eax
mov dword [esp + 0x14], esi
jne 0x5642ba
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0055f400
add esp, 4
test esi, esi
jne case.0x5619f7.16
mov eax, dword [esp + 0x64]
xor edx, edx
cmp dword [esp + 0x68], edx
sete dl
mov dword [esp + 0x60], edx
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x4c], esi
mov edx, dword [esp + 0x60]
cmp byte [ebp], 0x32
jne 0x5642ff
test edx, edx
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
test edx, edx
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x44]
lea esi, [edi + edx*8]
mov edx, dword [ebp + 4]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x64], eax
xor edi, edi
mov dword [eax + 0x48], edi
mov edx, dword [esp + 0x64]
mov dword [edx + 0x4c], edi
mov edx, dword [esp + 0x64]
mov eax, dword [edx]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x68], eax
mov ecx, dword [edx + 8]
mov cx, word [ecx + 6]
xor ax, ax
cmp cx, di
mov word [esp + 0x6c], cx
mov word [esp + 0x60], ax
jbe 0x56438f
movzx edi, ax
lea edi, [edi + edi*4]
test byte [ebx + edi*8 + 0x1c], 1
jne 0x56443c
add ax, 1
cmp ax, cx
mov word [esp + 0x60], ax
jb 0x564370
cmp dword [esp + 0x68], 0
je case.0x5619f7.16
mov edx, dword [edx + 8]
mov eax, dword [esp + 0x6c]
add eax, 1
mov dword [esp + 0x78], edx
mov word [esp + 0x7c], ax
mov word [esp + 0x7e], 0x20
mov dword [esp + 0x88], ebx
call fcn.0055bc30
mov eax, dword [esp + 0x64]
mov ecx, dword [esi + 0x10]
add eax, 0x48
push eax
push 0
mov dword [esp + 0x98], ecx
mov edx, dword [esi + 0x14]
push 0
push 0
lea ecx, [esp + 0x88]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x78]
push ecx
push edx
call fcn.005556f0
add esp, 0x18
test byte [esp + 0x7e], 0x20
mov dword [esp + 0x14], eax
jne 0x561a0c
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x90]
jne 0x56442a
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x94]
je 0x561a0c
mov dword [esi + 0x10], eax
mov edx, dword [esp + 0x84]
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x68], 0
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x60], ecx
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x64], eax
je 0x5644ff
xor esi, esi
mov dword [esp + 0x68], esi
mov ecx, dword [edi + 0x10]
lea ebx, [esp + 0x68]
push ebx
push esi
mov dword [esp + 0x78], ecx
mov edx, dword [edi + 0x14]
push edx
push ecx
push esi
push eax
mov dword [esp + 0x8c], edx
call fcn.005556f0
mov edx, dword [esp + 0x78]
mov ecx, dword [edi + 0x10]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x78]
add esp, 0x18
cmp dword [esp + 0x68], esi
sete dl
mov byte [eax + 0x19], dl
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x1c], 0
mov edx, dword [esp + 0x60]
mov dword [edx + 0x4c], esi
mov eax, dword [esp + 0x60]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x68]
cmp eax, esi
je 0x5644f3
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x48], eax
jmp case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov dword [ecx + 0x48], 0
jmp case.0x5619f7.16
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x44]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x34]
mov dword [esi + 0x14], eax
mov edx, dword [ebp + 4]
mov eax, dword [ecx + 0x44]
mov eax, dword [eax + edx*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.0x5619f7.16
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x44]
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov ecx, dword [ebp + 4]
mov edx, dword [edx + ecx*4]
mov dword [esp + 0x68], edx
mov ecx, dword [edx]
cmp ecx, eax
je 0x5647e1
cmp byte [edx + 0x1b], al
jne 0x5646e1
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 0x1c]
mov edx, eax
or edx, ecx
mov dword [esp + 0x64], ecx
jne 0x5645fc
mov eax, dword [esp + 0x68]
mov esi, dword [eax]
lea edi, [esp + 0x6c]
call fcn.005556b0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
cmp dword [esp + 0x6c], eax
je 0x5645b4
mov eax, 1
xor ecx, ecx
jmp 0x5645f4
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
lea edi, [esp + 0x60]
call fcn.00554d70
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
cmp eax, 0xffffffff
jne 0x5645ee
cmp ecx, 0x7fffffff
jne 0x5645ee
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1b], 1
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
jmp 0x5645fc
add eax, 1
adc ecx, 0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x5646ae
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x56463c
mov dword [esp + 0x78], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x56462d
mov ecx, eax
mov dword [esp + 0x78], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x564620
mov ebp, dword [ebp + 0xc]
mov eax, dword [ecx + 0x10]
lea edx, [ebp + ebp*4]
lea esi, [eax + edx*8]
jmp 0x564646
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x2c]
lea esi, [edx + ecx*8]
mov dword [esp + 0x74], esi
call fcn.0055bc30
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
add edx, 0x10
cmp eax, 0xffffffff
jne 0x56466d
cmp ecx, 0x7fffffff
je 0x566479
mov esi, dword [esp + 0x68]
cmp byte [esi + 0x1b], 0
jne 0x566479
mov esi, dword [esp + 0x64]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x564699
jl 0x564691
cmp dword [esp + 0x60], eax
jae 0x564699
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x60]
mov dword [edx], eax
mov ecx, dword [esp + 0x64]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
cmp ecx, 0x7fffffff
jg 0x5646c5
jl 0x5646bd
cmp eax, 0xffffffff
jae 0x5646c5
add eax, 1
adc ecx, 0
jmp 0x5646c9
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x68]
mov esi, dword [edx]
push ecx
push eax
call fcn.00554c00
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
add esp, 8
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1b], 0
je 0x5647c6
mov eax, dword [ebx + 0x30]
mov ebx, dword [ebx + 0x34]
lea edx, [esp + 0x6c]
push edx
and ebx, 0x3fffffff
add eax, 1
push 0
adc ebx, 0
push ebx
push eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x80], 0
mov eax, dword [ecx]
push 0
push eax
call fcn.005556f0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x5647c6
lea edi, [eax + 5]
lea esp, [esp]
mov edx, dword [esp + 0x6c]
test edx, edx
jne 0x5647b6
mov ecx, dword [esp + 0x70]
add ecx, 1
cmp ecx, 0x64
mov dword [esp + 0x70], ecx
jge 0x5647b6
lea ecx, [esp + 0x60]
push ecx
push 8
call fcn.00544cc0
mov eax, dword [esp + 0x68]
add esp, 8
cmp dword [esp + 0x70], edi
jge 0x56477a
and eax, 0xffffff
xor ecx, ecx
jmp 0x564784
mov ecx, dword [esp + 0x64]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x6c]
push edx
adc ecx, 0
push 0
push ecx
push eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax]
push 0
push ecx
call fcn.005556f0
add esp, 0x18
test eax, eax
je 0x564740
mov dword [esp + 0x14], eax
jmp 0x5647c6
test eax, eax
mov dword [esp + 0x14], eax
jne 0x5647c6
test edx, edx
je 0x566479
mov edx, dword [esp + 0x68]
mov byte [edx + 0x19], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x4c], 0
mov edx, dword [esp + 0x60]
mov dword [esi + 0x10], edx
mov eax, dword [esp + 0x64]
mov dword [esi + 0x14], eax
jmp case.0x5619f7.16
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x44]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x60], ecx
mov edx, dword [ebp + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x70], edx
cmp byte [ebp], 0x37
mov eax, dword [ebp + 0xc]
jne 0x564831
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x64], edi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x68], eax
mov edx, dword [edi + 0x14]
jmp 0x564836
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
test byte [ebp + 3], 1
je 0x564844
add dword [esi + 0x6c], 1
test byte [ebp + 3], 2
je 0x564858
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x34], eax
mov ecx, dword [esp + 0x60]
xor eax, eax
test byte [ecx + 0x1c], 1
je 0x56486e
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], eax
mov ecx, dword [esp + 0x60]
test byte [ebp + 3], 0x10
je 0x564881
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x48]
mov dword [esp + 0x78], edx
jmp 0x564885
mov dword [esp + 0x78], eax
test word [ecx + 0x1c], 0x4000
je 0x564890
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x74], eax
mov esi, dword [ecx]
push 0
push 0
call fcn.00554c00
movzx edx, byte [ebp + 3]
mov eax, dword [esp + 0x7c]
and edx, 8
push edx
push eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [edx]
push ecx
push 0
push eax
mov eax, dword [esp + 0xa0]
call fcn.00558110
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x98]
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x98]
add esp, 0x28
test eax, eax
mov dword [esp + 0x14], eax
mov dword [ecx + 0x4c], 0
jne case.0x5619f7.16
cmp dword [ebx + 0xbc], eax
je case.0x5619f7.16
cmp dword [ebp + 0x10], eax
je case.0x5619f7.16
mov edx, dword [esp + 0x70]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x6c]
shl eax, 4
mov eax, dword [eax + ecx]
mov dword [esp + 0x7c], eax
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x80], esi
mov cl, byte [ebp + 3]
and cl, 4
neg cl
push edx
mov edx, dword [esp + 0x6c]
push edx
push esi
push eax
sbb ecx, ecx
and ecx, 5
add ecx, 0x12
mov dword [esp + 0x94], ecx
mov eax, dword [ebx + 0xb8]
push ecx
mov ecx, dword [ebx + 0xbc]
push eax
call ecx
add esp, 0x18
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x44]
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov edx, dword [ebp + 4]
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x68], edi
cmp dword [ebx + 0xbc], eax
je 0x5649b5
cmp dword [ebp + 0x10], eax
je 0x5649b5
mov edx, dword [edi + 0x40]
mov dword [esp + 0x60], edx
mov eax, dword [edi + 0x44]
mov dword [esp + 0x64], eax
call fcn.0055ee40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x68]
mov esi, dword [ecx]
push eax
push eax
call fcn.00554c00
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
push eax
call fcn.00558320
mov ecx, dword [esp + 0x74]
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
mov dword [ecx + 0x4c], 0
jne 0x564a34
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xbc]
test ecx, ecx
je 0x564a34
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x564a34
mov esi, dword [esp + 0x64]
push esi
mov esi, dword [esp + 0x64]
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xb8]
push eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0xc]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x5619f7.16
mov eax, dword [esp + 0x18]
add dword [eax + 0x6c], 1
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x6c]
add dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], eax
mov dword [ecx + 0x6c], 0
jmp case.0x5619f7.16
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0x44]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x60], edi
mov eax, dword [edi]
mov dword [esp + 0x64], eax
call fcn.0055ee40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 0x1f], al
je 0x564add
mov eax, dword [esp + 0x64]
lea edi, [esp + 0x70]
call fcn.00554d70
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x74]
cdq
cmp ecx, edx
jg 0x5623c3
mov ecx, dword [esp + 0x70]
jl 0x564ad5
cmp ecx, eax
ja 0x5623c3
mov eax, ecx
mov dword [esp + 0x68], eax
jmp 0x564afc
mov esi, dword [esp + 0x64]
mov edi, esi
call fcn.00554d20
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
cmp eax, dword [edx + 0x48]
ja 0x5623c3
mov edi, dword [esp + 0x24]
push 0
call fcn.0055b6c0
add esp, 4
test eax, eax
jne 0x561d02
mov eax, dword [esp + 0x68]
mov esi, edi
mov cx, word [esi + 0x1c]
and cx, 0xbf10
or cx, 0x10
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], cx
mov edx, dword [esp + 0x60]
cmp byte [edx + 0x1f], 0
je 0x564b59
mov eax, dword [esi + 4]
push 0
push eax
mov eax, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
push 0
call fcn.00554f50
mov dword [esp + 0x24], eax
mov byte [esi + 0x1f], 1
jmp 0x5662ec
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push ecx
push edx
push 0
push eax
call fcn.00555260
mov dword [esp + 0x24], eax
mov byte [esi + 0x1f], 1
jmp 0x5662ec
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x44]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x60], edi
cmp byte [edi + 0x1c], 0
je 0x564b9d
mov word [esi + 0x1c], 1
jmp case.0x5619f7.16
cmp byte [edi + 0x1d], 0
je 0x564bb3
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x68], ecx
mov edx, dword [edi + 0x3c]
mov dword [esp + 0x6c], edx
jmp 0x564c26
cmp dword [edi + 0x24], 0
je 0x564bec
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov edx, dword [edi + 0x24]
mov eax, dword [eax + 0x30]
lea ecx, [esp + 0x68]
push ecx
push edx
call eax
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x14], eax
call fcn.00561890
jmp 0x564c26
call fcn.0055ee40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x19], 0
je 0x564c17
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 0x44]
mov dword [esp + 0x6c], edx
jmp 0x564c26
mov eax, dword [eax]
lea edi, [esp + 0x68]
call fcn.00554d70
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x14], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x44]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x60], eax
mov byte [eax + 0x1c], 1
mov eax, dword [esp + 0x60]
mov byte [eax + 0x19], 0
mov ecx, dword [esp + 0x60]
mov esi, dword [ecx]
test esi, esi
je case.0x5619f7.16
call fcn.00551620
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x44]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x60], eax
mov esi, dword [eax]
test esi, esi
mov dword [esp + 0x64], esi
jne 0x564c97
mov dword [esp + 0x68], 1
jmp 0x564ca8
lea edi, [esp + 0x68]
call fcn.005556b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov dl, byte [esp + 0x68]
mov byte [eax + 0x1c], dl
mov eax, dword [esp + 0x60]
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x60]
mov dword [edx + 0x4c], 0
mov ebp, dword [ebp + 8]
test ebp, ebp
jle case.0x5619f7.16
cmp dword [esp + 0x68], 0
je case.0x5619f7.16
add ebp, 0xffffffff
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
add dword [eax + 0x80], 1
jmp 0x564cfd
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], 1
mov esi, dword [eax]
test esi, esi
mov dword [esp + 0x64], esi
je 0x564d57
lea edi, [esp + 0x68]
call fcn.00555680
cmp dword [esp + 0x68], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
sete al
mov byte [ecx + 0x1a], al
mov edx, dword [esp + 0x60]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x60]
mov dword [eax + 0x4c], 0
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x19], 0
mov eax, dword [esp + 0x60]
mov dl, byte [esp + 0x68]
mov byte [eax + 0x1c], dl
cmp dword [esp + 0x68], 0
je case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x5664c2
mov esi, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x44]
mov eax, dword [edx + ecx*4]
test eax, eax
mov dword [esp + 0x60], eax
je case.0x5619f7.16
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x64], ecx
jne 0x564db2
mov byte [eax + 0x1c], 1
jmp case.0x5619f7.16
mov dword [esp + 0x68], 1
cmp byte [ebp], 0x43
jne 0x564dcd
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.00555ab0
jmp 0x564dd8
lea edx, [esp + 0x68]
push edx
push ecx
call fcn.00555c00
mov cl, byte [esp + 0x70]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1c], cl
mov edx, dword [esp + 0x68]
add esp, 8
mov dword [edx + 0x4c], 0
cmp dword [esp + 0x68], 0
jne 0x564e19
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [esp + 0x20], eax
mov al, byte [ebp + 3]
test al, al
je 0x564e19
movzx eax, al
add dword [esi + eax*4 + 0x78], 1
lea eax, [esi + eax*4 + 0x78]
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x19], 0
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x44]
mov edx, dword [ebp + 4]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 8]
mov ecx, dword [edx]
test ecx, ecx
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x64], ecx
je case.0x5619f7.16
test word [edi + 0x1c], 0x4000
je 0x564e71
mov eax, edi
call fcn.0055b830
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x68], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x6c], edi
test byte [ebp + 3], 0x10
je 0x564e8a
mov esi, dword [edx + 0x48]
jmp 0x564e8c
xor esi, esi
mov edx, dword [ebp + 0xc]
push edx
push 0
push 0
cdq
push 0x627e26
push edx
push eax
push edi
push ecx
mov eax, esi
call fcn.00558110
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
add esp, 0x20
mov dword [eax + 0x4c], 0
jmp case.0x5619f7.16
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x60], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x64], ecx
je case.0x5619f7.16
mov edx, dword [eax + 8]
mov dword [esp + 0x70], edx
mov ax, word [ebp + 0xc]
xor esi, esi
mov word [esp + 0x74], ax
mov word [esp + 0x76], si
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea eax, [edi + edx*8]
lea edx, [esp + 0x68]
push edx
push esi
push esi
mov dword [esp + 0x8c], eax
push esi
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.005556f0
add esp, 0x18
cmp eax, esi
mov dword [esp + 0x14], eax
jne 0x564f3e
cmp dword [esp + 0x68], esi
jne 0x564f3e
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00558320
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x60]
mov dword [edx + 0x4c], esi
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x44]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x64], eax
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov word [esi + 0x1c], 1
cmp dword [esp + 0x60], 0
je case.0x5619f7.16
mov edi, dword [esp + 0x64]
call fcn.0055ee40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x64]
cmp byte [ecx + 0x1c], al
jne case.0x5619f7.16
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x68]
push edx
call fcn.0055f640
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x566481
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], 4
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x44]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x60], edi
cmp dword [edi], 0
je case.0x5619f7.16
mov eax, dword [edi + 8]
mov dword [esp + 0x68], eax
mov cx, word [ebp + 0x10]
xor edx, edx
mov word [esp + 0x6c], cx
cmp byte [ebp + 3], dl
mov ecx, dword [esp + 0x2c]
setne dl
lea edx, [edx*8 + 4]
mov word [esp + 0x6e], dx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x80], edx
call fcn.0055f7a0
add esp, 8
cmp byte [ebp], 0x51
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
jne 0x565044
neg eax
jmp 0x565047
add eax, 1
test eax, eax
mov dword [esp + 0x64], eax
jle case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov dword [esp + 0x64], 0
mov eax, dword [ebx + 0x88]
test eax, eax
mov dword [esp + 0x68], eax
mov edx, 1
je 0x5650a2
mov ecx, 0xbdf20da3
cmp dword [eax + 0x34], ecx
jne 0x565097
cmp byte [eax + 0x67], 2
jae 0x565097
cmp dword [eax + 0x58], 0
jl 0x565097
add dword [esp + 0x64], edx
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [esp + 0x68], eax
jne 0x565082
mov word [esi + 0x1c], dx
cmp dword [esp + 0x64], edx
jle 0x5650c1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], 6
mov byte [edx + 0x60], 2
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push edx
call fcn.00558d00
mov ecx, eax
mov word [esi + 0x1c], 4
mov eax, dword [esp + 0x68]
cdq
add esp, 8
test ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jne case.0x5619f7.16
mov esi, dword [esp + 0x60]
test esi, esi
je case.0x5619f7.16
mov edi, dword [ebp + 4]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1c]
call fcn.00572520
mov al, byte [esp + 0x6c]
add al, 1
mov byte [esp + 0x33], al
jmp case.0x5619f7.16
mov dword [esp + 0x60], 0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x60]
and edx, eax
mov eax, dword [ebx + 8]
push edx
mov edx, dword [ebp + 8]
shl edx, 4
mov esi, dword [edx + eax + 4]
push ecx
call fcn.00558a30
add esp, 8
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x14], eax
je case.0x5619f7.16
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x6c], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jle case.0x5619f7.16
lea ecx, [ebp + ebp*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
lea ecx, [edi + ecx*8 + 0x10]
adc dword [ecx + 4], edx
jmp case.0x5619f7.16
mov dword [esp + 0x60], 0
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ebx + 8]
xor ecx, ecx
mov dword [esp + 0x68], eax
cmp byte [ebp], 0x62
lea edx, [esp + 0x60]
setne cl
add ecx, 1
push ecx
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 4]
push edx
call fcn.00558850
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
cdq
add esp, 8
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
cmp eax, 1
mov dword [esp + 0x60], eax
mov ecx, str.sqlite_temp_master
je 0x5651f5
mov ecx, str.sqlite_master
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], ebx
mov edx, dword [ebp + 4]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x18]
add edx, 0x38
mov dword [esp + 0x74], edx
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
mov esi, ebx
call fcn.00544920
add esp, 0x10
test eax, eax
mov dword [esp + 0x68], eax
je 0x561d02
mov esi, dword [esp + 0x1c]
push 0
lea eax, [esp + 0x70]
push eax
mov byte [esi + 0x7c], 1
mov ecx, dword [esp + 0x70]
push fcn.00580360
push ecx
push esi
mov dword [esp + 0x8c], 0
call fcn.0057d7a0
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [esp + 0x14], edi
jne 0x565278
mov edi, dword [esp + 0x78]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x68]
push edx
push esi
call fcn.00543400
add esp, 8
cmp edi, 7
mov byte [esi + 0x7c], 0
je 0x561d02
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ecx, ebx
call fcn.0056f180
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push ebx
call fcn.00570b50
add esp, 4
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push ebx
call fcn.00570720
add esp, 4
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push ebx
call fcn.00589060
add esp, 4
jmp case.0x5619f7.16
mov eax, dword [ebp + 8]
lea ecx, [eax*4 + 4]
mov esi, ebx
mov dword [esp + 0x60], eax
call fcn.00543630
test eax, eax
mov dword [esp + 0x64], eax
je 0x561d02
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8]
xor ecx, ecx
cmp dword [esp + 0x60], ecx
mov dword [esp + 0x68], ecx
jle 0x56535b
mov edi, edi
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
call fcn.0055bb10
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x68]
add ecx, 1
cmp ecx, dword [esp + 0x60]
mov dword [esp + 0x68], ecx
jl 0x565330
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
push ecx
movzx ecx, byte [ebp + 3]
push edx
push eax
mov eax, dword [edi + 8]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
lea edx, [esp + 0x78]
call fcn.005599f0
mov ecx, dword [esp + 0x70]
add esp, 0xc
push ecx
push edi
mov dword [esp + 0x78], eax
call fcn.00543400
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
cdq
add ecx, 0x10
add esp, 8
sub dword [ecx], eax
sbb dword [ecx + 4], edx
call fcn.0055bcc0
cmp dword [esp + 0x6c], 0
je 0x5653e1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x561d02
push 1
push 0xffffffffffffffff
push eax
mov eax, fcn.00543360
mov ecx, esi
call fcn.0055c030
add esp, 0xc
movzx ecx, byte [esp + 0x28]
mov eax, esi
call fcn.0055b6a0
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 0x20
lea esi, [edi + edx*8]
lea eax, [ebp + ebp*4]
lea ebx, [edi + eax*8]
jne 0x56541d
mov edi, esi
call fcn.0055be50
test byte [esi + 0x1c], 0x20
je 0x561d02
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
mov edi, dword [esi + 0x10]
push ecx
push edx
call fcn.0054a170
add esp, 8
jmp case.0x5619f7.16
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x5664c2
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 0x20
lea ebx, [edi + ecx*8]
je 0x565484
mov eax, dword [ebx + 0x10]
lea esi, [esp + 0x60]
call fcn.0054a4e0
test eax, eax
je 0x565484
mov edx, dword [esp + 0x64]
mov ebp, dword [ebp + 0xc]
mov eax, dword [esp + 0x60]
push edx
lea ecx, [ebp + ebp*4]
push eax
lea esi, [edi + ecx*8]
call fcn.0055bd50
add esp, 8
jmp case.0x5619f7.16
mov esi, ebx
call fcn.0055bcc0
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [ebp + 0x10]
lea esi, [edi + edx*8]
mov dword [esp + 0x60], eax
test byte [esi + 0x1c], 0x20
jne 0x5654ce
mov edi, esi
call fcn.0055be50
test byte [esi + 0x1c], 0x20
je 0x561d02
mov eax, dword [esp + 0x60]
test eax, eax
je 0x565515
jl 0x5654d9
and eax, 0xf
jmp 0x5654de
mov eax, 0xff
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push ecx
push edx
push eax
mov eax, dword [esi + 0x10]
call fcn.0054a560
add esp, 0xc
test eax, eax
mov dword [esp + 0x64], eax
je 0x565509
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [esp + 0x60]
test eax, eax
jl case.0x5619f7.16
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
mov edi, dword [esi + 0x10]
push eax
push ecx
call fcn.0054a170
add esp, 8
jmp case.0x5619f7.16
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x68], edi
cmp byte [ebp + 3], 0
je 0x565574
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xa8]
test eax, eax
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x74], eax
je 0x565574
cmp dword [eax + 0x20], edx
je case.0x5619f7.16
mov eax, dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x74], eax
jne 0x565560
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0xb0]
cmp eax, dword [ebx + 0x70]
jl 0x5655a6
mov eax, dword [esp + 0x1c]
mov edi, edx
push str.too_many_levels_of_trigger_recursion
add edi, 0x38
mov dword [esp + 0x18], 1
call fcn.00543800
add esp, 4
jmp case.0x5619f7.16
test byte [edi + 0x1c], 0x40
mov esi, dword [esp + 0x1c]
jne 0x5656c3
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
lea edx, [eax + eax*4]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0xc]
lea edi, [eax + edx*2]
lea edi, [edi*4 + 0x40]
mov eax, esi
mov dword [esp + 0x64], edi
call fcn.00543610
test eax, eax
mov dword [esp + 0x74], eax
je 0x561d02
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0055ba70
mov edx, dword [esp + 0x6c]
mov word [edx + 0x1c], 0x40
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
mov dword [edx], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
mov dword [eax + 0x28], edx
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x78]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x18]
mov eax, dword [esp + 0x78]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x44]
mov eax, dword [esp + 0x78]
mov dword [eax + 0x18], edx
mov dx, word [ecx + 0x32]
mov eax, dword [esp + 0x78]
mov word [eax + 0x1c], dx
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x78]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x1c]
mov eax, dword [esp + 0x78]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x20], eax
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x24]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8 + 0x40]
lea eax, [edx + 0x40]
add esp, 4
cmp eax, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], eax
je 0x5656ce
mov edi, edi
mov word [eax + 0x1c], 1
mov edx, dword [esp + 0x6c]
mov dword [edx], esi
mov eax, dword [esp + 0x6c]
add eax, 0x28
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
jne 0x5656a0
mov edx, dword [esp + 0x74]
jmp 0x5656ce
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x74], edx
add dword [ecx + 0xb0], 1
mov eax, dword [ecx + 0xa8]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x30]
mov eax, dword [esp + 0x74]
mov dword [eax + 0x30], edx
mov edx, dword [esi + 0x34]
mov eax, dword [esp + 0x74]
mov dword [eax + 0x34], edx
mov edx, dword [ecx + 0x6c]
mov eax, dword [esp + 0x74]
mov dword [eax + 0x38], edx
mov eax, dword [esp + 0x74]
lea edx, [eax + 0x18]
mov dword [ecx + 0xa8], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0x6c], 0
mov esi, dword [eax + 0x24]
mov dword [ecx + 0x18], esi
mov ax, word [eax + 0x28]
mov word [ecx + 0x32], ax
mov eax, esi
add eax, 1
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], edx
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x44], edx
mov edx, dword [eax]
mov dword [ecx + 4], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov dword [ecx + 0x1c], eax
mov dword [esp + 0x20], 0xffffffff
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0xa8]
mov dword [esp + 0x60], ecx
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov eax, dword [eax + edx*4 + 4]
add eax, dword [ebp + 4]
push 0x1000
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea eax, [eax + edx*8]
push eax
push esi
mov dword [esp + 0x70], eax
call fcn.0055bf30
add esp, 0xc
jmp case.0x5619f7.16
cmp dword [ebp + 4], 0
mov eax, dword [ebp + 8]
cdq
je 0x5657ad
add dword [ebx + 0x1f0], eax
adc dword [ebx + 0x1f4], edx
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x90], eax
adc dword [ecx + 0x94], edx
jmp case.0x5619f7.16
cmp dword [ebp + 4], 0
je 0x5657e9
mov ecx, dword [ebx + 0x1f0]
or ecx, dword [ebx + 0x1f4]
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x90]
or edx, dword [eax + 0x94]
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x565842
mov dword [esp + 0x64], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x565834
mov ecx, eax
mov dword [esp + 0x64], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x565827
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea esi, [eax + edx*8]
jmp 0x56584b
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
mov dword [esp + 0x60], esi
call fcn.0055bc30
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea esi, [edi + edx*8]
call fcn.0055bc30
mov eax, dword [esp + 0x60]
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov edx, dword [eax + 0x14]
add eax, 0x10
cmp edx, esi
jg case.0x5619f7.16
jl 0x565887
mov edx, dword [eax]
cmp edx, ecx
jae case.0x5619f7.16
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [edi + eax*8 + 0x14], 0
jl case.0x5619f7.16
jg 0x5658af
cmp dword [edi + eax*8 + 0x10], 0
jbe case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [edi + eax*8 + 0x14], 0
jg case.0x5619f7.16
jl 0x5658dc
cmp dword [edi + eax*8 + 0x10], 0
jae case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ebp + 0xc]
cdq
add dword [edi + 0x10], eax
mov ecx, dword [edi + 0x10]
adc dword [edi + 0x14], edx
or ecx, dword [edi + 0x14]
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
movzx ecx, byte [ebp + 3]
mov dword [esp + 0x60], ecx
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [edi + edx*8]
mov edx, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0x64], eax
jle 0x565975
mov ecx, dword [esp + 0xb0]
mov dword [ecx + eax*4], edi
mov ecx, dword [esp + 0x6c]
call fcn.00561690
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
add eax, 1
add edi, 0x28
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], edi
jl 0x565946
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x70], edx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
xor esi, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0xa0], eax
mov edi, 1
add dword [eax + 0x18], edi
mov eax, dword [esp + 0x70]
mov word [esp + 0x94], di
mov dword [esp + 0x7c], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
test byte [eax + 3], 8
je 0x5659e2
mov edx, dword [ebp - 4]
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x60]
push ecx
push edx
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x78]
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0xa4], esi
je 0x565a34
push edi
lea edi, [esp + 0x7c]
call fcn.0055c5e0
mov edi, dword [esp + 0x1c]
add esp, 4
push eax
push 0x62c378
add edi, 0x38
mov eax, ebx
call fcn.00543800
mov eax, dword [esp + 0xac]
add esp, 8
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0055ba70
add esp, 4
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea ecx, [edi + edx*8]
mov dword [esp + 0x60], ecx
mov eax, dword [ebp + 0x10]
call fcn.0055b990
test eax, eax
mov dword [esp + 0x14], eax
je 0x565a89
mov eax, dword [esp + 0x60]
push eax
call fcn.0055fbe0
mov edi, dword [esp + 0x1c]
add esp, 4
push eax
mov eax, dword [esp + 0x20]
push 0x62c378
add edi, 0x38
call fcn.00543800
add esp, 8
movzx ecx, byte [esp + 0x28]
mov eax, dword [esp + 0x60]
call fcn.0055b6a0
mov ecx, dword [esp + 0x60]
call fcn.0055bf00
test eax, eax
jne 0x5623c3
jmp case.0x5619f7.16
or eax, 0xffffffff
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
push ecx
push edx
lea edx, [esp + 0x74]
lea ecx, [esp + 0x70]
mov esi, ebx
call fcn.00596d10
add esp, 8
cmp eax, 5
mov dword [esp + 0x14], eax
jne 0x565af3
mov dword [esp + 0x14], 0
mov dword [esp + 0x64], 1
xor eax, eax
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x70], edi
mov eax, dword [esp + eax*4 + 0x64]
cdq
push edx
push eax
mov esi, edi
call fcn.0055bd50
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x78]
add eax, 1
add edi, 0x28
add esp, 8
cmp eax, 3
mov dword [esp + 0x60], eax
mov dword [esp + 0x70], edi
jl 0x565b07
jmp case.0x5619f7.16
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], edx
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 8]
shl eax, 4
cmp edx, 0xffffffff
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x60], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0x64], edi
movzx esi, byte [edi + 5]
mov dword [esp + 0x6c], esi
jne 0x565b6c
mov edx, esi
mov dword [esp + 0x68], edx
cmp byte [edi + 0xf], 3
jae 0x565b88
mov ecx, dword [edi + 0x40]
cmp dword [ecx], 0
je 0x565b8e
cmp dword [edi + 0x4c], 0
jl 0x565b8e
jg 0x565b88
cmp dword [edi + 0x48], 0
jbe 0x565b8e
mov edx, esi
mov dword [esp + 0x68], edx
cmp edx, 5
mov eax, dword [edi + 0x90]
mov dword [esp + 0x70], eax
jne 0x565bb8
cmp byte [eax], 0
je 0x565bad
mov eax, edi
call fcn.0054ea50
test eax, eax
jne 0x565bb8
mov edx, esi
mov dword [esp + 0x68], edx
jmp 0x565c7c
cmp edx, esi
je 0x565c7c
cmp esi, 5
je 0x565bce
cmp edx, 5
jne 0x565c7c
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x1c], 0
je 0x565c3f
cmp dword [eax + 0x8c], 1
jg 0x565c3f
cmp esi, 5
jne 0x565c01
call fcn.0054eb80
test eax, eax
mov dword [esp + 0x14], eax
jne 0x565c35
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x565c0b
cmp esi, 4
jne 0x565c14
lea ecx, [esi - 2]
mov eax, edi
call fcn.0054e8f0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
xor eax, eax
cmp edx, 5
sete al
add eax, 1
push eax
push ecx
call fcn.0055a060
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
je 0x565c74
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
jmp 0x565c78
cmp edx, 5
mov dword [esp + 0x14], 1
mov eax, str.into
je 0x565c56
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add edi, 0x38
call fcn.00543800
add esp, 8
jmp case.0x5619f7.16
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov ecx, edx
mov eax, edi
call fcn.0054e8f0
mov dword [esp + 0x68], eax
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
lea edx, [ebp + ebp*4]
lea edx, [eax + edx*8]
mov word [edx + 0x1c], 0xa02
mov eax, dword [esp + 0x68]
cmp eax, 6
mov dword [esp + 0x24], edx
jne 0x565cae
xor ecx, ecx
jmp 0x565cb5
mov ecx, dword [eax*4 + 0x618708]
mov dword [edx + 4], ecx
call fcn.00545410
movzx ecx, byte [esp + 0x28]
mov dword [edx + 0x18], eax
mov eax, edx
mov byte [edx + 0x1f], 1
call fcn.0055b6a0
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
push ebx
add eax, 0x38
call fcn.0058b7a0
add esp, 4
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
mov dword [esp + 0x60], eax
call fcn.005542e0
cmp eax, 0x65
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], 0
jmp case.0x5619f7.16
cmp dword [ebp + 4], 0
jne 0x565d3a
mov eax, ebx
call fcn.0055f870
jmp case.0x5619f7.16
mov eax, dword [esp + 0x18]
mov byte [eax + 0x64], 1
jmp case.0x5619f7.16
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x565d5b
test dword [ebx + 0xc], 0x80000
jne case.0x5619f7.16
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [ebx + 8]
shl eax, 4
mov esi, dword [eax + edx + 4]
call fcn.00559fa0
add esp, 4
cmp al, 6
mov dword [esp + 0x14], eax
jne case.0x5619f7.16
mov eax, dword [ebp + 0x10]
push eax
push str.database_table_is_locked:__s
jmp 0x565c5c
mov ebp, dword [ebp + 0x10]
mov eax, ebp
mov ecx, ebx
mov dword [esp + 0x60], ebp
call fcn.0058c9f0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
test eax, eax
je case.0x5619f7.16
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x18]
call fcn.00561890
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
add ecx, 0x38
push ecx
push edx
mov ecx, ebx
call fcn.0058c5c0
add esp, 8
mov dword [esp + 0x14], eax
jmp case.0x5619f7.16
mov esi, dword [esp + 0x18]
mov byte [esi + 0x67], 2
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 4]
mov ecx, ebx
call fcn.0058c870
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esi + 0x67], 0
jmp case.0x5619f7.16
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x70], ecx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x20]
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
call fcn.00561890
test ebx, ebx
jne case.0x5619f7.16
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
push ebx
push 0xffffffffffffffff
mov dword [edx], ecx
mov eax, dword [ebp + 4]
push ebx
push eax
mov ecx, edi
push ecx
call fcn.005616c0
add esp, 0x14
test eax, eax
mov dword [esp + 0x60], eax
je 0x565e8a
mov edx, dword [esp + 0x64]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [esp + 0x60]
mov dword [eax + 0x28], edx
jmp case.0x5619f7.16
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0x1e], 1
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp case.0x5619f7.16
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x44]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x6c], edi
lea esi, [edi + 0x28]
mov dword [esp + 0x70], esi
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
mov edx, dword [eax + 0x24]
mov dword [esp + 0x74], edx
mov eax, dword [edx]
mov dword [esp + 0x78], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x60], ecx
mov eax, dword [edi + 0x10]
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x64], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], eax
jle 0x565f58
jmp 0x565f14
mov esi, dword [esp + 0x70]
lea ecx, [eax + eax*4 + 5]
lea edx, [esi + ecx*8]
mov ecx, dword [esp + 0x88]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + edx*4]
call fcn.00561690
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x60]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x84], eax
jl 0x565f10
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x68]
push ecx
mov edi, ebx
mov byte [edi + 0x67], 1
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x74]
push eax
push edx
mov edx, dword [ecx + 0x20]
call edx
mov esi, dword [esp + 0x8c]
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x14], ebx
mov byte [edi + 0x67], 0
call fcn.00561890
test ebx, ebx
jne 0x565faf
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x565fc3
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x7c]
mov byte [eax + 0x1c], 0
jmp case.0x5619f7.16
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x44]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
mov dword [esp + 0x68], esi
cmp byte [ebx + 0x1c], 0
je 0x565ffa
call fcn.0055bcc0
jmp case.0x5619f7.16
mov edx, dword [ebx + 0x24]
mov eax, dword [edx]
push 0x40
mov dword [esp + 0x64], eax
mov eax, dword [eax]
lea ecx, [esp + 0x74]
push 0
push ecx
mov dword [esp + 0x70], eax
call fcn.005e6f30
mov edx, dword [esp + 0x74]
add esp, 0xc
push edx
lea eax, [esp + 0x7c]
call fcn.0055bfe0
mov eax, dword [esp + 0x98]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x98], ax
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x24]
add esp, 4
push ecx
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x74]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x14], eax
call fcn.00561890
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x56607b
mov dword [esp + 0x14], eax
movzx ecx, byte [esp + 0x28]
lea eax, [esp + 0x78]
call fcn.0055b6a0
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x6c]
call fcn.0055bfe0
mov ecx, dword [esp + 0x6c]
add esp, 4
call fcn.0055bf00
test eax, eax
jne 0x5623c3
jmp case.0x5619f7.16
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x44]
mov dword [esp + 0x68], 0
mov ecx, dword [ebp + 4]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x6c], eax
cmp byte [eax + 0x1c], 0
jne case.0x5619f7.16
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx]
mov edi, edx
mov dword [esp + 0x64], ecx
mov byte [edi + 0x67], 1
mov edx, dword [eax + 0x24]
mov eax, dword [ecx + 0x24]
push edx
call eax
mov esi, dword [esp + 0x64]
mov ebx, eax
add esp, 4
mov dword [esp + 0x14], ebx
mov byte [edi + 0x67], 0
call fcn.00561890
test ebx, ebx
jne 0x566123
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x24]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
jne case.0x5619f7.16
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x20], ebp
jmp case.0x5619f7.16
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x64], ecx
mov ecx, dword [ecx + 4]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x14], eax
call fcn.00561890
mov byte [edi + 0x64], 0
jmp case.0x5619f7.16
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
mov dword [esp + 0x60], esi
mov edx, dword [esi]
mov dword [esp + 0x64], edx
mov eax, dword [ebp + 8]
mov dword [esp + 0x68], eax
cmp dword [edx + 0x34], 0
je case.0x5619f7.16
test eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x78], ecx
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x6c], 0
jle 0x566203
mov ecx, edi
call fcn.00561690
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
add ecx, 1
add edi, 0x28
cmp ecx, eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x6c], ecx
jl 0x5661c7
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov edx, dword [edx + 0x34]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
push eax
push esi
call edx
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x28]
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x14], ebx
call fcn.00561890
test ebx, ebx
jne 0x566245
cmp dword [ebp + 4], ebx
je 0x566245
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0x74]
mov dword [eax + 0x34], edx
add dword [edi + 0x6c], 1
jmp case.0x5619f7.16
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 8]
shl eax, 4
mov edx, dword [eax + ecx + 4]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x30]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], 0
jmp case.0x5619f7.16
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 8]
mov ebp, dword [ebp + 0xc]
shl edx, 4
mov ecx, dword [edx + eax + 4]
xor eax, eax
test ebp, ebp
je 0x566292
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x30]
cmp eax, ebp
jae 0x566292
mov eax, ebp
call fcn.00553090
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.0x5619f7.16
mov ebp, dword [ebp + 0x10]
test ebp, ebp
je 0x5662ab
mov ecx, ebp
jmp 0x5662b5
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xa0]
test ecx, ecx
mov dword [esp + 0x60], ecx
je case.0x5619f7.16
cmp dword [ebx + 0x98], 0
je case.0x5619f7.16
mov edx, dword [esp + 0x18]
push edx
call fcn.00561390
mov ecx, dword [ebx + 0x98]
mov esi, eax
mov eax, dword [ebx + 0x9c]
add esp, 4
push esi
push eax
call ecx
push esi
push ebx
call fcn.00543400
add esp, 0x10
mov esi, dword [esp + 0x14]
add dword [esp + 0x20], 1
test esi, esi
jne 0x561d23
mov ecx, dword [esp + 0x1c]
jmp 0x561966
mov esi, 9
jmp 0x5664ff
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x5c], edx
mov al, byte [ebp + 8]
mov byte [edi + 0x60], al
mov dword [edi + 0x58], ecx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x566368
mov esi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push 0x62c378
lea edi, [esi + 0x38]
call fcn.00543800
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 0xa0]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [ebp + 4]
push eax
push ecx
push str.abort_at__d_in___s_:__s
push edx
call fcn.00544b50
add esp, 0x1c
mov edi, esi
jmp 0x566389
test edx, edx
je 0x566389
mov eax, dword [edi + 0xa0]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 4]
push eax
push ecx
push str.constraint_failed_at__d_in___s_
push edx
call fcn.00544b50
add esp, 0x10
push edi
call fcn.0055e8b0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x5663f4
mov dword [edi + 0x5c], esi
jmp 0x566554
lea ecx, [esp + 0x70]
push ecx
call fcn.0055ba70
add esp, 4
jmp 0x561d02
mov dword [esp + 0x14], 0x14
jmp 0x566481
mov edx, dword [esp + 0x20]
mov dword [edi + 0x58], edx
mov esi, 5
mov byte [ebx + 0x1c], 0
mov dword [edi + 0x5c], esi
jmp 0x566554
test ebp, ebp
je 0x566406
mov eax, ebx
call fcn.00596330
mov edi, dword [esp + 0x18]
mov byte [ebx + 0x1c], 1
mov esi, ebx
call fcn.00595f20
mov esi, dword [edi + 0x5c]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x566554
mov edi, dword [esp + 0x18]
push 1
mov ecx, edi
call fcn.0055e850
mov esi, eax
add esp, 4
test esi, esi
jne 0x566554
mov al, byte [esp + 0x60]
push edi
mov byte [ebx + 0x1c], al
call fcn.0055e8b0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x5663ed
mov ecx, dword [esp + 0x20]
mov dl, 1
sub dl, byte [esp + 0x60]
mov dword [edi + 0x58], ecx
mov byte [ebx + 0x1c], dl
mov dword [edi + 0x5c], esi
jmp 0x566554
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov esi, 5
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], esi
jmp 0x566554
mov eax, 0xff0b
call fcn.00597a00
mov dword [esp + 0x14], eax
jmp 0x566481
mov dword [esp + 0x14], 0xd
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x1e], 0
je 0x566492
mov esi, 7
jmp 0x56649e
mov esi, dword [esp + 0x14]
cmp esi, 0xc0a
je 0x5664fd
mov eax, esi
call fcn.00596400
mov edi, dword [esp + 0x18]
push eax
push 0x62c378
add edi, 0x38
mov eax, ecx
call fcn.00543800
mov ebx, dword [esp + 0x24]
add esp, 8
jmp 0x5664ff
mov eax, dword [esp + 0x18]
xor edi, edi
mov esi, 9
mov dword [eax + 0x5c], esi
mov eax, dword [str.interrupted]
cmp eax, edi
jne 0x5664de
mov eax, str.unknown_error
mov edi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push 0x62c378
add edi, 0x38
call fcn.00543800
mov ebx, dword [esp + 0x24]
add esp, 8
jmp 0x5664ff
mov ebx, ecx
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0xa0]
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
push str.statement_aborts_at__d:___s___s
push esi
mov dword [edi + 0x5c], esi
call fcn.00544b50
add esp, 0x14
push edi
call fcn.0055e8b0
add esp, 4
cmp esi, 0xc0a
jne 0x566539
mov byte [ebx + 0x1e], 1
mov al, byte [esp + 0x33]
test al, al
mov esi, 1
jbe 0x566554
movzx eax, al
sub eax, esi
push ebx
call fcn.005707f0
add esp, 4
push edi
call fcn.0055d5d0
mov ecx, dword [esp + 0x128]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005e693f
add esp, 0x11c
ret