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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x128
mov eax, dword [0x665ebc]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
xor eax, eax
push esi
mov esi, ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x98], ecx
push edi
mov edi, dword [esi]
mov ecx, dword [edi + 0x10]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x4d]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x79], al
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 0x20]
mov byte [ebp - 0x78], cl
mov ecx, dword [esi + 8]
mov dword [ebp - 0x84], eax
mov eax, dword [edi + 0x24]
mov ebx, esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x80], eax
call fcn.00521507
cmp dword [esi + 0x5c], 7
je 0x5512ee
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 0xe0]
mov dword [edi + 0x1b4], eax
test ecx, ecx
jne 0x5523c1
cmp dword [edi + 0x114], eax
mov eax, dword [esi + 0x58]
setne cl
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x38], 0
jne 0x5512ee
mov ebx, dword [ebp - 0x68]
imul ebx, ebx, 0x14
add ebx, dword [ebp - 0x98]
cmp dword [ebp - 0xa0], 0
mov dword [ebp - 0x70], ebx
je 0x54e159
mov ecx, dword [eax + 0x11c]
cmp ecx, dword [ebp - 0x90]
jne 0x54e153
push dword [eax + 0x118]
call dword [eax + 0x114]
pop ecx
test eax, eax
jne 0x552233
and dword [ebp - 0x90], eax
inc dword [ebp - 0x90]
test byte [ebx + 2], 2
je 0x54e184
mov edi, dword [ebx + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov eax, 0x2460
mov dword [ebp - 0x6c], edi
test word [edi + 0x1c], ax
je 0x54e17d
mov eax, edi
call fcn.00527bf0
push 4
pop eax
mov word [edi + 0x1c], ax
movzx eax, byte [ebx]
dec eax
cmp eax, 0x93
ja case.default.0x54e193
jmp dword [eax*4 + 0x5523cf]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xe0]
test eax, eax
jne 0x5523c1
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x68], ebx
jmp case.default.0x54e193
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x68]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0x68], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
mov eax, dword [eax + ecx + 0x10]
jmp 0x54e1d5
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
push 4
pop eax
mov word [ebx + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x68]
cdq
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov eax, dword [ebp - 0x54]
jmp 0x54e1d5
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
je case.default.0x54e193
cmp dword [ebx + 4], 0
jne 0x55223f
lea eax, [esi + 0xa8]
mov edx, dword [eax]
test edx, edx
je 0x55223f
mov ecx, dword [edx + 4]
mov edi, dword [ebp - 0x5c]
dec dword [esi + 0xb0]
mov dword [eax], ecx
mov ecx, dword [esi + 0x68]
mov eax, edi
call fcn.00521ad8
mov eax, edx
call fcn.0052160d
cmp dword [ebx + 8], 4
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x84], ecx
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x80], ecx
jne 0x54e284
mov ecx, dword [esi + 4]
imul eax, eax, 0x14
mov eax, dword [eax + ecx + 8]
dec eax
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x60], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x6c]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x54e193
mov ebx, dword [ebx + 0x10]
mov ecx, dword [ebx]
mov eax, dword [ebp - 0x6c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 0x14], ecx
jmp case.default.0x54e193
mov eax, dword [ebp - 0x6c]
push 8
pop ecx
mov word [eax + 0x1c], cx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.default.0x54e193
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 9
call fcn.0051d202
cmp byte [ebp - 0x78], 1
mov edi, dword [ebp - 0x6c]
mov dword [ebx + 4], eax
je 0x54e35c
push 1
push ecx
xor eax, eax
or ecx, 0xffffffff
mov edx, edi
call fcn.005329db
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, 0x12
je 0x551a0a
movzx eax, byte [ebp - 0x78]
push eax
mov eax, edi
call fcn.0053294a
pop ecx
test eax, eax
jne 0x5512ee
and dword [edi + 0x24], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x54e34c
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x5c]
call fcn.0051d025
mov byte [ebx + 1], 0xff
mov eax, dword [edi + 4]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
cmp eax, dword [ecx + 0x50]
jg 0x551a0a
jmp 0x54e370
mov edi, dword [ebp - 0x6c]
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [edi + 4], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x18], eax
mov al, byte [ebp - 0x78]
mov byte [edi + 0x1f], al
jmp case.default.0x54e193
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
mov edi, dword [ebp - 0x6c]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebx + 4]
neg ebx
sbb ebx, ebx
and ebx, 0x100
inc ebx
mov word [ebp - 0x50], bx
mov word [edi + 0x1c], bx
cmp dword [ebp - 0x54], 0
jle case.default.0x54e193
add edi, 0x28
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x54e3cd
mov eax, edi
call fcn.00527bf0
mov ax, word [ebp - 0x50]
mov word [edi + 0x1c], ax
dec dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0
jg 0x54e3b8
mov dword [ebp - 0x6c], edi
jmp case.default.0x54e193
mov edi, dword [ebp - 0x6c]
mov ecx, dword [ebx + 4]
push 0
push dword [ebx + 0x10]
xor eax, eax
mov edx, edi
call fcn.005329db
pop ecx
pop ecx
jmp 0x54e385
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x48]
imul eax, eax, 0x28
lea edi, [eax + ecx - 0x28]
mov ecx, edi
mov dword [ebp - 0x54], edi
call fcn.00521386
test eax, eax
jne 0x551a0a
push 0x800
mov esi, dword [ebp - 0x6c]
call fcn.00527d3e
pop ecx
mov esi, dword [ebp - 0x64]
inc dword [ebp - 0x68]
cmp dword [ebp - 0x58], 0
je 0x54e105
jmp 0x551a23
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebp - 0x50], eax
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x4c], ecx
imul ecx, ecx, 0x28
mov ebx, dword [ebx + 8]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x48], ebx
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov edi, ecx
mov dword [ebp - 0x6c], ebx
test eax, eax
je 0x54e495
dec eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x54], eax
and dword [ebx + 0x24], 0
push ebx
mov esi, edi
call fcn.00527d81
mov eax, dword [ebp - 0x54]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x50]
add edi, 0x28
add ebx, 0x28
pop ecx
test eax, eax
jne 0x54e465
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x6c], ebx
dec eax
mov dword [ebp - 0x50], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x54], eax
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
mov dword [ebp - 0x6c], esi
mov ebx, 0x1000
push ebx
call fcn.00527d3e
pop ecx
test word [esi + 0x1c], bx
je 0x54e4d7
mov eax, esi
call fcn.0052d254
test eax, eax
jne 0x5512eb
mov eax, dword [ebp - 0x54]
dec dword [ebp - 0x54]
test eax, eax
je 0x54e428
add dword [ebp - 0x6c], 0x28
mov esi, dword [ebp - 0x6c]
add edi, 0x28
jmp 0x54e4b6
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x6c], esi
push 0x1000
jmp 0x54e422
xor edi, edi
push edi
mov eax, esi
call fcn.00532f2a
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, edi
jne case.default.0x54e193
push 1
push esi
call fcn.0053ddec
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, edi
jne case.default.0x54e193
mov eax, dword [esi + 0x54]
mov ecx, dword [ebp - 0x60]
inc eax
inc eax
or eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, ecx
mov dword [esi + 0x14], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edi
cmp dword [ebx + 8], edi
jle 0x54e5a9
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
imul eax, eax, 0x28
add eax, ecx
mov ecx, 0x1000
test word [eax + 0x1c], cx
je 0x54e582
call fcn.0052d254
test eax, eax
jne 0x5512ee
mov eax, dword [ebp - 0x50]
imul eax, eax, 0x28
add eax, dword [ebp - 0x54]
call fcn.00527ba7
mov ecx, dword [ebp - 0x50]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x54]
call fcn.00521d64
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebx + 8]
jl 0x54e55f
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x38], 0
jne 0x5512ee
mov eax, dword [ebp - 0x68]
inc eax
push 0x64
mov dword [esi + 0x58], eax
pop ebx
jmp 0x551a75
mov ecx, dword [ebx + 4]
mov edi, dword [ebx + 8]
imul ecx, ecx, 0x28
mov ebx, dword [ebx + 0xc]
imul edi, edi, 0x28
add ecx, dword [ebp - 0x60]
imul ebx, ebx, 0x28
add edi, dword [ebp - 0x60]
movzx eax, word [ecx + 0x1c]
mov dl, byte [edi + 0x1c]
add ebx, dword [ebp - 0x60]
or dl, al
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x6c], ebx
test dl, 1
je 0x54e603
mov edi, ebx
call fcn.00521345
jmp case.default.0x54e193
test eax, 0x4000
je 0x54e617
mov eax, dword [ebp - 0x70]
call fcn.00527b54
mov ecx, dword [ebp - 0x70]
jmp 0x54e619
xor eax, eax
test eax, eax
jne 0x5512ee
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x54e638
mov eax, edi
call fcn.00527b54
mov ecx, dword [ebp - 0x70]
jmp 0x54e63a
xor eax, eax
test eax, eax
jne 0x5512ee
test byte [ecx + 0x1c], 0x12
jne 0x54e661
movzx eax, byte [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x70]
call fcn.0053296a
pop ecx
test eax, eax
jne 0x5512ee
mov ecx, dword [ebp - 0x70]
test byte [edi + 0x1c], 0x12
jne 0x54e67f
movzx eax, byte [ebp - 0x78]
push eax
mov eax, edi
call fcn.0053296a
pop ecx
test eax, eax
jne 0x5512ee
mov ecx, dword [ebp - 0x70]
mov eax, dword [edi + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x50], edx
mov eax, dword [eax + 0x50]
cdq
cmp dword [ebp - 0x50], edx
jg 0x551a0a
jl 0x54e6a7
cmp dword [ebp - 0x54], eax
ja 0x551a0a
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [ebx + 0x1c], ax
xor eax, eax
cmp ebx, dword [ebp - 0x74]
mov edi, ebx
sete al
push eax
mov eax, dword [ebp - 0x54]
add eax, 2
call fcn.00527a98
pop ecx
test eax, eax
jne 0x5512ee
mov edi, dword [ebp - 0x74]
cmp ebx, edi
je 0x54e6f2
push dword [edi + 0x18]
push dword [edi + 4]
push dword [ebx + 4]
call fcn.0059d730
add esp, 0xc
mov eax, dword [ebp - 0x70]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebx + 4]
add eax, dword [edi + 0x18]
push eax
call fcn.0059d730
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebx + 4]
mov byte [ecx + eax], 0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebx + 4]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
add esp, 0xc
or word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x54]
mov dword [ebx + 0x18], eax
mov al, byte [ebp - 0x78]
mov byte [ebx + 0x1f], al
jmp case.default.0x54e193
mov edi, dword [ebx + 4]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov esi, edi
mov dword [ebp - 0x70], edi
call fcn.00521d8f
mov esi, dword [ebx + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
mov dword [ebp - 0x74], esi
call fcn.00521d8f
mov eax, dword [ebx + 0xc]
movzx ecx, word [edi + 0x1c]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
movzx eax, word [esi + 0x1c]
or eax, ecx
mov dword [ebp - 0x50], eax
test al, 1
jne 0x54e962
mov cl, byte [esi + 0x1c]
mov eax, edi
and cl, byte [eax + 0x1c]
test cl, 4
je 0x54e863
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x4c], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x48], eax
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x44], edi
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x40], esi
mov byte [ebp - 0x54], 1
movzx edx, byte [ebx]
sub edx, 0x56
je 0x54e82b
dec edx
je 0x54e81f
dec edx
je 0x54e813
dec edx
mov edx, ecx
je 0x54e7e5
or edx, eax
je 0x54e962
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x54e7da
xor ecx, ecx
inc ecx
xor eax, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
push eax
push ecx
push esi
push edi
call fcn.0059f0b0
jmp 0x54e80b
or edx, eax
je 0x54e962
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x54e802
test edi, edi
jne 0x54e802
cmp esi, 0x80000000
je 0x54e867
push eax
push ecx
push esi
push edi
call fcn.0059f000
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
jmp 0x54e83b
push eax
push ecx
lea esi, [ebp - 0x44]
call fcn.0051dd8d
jmp 0x54e835
push eax
push ecx
lea eax, [ebp - 0x44]
call fcn.0051dd41
jmp 0x54e835
push eax
push ecx
lea edi, [ebp - 0x44]
call fcn.0051dcbf
pop ecx
pop ecx
test eax, eax
jne 0x54e867
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x14], ecx
mov cx, word [eax + 0x1c]
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp 0x54e428
mov byte [ebp - 0x54], 0
mov ecx, dword [ebp - 0x70]
call fcn.00521202
fstp qword [ebp - 0x3c]
mov ecx, dword [ebp - 0x74]
call fcn.00521202
fst qword [ebp - 0x34]
movzx eax, byte [ebx]
sub eax, 0x56
je 0x54e909
dec eax
je 0x54e904
dec eax
je 0x54e8ff
dec eax
je 0x54e8ee
fld qword [ebp - 0x3c]
call fcn.005a0486
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
call fcn.005a0486
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
je 0x54e962
mov ecx, dword [ebp - 0x4c]
and ecx, dword [ebp - 0x48]
cmp ecx, 0xffffffff
jne 0x54e8cd
and dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 1
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push edx
push eax
call fcn.0059f0b0
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], edx
fild qword [ebp - 0xa8]
jmp 0x54e90c
fldz
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x44
jnp 0x54e960
fdiv qword [ebp - 0x3c]
jmp 0x54e90c
fmul qword [ebp - 0x3c]
jmp 0x54e90c
fsub qword [ebp - 0x3c]
jmp 0x54e90c
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x34]
push ecx
fld qword [ebp - 0x34]
push ecx
fstp qword [esp]
call fcn.0051d1d9
add esp, 8
test eax, eax
jne 0x54e962
mov eax, dword [ebp - 0x6c]
fld qword [ebp - 0x34]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
mov edx, 0xbe08
and cx, dx
or cx, 8
mov word [eax + 0x1c], cx
test byte [ebp - 0x50], 8
jne 0x54e428
cmp byte [ebp - 0x54], 0
jne 0x54e428
mov esi, eax
call fcn.00521241
jmp 0x54e428
fstp st(0)
mov edi, dword [ebp - 0x6c]
call fcn.00521345
jmp 0x54e428
mov ebx, dword [ebx + 4]
test ebx, ebx
je case.default.0x54e193
push 0
push 0
mov esi, ebx
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.00527ca2
pop ecx
jmp 0x54e427
movzx ecx, byte [ebx + 3]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebx + 8]
and dword [ebp - 0x54], 0
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x50], eax
test ecx, ecx
jle 0x54e9fe
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x54]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x50]
mov ecx, 0x1000
test word [eax + 0x1c], cx
je 0x54e9e2
call fcn.0052d254
test eax, eax
jne 0x5512ee
mov ecx, dword [ebp - 0x50]
call fcn.00521d64
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
add eax, 0x28
cmp ecx, dword [ebp - 8]
mov dword [ebp - 0x50], eax
jl 0x54e9be
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 0x10]
jne 0x54ea0d
and dword [ebp - 0x48], 0
jmp 0x54ea12
mov dword [ebp - 0x48], eax
mov eax, dword [eax]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x4c], eax
xor eax, eax
inc eax
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
xor edi, edi
push eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
call fcn.00527d81
mov eax, dword [ebp - 0x28]
and eax, 0xbe01
or eax, 1
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], edi
test byte [eax + 3], 8
pop ecx
je 0x54ea58
mov eax, dword [ebx - 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x84]
mov esi, dword [ebp - 0x5c]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x24], eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x4c]
push dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x4c]
call dword [eax + 0xc]
mov eax, dword [esi + 0x20]
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x24]
add esp, 0xc
mov dword [ebp - 0x80], eax
test edi, edi
je 0x54eaa6
push dword [ebx + 4]
call fcn.00521677
mov eax, dword [ebp - 0x48]
pop ecx
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
cmp byte [esi + 0x38], 0
jne 0x5522c4
cmp dword [ebp - 0x14], 0
je 0x54eada
lea eax, [ebp - 0x44]
push eax
call fcn.00532f96
mov edi, dword [ebp - 0x64]
push eax
push 0x6177c8
push esi
add edi, 0x38
call fcn.005313d1
mov eax, dword [ebp - 0x14]
add esp, 0x10
mov dword [ebp - 0x58], eax
movzx eax, byte [ebp - 0x78]
push eax
lea eax, [ebp - 0x44]
call fcn.0053294a
push dword [ebp - 0x6c]
lea esi, [ebp - 0x44]
call fcn.00527d81
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6c]
call fcn.00521386
mov esi, dword [ebp - 0x64]
test eax, eax
jne 0x551a0a
jmp case.default.0x54e193
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
imul eax, eax, 0x28
mov edi, dword [ebx + 4]
imul ecx, ecx, 0x28
add eax, dword [ebp - 0x60]
imul edi, edi, 0x28
add ecx, dword [ebp - 0x60]
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
mov al, byte [ecx + 0x1c]
or al, byte [edi + 0x1c]
test al, 1
je 0x54eb3c
mov edi, dword [ebp - 0x6c]
jmp 0x54e5f9
call fcn.005211a8
mov ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
call fcn.005211a8
mov edi, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edx
mov al, byte [ebx]
mov byte [ebp - 0x3c], al
cmp al, 0x52
jne 0x54eb6a
and dword [ebp - 0x54], edi
and dword [ebp - 0x50], edx
jmp 0x54ec4f
cmp al, 0x53
jne 0x54eb79
or dword [ebp - 0x54], edi
or dword [ebp - 0x50], edx
jmp 0x54ec4f
mov ecx, edi
or ecx, edx
je 0x54ec4f
xor ebx, ebx
cmp edx, ebx
jg 0x54ebc2
jl 0x54eb8f
cmp edi, ebx
jae 0x54ebb7
mov cl, 0xa9
sub cl, al
cmp edx, 0xffffffff
mov al, cl
mov byte [ebp - 0x3c], al
jl 0x54ebac
jg 0x54eba4
cmp edi, 0xffffffc0
jbe 0x54ebac
neg edi
adc edx, ebx
neg edx
jmp 0x54ebb1
push 0x40
pop edi
xor edx, edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x44], edi
cmp edx, ebx
jl 0x54ebe2
jg 0x54ebc2
cmp edi, 0x40
jb 0x54ebe2
cmp dword [ebp - 0x50], ebx
jg 0x54ebd7
jl 0x54ebce
cmp dword [ebp - 0x54], ebx
jae 0x54ebd7
cmp al, 0x54
je 0x54ebd7
or eax, 0xffffffff
jmp 0x54ebd9
xor eax, eax
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
jmp 0x54ec4f
push 8
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0059d730
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
add esp, 0xc
cmp byte [ebp - 0x3c], 0x54
jne 0x54ec10
call fcn.005aa750
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
jmp 0x54ec3d
call fcn.005aa890
cmp dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
jg 0x54ec3d
jl 0x54ec27
cmp dword [ebp - 0x54], ebx
jae 0x54ec3d
push 0x40
pop ecx
sub ecx, dword [ebp - 0x44]
or edx, 0xffffffff
mov eax, edx
call fcn.005aa750
or dword [ebp - 0x4c], eax
or dword [ebp - 0x48], edx
push 8
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0059d730
add esp, 0xc
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x14], ecx
mov cx, word [eax + 0x1c]
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp case.default.0x54e193
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.00521297
mov eax, dword [ebx + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x54e428
mov edi, dword [ebx + 4]
push dword [ebp - 0x78]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
push 0x63
mov eax, edi
call fcn.00533338
movzx eax, word [edi + 0x1c]
pop ecx
pop ecx
test al, 4
jne 0x54ecca
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x54e1ae
mov dword [ebp - 0x58], 0x14
jmp 0x552371
and eax, 0xbe04
or eax, 4
mov word [edi + 0x1c], ax
jmp case.default.0x54e193
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [ebx + 0x1c], 4
je case.default.0x54e193
mov esi, ebx
call fcn.005212bb
jmp 0x54e428
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
movzx eax, word [ebx + 0x1c]
test al, 1
jne case.default.0x54e193
push dword [ebp - 0x78]
mov ecx, eax
shr ecx, 3
and ecx, 2
or ecx, eax
push 0x61
mov eax, ebx
mov word [ebx + 0x1c], cx
call fcn.00533338
mov eax, 0x4000
pop ecx
pop ecx
test word [ebx + 0x1c], ax
je 0x54ed42
mov eax, ebx
call fcn.00527b54
mov dword [ebp - 0x58], eax
jmp 0x54ed46
and dword [ebp - 0x58], 0
mov eax, 0xbfe3
and word [ebx + 0x1c], ax
jmp case.default.0x54e193
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
movzx eax, word [ebx + 0x1c]
test al, 1
jne case.default.0x54e193
test al, 0x10
jne 0x54ed8d
push dword [ebp - 0x78]
mov eax, ebx
push 0x61
call fcn.00533338
mov ax, word [ebx + 0x1c]
pop ecx
pop ecx
mov ecx, 0xbe10
and ax, cx
or ax, 0x10
jmp 0x54ed92
and eax, 0xfe10
mov word [ebx + 0x1c], ax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
call fcn.005212dc
jmp case.default.0x54e193
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [ebx + 0x1c], 1
jne case.default.0x54e193
mov esi, ebx
call fcn.00521297
jmp 0x54e428
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [ebx + 0x1c], 1
jne case.default.0x54e193
jmp 0x54ecee
mov edi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
imul ecx, ecx, 0x28
mov ax, word [edi + 0x1c]
add ecx, dword [ebp - 0x60]
mov word [ebp - 0x4e], ax
mov ax, word [ecx + 0x1c]
mov dl, al
or dl, byte [ebp - 0x4e]
mov word [ebp - 0x4c], ax
xor eax, eax
inc eax
mov dword [ebp - 0x74], ecx
test al, dl
je 0x54ee7a
mov dl, byte [ebx + 3]
test dl, dl
jns 0x54ee43
test byte [ebp - 0x4e], al
je 0x54eeed
test byte [ebp - 0x4c], al
je 0x54eeed
test dword [ebp - 0x4c], 0x100
jne 0x54eeed
xor eax, eax
jmp 0x54eeed
test dl, 0x10
je 0x54ee6c
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov edx, 0xbe01
mov cx, word [ebx + 0x1c]
and cx, dx
or cx, ax
mov dword [ebp - 0x6c], ebx
mov word [ebx + 0x1c], cx
jmp case.default.0x54e193
test dl, 8
je case.default.0x54e193
jmp 0x54e1ab
mov al, byte [ebx + 3]
and al, 0x67
mov byte [ebp - 0x50], al
je 0x54eeb2
push dword [ebp - 0x78]
mov eax, edi
push dword [ebp - 0x50]
call fcn.00533338
push dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
push dword [ebp - 0x50]
call fcn.00533338
mov eax, dword [ebp - 0x5c]
add esp, 0x10
cmp byte [eax + 0x38], 0
jne 0x5512ee
mov ecx, dword [ebp - 0x74]
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x54eec7
mov eax, edi
call fcn.00527b54
mov ecx, dword [ebp - 0x74]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x54eeda
mov eax, dword [ebp - 0x74]
call fcn.00527b54
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x74]
push edi
call fcn.0053755b
mov ebx, dword [ebp - 0x70]
pop ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x54], eax
movzx edx, byte [ebx]
sub edx, 0x4b
je 0x54ef31
dec edx
je 0x54ef28
dec edx
je 0x54ef1f
dec edx
je 0x54ef16
dec edx
je 0x54ef0d
xor edx, edx
test eax, eax
setge dl
jmp 0x54ef38
xor edx, edx
test eax, eax
setl dl
jmp 0x54ef38
xor edx, edx
test eax, eax
setle dl
jmp 0x54ef38
xor edx, edx
test eax, eax
setg dl
jmp 0x54ef38
xor edx, edx
test eax, eax
sete dl
jmp 0x54ef38
xor edx, edx
test eax, eax
setne dl
mov dword [ebp - 0x54], edx
test byte [ebx + 3], 0x10
je 0x54ef6d
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov edx, 0xbe04
mov ax, word [ebx + 0x1c]
and ax, dx
or ax, 4
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x54]
cdq
mov dword [ebp - 0x6c], ebx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x54ef7a
cmp dword [ebp - 0x54], 0
je 0x54ef7a
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x68], ebx
mov dx, word [edi + 0x1c]
xor dx, word [ebp - 0x4e]
mov eax, 0x1ff
mov ebx, eax
and dx, bx
xor word [edi + 0x1c], dx
mov dx, word [ecx + 0x1c]
xor dx, word [ebp - 0x4c]
and dx, ax
xor word [ecx + 0x1c], dx
jmp case.default.0x54e193
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x94], eax
jmp case.default.0x54e193
test byte [ebx + 3], 1
jne 0x54efbf
and dword [ebp - 0x94], 0
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x54], edx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x50], eax
test edx, edx
jle 0x54f04b
mov edi, dword [ebp - 0x94]
jmp 0x54efeb
mov ecx, dword [ebp - 0x44]
test edi, edi
je 0x54eff4
mov edx, dword [edi + eax*4]
jmp 0x54eff6
mov edx, eax
mov dword [ebp - 0x40], edx
mov ebx, dword [ecx + eax*4 + 0xc]
mov dword [ebp - 0x3c], ebx
mov ecx, dword [ecx + 8]
movzx eax, byte [ecx + eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x48]
add eax, edx
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x4c]
add eax, edx
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
call fcn.0053755b
pop ecx
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x54f03f
mov eax, dword [ebp - 0x50]
inc eax
cmp eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
jl 0x54efe8
jmp 0x54f04b
cmp dword [ebp - 0x38], 0
je 0x54f04b
neg dword [ebp - 0x8c]
and dword [ebp - 0x94], 0
jmp case.default.0x54e193
cmp dword [ebp - 0x8c], 0
jge 0x54f068
mov ebx, dword [ebx + 4]
jmp 0x54e1ae
je 0x54e1ab
mov ebx, dword [ebx + 0xc]
jmp 0x54e1ae
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
xor edi, edi
inc edi
test byte [ecx + 0x1c], 1
je 0x54f08d
push 2
pop eax
jmp 0x54f09c
call fcn.005211a8
or eax, edx
je 0x54f09a
mov eax, edi
jmp 0x54f09c
xor eax, eax
mov dword [ebp - 0x54], eax
mov ecx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
test byte [ecx + 0x1c], 1
je 0x54f0b7
mov dword [ebp - 0x50], 2
jmp 0x54f0cc
call fcn.005211a8
or eax, edx
mov eax, dword [ebp - 0x54]
je 0x54f0c8
mov dword [ebp - 0x50], edi
jmp 0x54f0cc
and dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x50]
imul eax, eax, 3
cmp byte [ebx], 0x45
jne 0x54f0e1
movzx eax, byte [eax + ecx + 0x61472c]
jmp 0x54f0e9
movzx eax, byte [eax + ecx + 0x614760]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], ebx
cmp eax, 2
jne 0x54f111
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, di
jmp 0x54ed92
cdq
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe04
and ax, cx
mov dword [ebx + 0x14], edx
or ax, 4
jmp 0x54ed92
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0x6c], ebx
jne 0x54e5f7
call fcn.005211a8
or eax, edx
jne 0x54f158
inc eax
jmp 0x54f15a
xor eax, eax
cdq
push edx
push eax
mov esi, ebx
jmp 0x54e986
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [ecx + 0x1c], 1
mov dword [ebp - 0x6c], ebx
jne 0x54e5f7
call fcn.005211a8
not eax
not edx
jmp 0x54f15b
mov eax, dword [esi + 0xc0]
mov ecx, dword [ebx + 4]
add eax, ecx
cmp byte [eax], 0
jne 0x54e1ab
mov byte [eax], 1
jmp case.default.0x54e193
mov ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
test byte [ecx + 0x1c], 1
je 0x54f1be
mov eax, dword [ebx + 0xc]
jmp 0x54f1ea
call fcn.00521202
fcomp qword [0x605e40]
fnstsw ax
test ah, 0x44
jnp 0x54f1d9
mov dword [ebp - 0x54], 1
jmp 0x54f1dd
and dword [ebp - 0x54], 0
cmp byte [ebx], 0x1c
jne 0x54f1ed
xor eax, eax
cmp dword [ebp - 0x54], eax
sete al
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jmp 0x54ee6f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jmp 0x54ee6f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
test byte [eax + ecx + 0x1c], 1
jne case.default.0x54e193
jmp 0x54e1ab
mov eax, dword [ebx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
xor edi, edi
push 0x28
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x14]
push edi
push eax
mov dword [ebp - 0x3c], edi
call fcn.0059cb30
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x44]
imul edx, edx, 0x28
add edx, dword [ebp - 0x60]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x38], edi
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax]
add esp, 0xc
mov dword [ebp - 0x34], ecx
cmp ecx, edi
je 0x54f2d0
push eax
call fcn.00548952
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, edi
jne 0x552371
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x1c], 0
je 0x54f28c
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x54], edi
jmp 0x54f34c
mov ecx, dword [eax + 0x50]
cmp ecx, dword [esi + 0x54]
jne 0x54f2a8
mov ecx, dword [eax + 0x54]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + 0x60]
mov dword [ebp - 0x38], ecx
jmp 0x54f345
cmp byte [eax + 0x1f], 0
je 0x54f2c1
mov eax, dword [ebp - 0x34]
lea edi, [ebp - 0x4c]
call fcn.00520e41
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x54], eax
jmp 0x54f33a
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x34]
call fcn.00520e67
pop ecx
jmp 0x54f33a
mov ecx, dword [eax + 0x10]
cmp ecx, edi
jle 0x54f342
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp + 0x30], ecx
cmp byte [eax + 0x22], 0
je 0x54f31e
mov edi, dword [ebp - 0x40]
imul edi, edi, 0x28
mov ebx, 0x1000
push ebx
add edi, ecx
mov esi, edx
call fcn.00527d3e
mov eax, dword [ebp - 0x18]
pop ecx
test word [eax + 0x1c], bx
je 0x54e428
call fcn.0052d254
mov esi, dword [ebp - 0x64]
test eax, eax
jne 0x5512ee
jmp case.default.0x54e193
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x54], edx
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x38], ecx
test byte [ebx + 3], 0x20
je 0x54f334
xor ecx, ecx
jmp 0x54f337
mov ecx, dword [esi + 0x54]
mov dword [eax + 0x50], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
jmp 0x54f345
mov dword [ebp - 0x54], edi
mov ecx, dword [ebp - 0x54]
test ecx, ecx
jne 0x54f365
mov ax, word [edx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edx + 0x1c], ax
jmp case.default.0x54e193
mov edi, dword [ebp - 0x5c]
cmp ecx, dword [edi + 0x50]
ja 0x551a0a
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x58]
mov dword [ebp - 0x30], ecx
mov edi, dword [eax + 0x50]
cmp edi, dword [esi + 0x54]
jne 0x54f390
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x2c], eax
jmp 0x54f547
mov edx, dword [ebp - 0x28]
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x2c], ecx
xor edi, edi
mov dword [ebp + 0x28], edi
mov dword [eax + 0x5c], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x54], ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x54f3bf
mov dword [ebp - 0x1c], eax
jmp 0x54f3f8
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x1f], 0
lea eax, [ebp + 0x28]
push eax
mov eax, dword [ebp - 0x34]
je 0x54f3d6
call fcn.00520ed4
jmp 0x54f3db
call fcn.00520eed
pop ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], eax
cmp ecx, dword [ebp + 0x28]
ja 0x54f3f2
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
mov dword [ecx + 0x60], eax
jmp 0x54f3f8
mov eax, dword [ebp - 0x3c]
mov dword [eax + 0x60], edi
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x54f40c
movzx eax, al
mov dword [ebp + 0x1c], eax
xor eax, eax
inc eax
jmp 0x54f419
lea edi, [ebp + 0x1c]
call fcn.0051dbee
movzx eax, al
xor edi, edi
cmp dword [ebp + 0x1c], 0x18003
movzx eax, al
mov dword [ebp + 0x24], eax
jbe 0x54f432
push 0x1038d
jmp 0x54f6a2
mov ecx, dword [ebp - 0x28]
imul ecx, ecx, 5
add ecx, 3
cmp ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x24], ecx
jle 0x54f449
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x38], edi
jne 0x54f48e
cmp dword [ebp + 0x28], ecx
jge 0x54f48e
xor eax, eax
mov word [ebp + 8], ax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], edi
movzx eax, byte [eax + 0x1f]
push eax
push edi
push dword [ebp - 0x34]
lea eax, [ebp - 0x14]
mov esi, ecx
call fcn.005484d8
add esp, 0xc
mov dword [ebp - 0x58], eax
cmp eax, edi
jne 0x54e428
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x1c], eax
jmp 0x54f491
mov eax, dword [ebp - 0x1c]
add ecx, eax
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x24]
add ecx, eax
xor eax, eax
cmp dword [ebp - 0x28], edi
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x20], eax
jle 0x54f50a
mov ecx, dword [ebp + 0x18]
cmp dword [ebp + 0x14], ecx
mov ecx, dword [ebp - 0x2c]
jae 0x54f58f
mov edx, dword [ebp + 0x1c]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp + 0x14]
mov al, byte [ecx]
cmp al, 0x80
jae 0x54f4d2
movzx eax, al
inc ecx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x14], ecx
jmp 0x54f4e0
lea edi, [ebp + 0x2c]
call fcn.0051dbee
movzx eax, al
add dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 0x2c]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp + 0x2c]
call fcn.005217a1
add dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
cmp dword [ebp + 0x1c], eax
jae 0x54f593
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00527c4a
xor eax, eax
pop ecx
mov ecx, dword [ebp + 0x14]
inc eax
mov word [ebp + 8], ax
cmp ecx, dword [ebp + 0x18]
ja 0x54f69d
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0x54]
ja 0x54f69d
cmp ecx, dword [ebp + 0x18]
jne 0x54f541
cmp eax, dword [ebp - 0x54]
jne 0x54f69d
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x2c]
shl eax, 2
cmp dword [edi + eax], 0
je 0x54f634
cmp dword [ebp - 0x38], 0
je 0x54f5a8
mov eax, 0x2460
test word [edx + 0x1c], ax
je 0x54f578
mov eax, edx
call fcn.00527bf0
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
shl eax, 2
push dword [ecx + eax]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + eax]
add ecx, dword [ebp - 0x38]
jmp 0x54f621
and dword [ecx + eax*4], 0
mov eax, dword [ebp - 0x20]
inc eax
cmp eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
jl 0x54f4a8
jmp 0x54f50a
mov ecx, dword [ecx + eax]
mov dword [ebp + 0x2c], ecx
mov bl, byte [ebx + 3]
test bl, 0xc0
je 0x54f5d0
cmp ecx, 0xc
jb 0x54f5c0
test cl, 1
je 0x54f5c4
test bl, bl
jns 0x54f5d0
cmp ecx, 0xc
sbb edi, edi
lea eax, [ebp - 0x4c]
and edi, eax
jmp 0x54f61b
mov eax, ecx
call fcn.005217a1
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x14]
push eax
mov esi, edx
call fcn.00527d81
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax + 0x1f]
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + ecx*4]
lea eax, [ebp - 0x14]
push dword [ebp - 0x34]
call fcn.005484d8
add esp, 0x10
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x54e428
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x18]
push ecx
mov dword [ebp - 0x1c], edi
mov ecx, edi
mov esi, edx
call fcn.0052185f
mov eax, dword [ebp - 0x18]
pop ecx
mov cl, byte [ebp - 0x78]
mov byte [eax + 0x1f], cl
jmp 0x54f64a
cmp byte [ebx + 1], 0xf8
jne 0x54f64f
mov edi, dword [ebx + 0x10]
push 0x800
mov esi, edx
call fcn.00527d3e
pop ecx
mov esi, dword [ebp - 0x64]
jmp 0x54f663
mov ax, word [edx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edx + 0x1c], ax
cmp dword [ebp + 0x10], 0
je 0x54f693
mov eax, dword [ebp - 0x18]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x18]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x18]
call fcn.0052d254
jmp 0x54f6a8
push 0x103dd
call fcn.00530ec1
pop ecx
mov dword [ebp - 0x58], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
jmp 0x54f6eb
inc dword [ebp - 0x54]
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x54f6d6
mov eax, ebx
call fcn.00527b54
push dword [ebp - 0x78]
mov eax, ebx
push dword [ebp - 0x50]
call fcn.00533338
mov eax, dword [ebp - 0x54]
pop ecx
pop ecx
add ebx, 0x28
mov al, byte [eax]
mov byte [ebp - 0x50], al
test al, al
jne 0x54f6c1
inc dword [ebp - 0x54]
jmp case.default.0x54e193
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x20], eax
imul eax, eax, 0x28
mov ecx, dword [ebx + 0x10]
add eax, dword [ebp - 0x60]
movzx edx, byte [esi + 0x61]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x20], eax
imul eax, eax, 0x28
lea eax, [eax + ecx - 0x28]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], edx
mov edi, dword [ebx + 0xc]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov ebx, ecx
mov dword [ebp - 0x6c], edi
cmp ecx, eax
jmp 0x54f7df
cmp dword [ebp - 0x1c], 0
je 0x54f775
push dword [ebp - 0x78]
mov eax, ebx
sub eax, dword [ebp - 0x28]
push 0x28
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
push eax
mov eax, ebx
call fcn.00533338
mov ebx, dword [ebp - 0x50]
pop ecx
pop ecx
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x54f790
cmp dword [ebx + 0x18], 0
jle 0x54f790
mov eax, ebx
call fcn.00527b54
mov ebx, dword [ebp - 0x50]
push dword [ebp - 0x18]
mov ecx, ebx
call fcn.005216b5
mov dword [ebp - 0x2c], eax
call fcn.005217a1
mov dword [ebp - 0x10], eax
cdq
add dword [ebp - 0x4c], eax
push 0
push dword [ebp - 0x2c]
adc dword [ebp - 0x48], edx
call fcn.0051dc50
add dword [ebp - 0x44], eax
mov eax, 0x4000
add esp, 0xc
test word [ebx + 0x1c], ax
je 0x54f7cf
mov eax, dword [ebx + 0x10]
add dword [ebp - 0x34], eax
jmp 0x54f7d9
cmp dword [ebp - 0x10], 0
je 0x54f7d9
and dword [ebp - 0x34], 0
add ebx, 0x28
cmp ebx, dword [ebp - 0x24]
mov dword [ebp - 0x50], ebx
jbe 0x54f74d
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
call fcn.0051dc50
mov ebx, eax
add dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
mov dword [ebp - 0x30], ebx
call fcn.0051dc50
add esp, 0x10
cmp ebx, eax
jge 0x54f810
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
cdq
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x44]
mov ecx, edx
cdq
mov ebx, eax
mov eax, dword [ebp - 0x74]
sub ebx, eax
mov eax, ecx
mov ecx, edx
sbb ecx, eax
add ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x5c]
adc ecx, dword [ebp - 0x48]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x551a0a
jl 0x54f84f
cmp ebx, eax
ja 0x551a0a
push 0
mov eax, ebx
call fcn.00527a98
pop ecx
test eax, eax
jne 0x5512ee
mov eax, dword [ebp - 0x44]
mov ecx, dword [edi + 4]
mov ebx, 0x80
mov dword [ebp - 0x54], ecx
cmp eax, ebx
jae 0x54f87a
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x54f87f
call fcn.0051da31
movzx eax, al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
jmp 0x54f8c2
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
call fcn.005216b5
mov edx, dword [ebp - 0x14]
pop ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jae 0x54f8ae
mov byte [edx + ecx], al
xor eax, eax
inc eax
jmp 0x54f8b5
add ecx, edx
call fcn.0051da31
movzx eax, al
add dword [ebp - 0x14], eax
add dword [ebp - 0x50], 0x28
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x24]
jbe 0x54f88d
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
jmp 0x54f8f5
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
push dword [ebp - 0x18]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x54]
lea ebx, [eax + ecx]
mov eax, dword [ebp - 0x50]
call fcn.005217b4
add dword [ebp - 0x14], eax
add dword [ebp - 0x50], 0x28
mov eax, dword [ebp - 0x50]
pop ecx
pop ecx
cmp eax, dword [ebp - 0x24]
jbe 0x54f8cf
mov eax, dword [ebp - 0x3c]
and dword [edi + 0x20], 0
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x54f920
mov dword [edi + 0x10], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x54f94a
lea ecx, [ebp - 0x54]
push ecx
call fcn.00546be2
pop ecx
mov dword [ebp - 0x58], eax
jmp 0x54f952
and dword [ebp - 0x54], 0
and dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x6c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x50]
jmp 0x54e2b8
mov eax, dword [ebx + 4]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x50], ecx
test eax, eax
jne 0x54fa39
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x88], 0
jle 0x54f98e
push str.cannot_open_savepoint___SQL_statements_in_progress
push eax
jmp 0x54fa9d
mov ecx, dword [ebp - 0x50]
call fcn.0051d202
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 0x1e4]
add eax, dword [edi + 0x1e0]
push eax
push 0
call fcn.00523e99
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x4c]
add eax, 0x19
push eax
mov esi, edi
call fcn.0052578d
pop ecx
mov dword [ebp - 0x48], eax
test eax, eax
je 0x54e428
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0x4c]
inc eax
push eax
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.0059d730
mov eax, esi
add esp, 0xc
cmp byte [eax + 0x36], 0
je 0x54fa03
mov byte [eax + 0x36], 0
mov byte [eax + 0x3d], 1
jmp 0x54fa09
inc dword [eax + 0x1e0]
mov esi, dword [ebp - 0x48]
lea ecx, [eax + 0x1d8]
mov edx, dword [ecx]
mov dword [esi + 0x10], edx
mov edx, dword [ebp - 0x48]
mov dword [ecx], edx
mov ecx, dword [eax + 0x1e8]
mov edx, dword [ebp - 0x48]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0x1ec]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 0xc], eax
jmp 0x54e428
and dword [ebp - 0x3c], 0
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebx + 0x1d8]
mov dword [ebp - 0x44], edi
test edi, edi
je 0x54fa70
push dword [ebp - 0x50]
push dword [edi]
call fcn.0051d277
pop ecx
pop ecx
test eax, eax
je 0x54fa6a
inc dword [ebp - 0x3c]
mov edi, dword [edi + 0x10]
mov dword [ebp - 0x44], edi
test edi, edi
jne 0x54fa4d
xor eax, eax
cmp edi, eax
jne 0x54fa89
push dword [ebp - 0x50]
lea edi, [esi + 0x38]
push str.no_such_savepoint:__s
push ebx
call fcn.005313d1
add esp, 0xc
jmp 0x54fcb2
cmp dword [ebx + 0x88], eax
jle 0x54fab3
cmp dword [ebp - 0x54], 1
jne 0x54fab3
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
lea edi, [esi + 0x38]
call fcn.005313d1
pop ecx
pop ecx
mov dword [ebp - 0x58], 5
jmp case.default.0x54e193
cmp dword [edi + 0x10], eax
jne 0x54fb08
cmp byte [ebx + 0x3d], 0
je 0x54fb08
xor eax, eax
inc eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x54], eax
jne 0x54fb0b
push eax
mov eax, esi
call fcn.00532f2a
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x551a75
mov edi, dword [ebp - 0x5c]
mov eax, esi
mov byte [edi + 0x36], 1
call fcn.00549a80
push 5
pop ebx
cmp eax, ebx
je 0x5522d3
mov eax, edi
mov byte [eax + 0x3d], 0
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x58], eax
mov ebx, edi
jmp 0x54fbd3
mov dword [ebp - 0x74], eax
mov ecx, dword [ebx + 0x1e0]
sub ecx, dword [ebp - 0x3c]
dec ecx
cmp dword [ebp - 0x54], 2
mov dword [ebp - 0x3c], ecx
jne 0x54fb4f
and dword [ebp - 0x38], 0
cmp dword [ebx + 0x14], 0
jle 0x54fb4f
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebx + 0x10]
shl eax, 4
push 4
push dword [eax + ecx + 4]
call fcn.00541c92
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebx + 0x14]
pop ecx
pop ecx
jl 0x54fb28
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebx + 0x14], eax
jle 0x54fb91
jmp 0x54fb5e
mov ecx, dword [ebp - 0x3c]
push ecx
push dword [ebp - 0x54]
mov ecx, ebx
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.0053dd88
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x38]
inc eax
mov ecx, ebx
mov dword [ebp - 0x38], eax
cmp eax, dword [ecx + 0x14]
jl 0x54fb5b
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x54], 2
jne 0x54fbd6
test byte [ebx + 0x18], 2
je 0x54fbd6
mov eax, ebx
call fcn.00521ae4
mov eax, ebx
call fcn.00533ca4
or dword [ebx + 0x18], 2
jmp 0x54fbd3
mov eax, dword [ebx + 0x1d8]
mov dword [ebp - 0x40], eax
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1d8], eax
mov edx, dword [ebp - 0x40]
mov ecx, ebx
call fcn.0051d025
dec dword [ebx + 0x1e0]
mov edi, dword [ebp - 0x44]
cmp dword [ebx + 0x1d8], edi
jne 0x54fbb1
cmp dword [ebp - 0x54], 1
jne 0x54fc09
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1d8], eax
mov edx, dword [ebp - 0x44]
mov ecx, ebx
call fcn.0051d025
cmp dword [ebp - 0x74], 0
jne case.default.0x54e193
dec dword [ebx + 0x1e0]
jmp 0x54fc25
cmp dword [ebp - 0x74], 0
mov eax, dword [edi + 8]
mov dword [ebx + 0x1e8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1ec], eax
jne case.default.0x54e193
push dword [ebp - 0x3c]
mov edi, ebx
push dword [ebp - 0x54]
call fcn.00523e99
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x50], ebx
test eax, eax
je 0x54fc7b
cmp byte [edi + 0x36], 0
jne 0x54fc7b
mov dword [ebp - 0x4c], 1
test ebx, ebx
jne 0x54fc7f
cmp dword [edi + 0x88], ebx
jle 0x54fc7f
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
jmp 0x54fa9d
and dword [ebp - 0x4c], 0
movzx ecx, byte [edi + 0x36]
cmp eax, ecx
jne 0x5522e5
test eax, eax
jne 0x54fc96
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x54fca4
mov eax, str.cannot_rollback___no_transaction_is_active
test ebx, ebx
jne 0x54fca4
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push dword [ebp - 0x5c]
lea edi, [esi + 0x38]
call fcn.005313d1
pop ecx
pop ecx
mov dword [ebp - 0x58], 1
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x5c]
mov ecx, dword [edi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x54], eax
test eax, eax
je case.default.0x54e193
push dword [ebx + 8]
push eax
call fcn.00545242
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
push 5
pop eax
cmp dword [ebp - 0x58], eax
je 0x552350
xor eax, eax
cmp dword [ebp - 0x58], eax
jne 0x552371
cmp dword [ebx + 8], eax
je case.default.0x54e193
test byte [esi + 0x64], 0x80
je case.default.0x54e193
cmp byte [edi + 0x36], al
je 0x54fd23
cmp dword [edi + 0x84], 1
jle case.default.0x54e193
cmp dword [esi + 0x74], eax
jne 0x54fd3d
mov ecx, dword [edi + 0x1e0]
lea eax, [edi + 0x1e4]
inc dword [eax]
mov eax, dword [eax]
add ecx, eax
mov dword [esi + 0x74], ecx
mov eax, dword [esi + 0x74]
dec eax
push eax
push 0
call fcn.00523e99
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x54fd61
push dword [esi + 0x74]
mov eax, dword [ebp - 0x54]
call fcn.00527a10
pop ecx
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 0x1e8]
mov dword [esi + 0x98], eax
mov eax, dword [edi + 0x1ec]
mov dword [esi + 0x9c], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov dword [ebp - 0x50], eax
mov ebx, dword [ebx + 0xc]
lea ecx, [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push ebx
call fcn.00520fad
mov eax, dword [ebp - 0x54]
pop ecx
pop ecx
jmp 0x54e29b
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x54], eax
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.00521297
push dword [esi + 0x10]
mov eax, dword [ebp - 0x54]
push dword [ebx + 8]
mov ebx, dword [eax + 4]
call fcn.00537339
pop ecx
pop ecx
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x58], eax
mov eax, dword [ecx + 8]
cmp eax, 1
jne 0x54fdfd
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov eax, dword [ebp - 0x5c]
or dword [eax + 0x18], 2
jmp 0x54fe0e
cmp eax, 2
jne 0x54fe0e
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0xc]
mov dl, byte [esi + 0x10]
mov byte [eax + 0x4c], dl
cmp dword [ecx + 4], 1
jne 0x54e428
mov eax, dword [ebp - 0x5c]
call fcn.00521ae4
mov eax, dword [ebp - 0x64]
and dword [eax + 0x64], 0xffffffdf
mov esi, eax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x5c]
mov ecx, dword [edi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x54fe64
lea ecx, [ebp - 0x54]
push ecx
push 1
call fcn.00520fad
mov eax, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax + 4]
jmp 0x54fe6a
and dword [ebp - 0x54], 0
xor eax, eax
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
cmp ecx, dword [ebx + 8]
jne 0x54fe7e
cmp eax, dword [ebx + 0xc]
je case.default.0x54e193
mov edx, dword [esi + 0x38]
mov ecx, edi
call fcn.0051d025
push str.database_schema_has_changed
mov edx, edi
call fcn.0052589c
mov dword [esi + 0x38], eax
mov ebx, dword [ebx + 4]
mov eax, ebx
shl eax, 4
pop ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x54]
je 0x54feba
push ebx
mov esi, edi
call fcn.00533c7c
mov esi, dword [ebp - 0x64]
pop ecx
or dword [esi + 0x64], 0x20
mov dword [ebp - 0x58], 0x11
jmp case.default.0x54e193
test byte [esi + 0x64], 0x20
je 0x54fedc
mov dword [ebp - 0x58], 4
jmp case.default.0x54e193
mov edx, dword [ebp - 0x5c]
xor edi, edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x48], eax
shl eax, 4
add eax, dword [edx + 0x10]
mov dword [ebp - 0x38], eax
mov edx, dword [eax + 4]
mov dword [ebp - 0x40], edx
cmp byte [ebx], 0x28
jne 0x54ff1e
mov dword [ebp - 0x44], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x61]
jae 0x54ff22
mov byte [esi + 0x61], al
jmp 0x54ff22
and dword [ebp - 0x44], 0
test byte [ebx + 3], 2
je 0x54ff4a
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov esi, ecx
call fcn.00521297
mov esi, dword [esi + 0x10]
cmp esi, 2
mov dword [ebp - 0x4c], esi
jl 0x552360
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x64]
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x54ff6f
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi]
mov dword [ebp - 0x50], eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x4d]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0x50]
movzx edi, word [eax + 6]
inc edi
jmp 0x54ff76
cmp al, 0xf2
jne 0x54ff79
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x54], edi
mov edx, dword [ebx + 4]
push 1
push dword [ebp - 0x48]
mov eax, esi
push edi
call fcn.00548b49
add esp, 0xc
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x5512ee
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0x3c]
mov byte [eax + 0x20], 1
mov eax, dword [ebp - 0x3c]
push dword [eax]
mov ebx, dword [ebp - 0x44]
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
push dword [ebp - 0x4c]
call fcn.00520dad
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x3c]
mov dword [eax + 8], ecx
movzx eax, byte [edx + 3]
and eax, 1
push eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call fcn.0052107c
mov ecx, dword [ebp - 0x3c]
add esp, 0x10
cmp byte [edx + 1], 0xfa
setne al
mov byte [ecx + 0x1e], al
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x1e], 0
sete cl
mov byte [eax + 0x1f], cl
jmp case.default.0x54e193
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov eax, esi
call fcn.00548b49
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5512ee
mov edx, dword [ebp - 0x5c]
mov byte [eax + 0x1c], 1
movzx eax, byte [ebx + 3]
mov ecx, dword [ebp - 0x54]
push 0x41e
or eax, 5
push eax
push 0
push dword [edx]
xor edi, edi
add ecx, 4
inc edi
call fcn.0054797e
add esp, 0x10
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x5500fb
mov eax, dword [ebp - 0x54]
push edi
push dword [eax + 4]
call fcn.00545242
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x5500fb
cmp dword [ebx + 0x10], eax
je 0x5500d9
movzx eax, byte [ebx + 3]
or eax, 2
push eax
lea eax, [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
call fcn.005431c5
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x5500d0
mov eax, dword [ebp - 0x54]
push dword [eax]
mov eax, dword [eax + 4]
push dword [ebx + 0x10]
mov ebx, edi
push dword [ebp - 0x9c]
call fcn.00520dad
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ecx + 8]
mov al, byte [eax + 0x4d]
add esp, 0xc
mov byte [ecx + 4], al
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1e], 0
jmp 0x5500fb
mov eax, dword [ebp - 0x54]
push dword [eax]
mov eax, dword [eax + 4]
push 0
push edi
mov ebx, edi
call fcn.00520dad
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
add esp, 0xc
mov byte [eax + 0x1e], 1
cmp byte [ebx + 3], 8
mov ecx, dword [ebp - 0x54]
setne al
mov byte [ecx + 0x20], al
mov eax, dword [ebp - 0x54]
jmp 0x54ffec
mov edx, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
mov eax, esi
call fcn.00548b49
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5512ee
mov ecx, dword [ebx + 0x10]
push dword [ebp - 0x5c]
mov dword [eax + 8], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x54]
mov al, byte [eax + 0x4d]
mov ecx, dword [ecx + 8]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x21], 1
mov eax, dword [ebp - 0x54]
call fcn.0052d6a8
jmp 0x54f6a7
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov eax, esi
call fcn.00548b49
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5512ee
mov byte [eax + 0x1c], 1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1f], 0
mov al, byte [ebx + 3]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 0x22], al
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
call fcn.00548903
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x44]
and dword [ecx + eax*4], 0
jmp 0x54e428
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
xor edi, edi
mov dword [ebp - 0x4c], eax
cmp dword [eax], edi
je 0x54e1ab
movzx ecx, byte [ebx]
mov dword [ebp - 0x50], ecx
mov byte [eax + 0x1c], 0
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x1e], 0
je 0x550347
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.00521d8f
mov ecx, esi
call fcn.005211a8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], edx
mov byte [eax + 0x19], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x5502fa
test al, 8
jne 0x550233
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x68], ebx
jmp 0x54e428
cmp dword [ebp - 0x24], edi
jne 0x5502c3
mov eax, SysReAllocStringLen
cmp dword [ebp - 0x20], eax
jne 0x5502c3
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], edi
fild qword [ebp - 0xb0]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x55026e
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x5502c3
fldz
mov dword [ebp - 0x54], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x550296
cmp dword [ebp - 0x50], 0x30
jl 0x550227
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax]
lea edi, [ebp - 0x54]
call fcn.00545ab3
jmp 0x5502a9
cmp dword [ebp - 0x50], 0x2f
jg 0x550227
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax]
lea edi, [ebp - 0x54]
call fcn.00545ad4
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x55236e
cmp dword [ebp - 0x54], 0
je 0x54e428
jmp 0x550227
cmp dword [ebp - 0x50], 0x2e
je 0x5502e6
cmp dword [ebp - 0x50], 0x30
je 0x5502e6
fild qword [ebp - 0x24]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x5502fa
add dword [ebp - 0x24], 0xffffffff
adc dword [ebp - 0x20], 0xffffffff
jmp 0x5502fa
fild qword [ebp - 0x24]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x5502fa
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], edi
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x4c]
mov ebx, dword [eax]
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push edi
call fcn.00545b0d
add esp, 0x14
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x55236e
mov esi, dword [ebp - 0x64]
xor ebx, ebx
cmp dword [ebp - 0x54], ebx
jne 0x5503ae
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x19], 1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 0x44], eax
jmp 0x5503ae
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x44], ecx
mov cx, word [ebp - 0x2c]
mov word [ebp - 0x40], cx
mov cl, byte [ebp - 0x50]
and cl, 1
mov byte [ebp - 0x3e], cl
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov ecx, 0x4000
mov dword [ebp - 0x34], ebx
test word [ebx + 0x1c], cx
je 0x550385
mov eax, ebx
call fcn.00527b54
mov eax, dword [ebp - 0x4c]
mov ebx, dword [eax]
lea ecx, [ebp - 0x54]
push ecx
push edi
push edi
lea ecx, [ebp - 0x44]
push edi
push ecx
call fcn.00545b0d
add esp, 0x14
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x19], 0
xor ebx, ebx
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x1d], bl
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x50], ebx
cmp dword [ebp - 0x50], 0x30
jl 0x5503e5
cmp dword [ebp - 0x54], ebx
jl 0x5503d5
jne 0x5503cd
cmp dword [ebp - 0x50], 0x31
je 0x5503d5
mov dword [ebp - 0x54], ebx
jmp case.default.0x54e193
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x4c]
push dword [eax]
call fcn.00547ed9
jmp 0x55040f
cmp dword [ebp - 0x54], ebx
jg 0x550401
jne 0x5503f2
cmp dword [ebp - 0x50], 0x2e
je 0x550401
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call fcn.00520f07
mov dword [ebp - 0x54], eax
jmp 0x550424
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x4c]
push dword [eax]
call fcn.00547fdf
pop ecx
mov dword [ebp - 0x58], eax
pop ecx
cmp eax, ebx
jne 0x552371
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov byte [eax + 0x19], bl
cmp dword [ebp - 0x54], ebx
je case.default.0x54e193
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 8]
jmp 0x54e1d4
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
cmp dword [eax], 0
je case.default.0x54e193
mov byte [eax + 0x1c], 0
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov ecx, ebx
call fcn.005211a8
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1d], 1
jmp case.default.0x54e193
mov ecx, dword [esi + 0x44]
xor edx, edx
mov dword [ebp - 0x54], edx
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x74], eax
cmp dword [ecx], edx
je 0x55055a
cmp dword [ebx + 0x10], edx
mov edi, dword [ecx + 8]
jle 0x5504c7
mov dword [ebp - 0x3c], edi
mov di, word [ebx + 0x10]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x3c]
mov word [ebp - 0x38], di
mov byte [ebp - 0x36], 2
mov dword [ebp - 0x44], eax
jmp 0x550507
push 0x97
lea ebx, [ebp - 0x48]
lea edx, [ebp - 0x24]
call fcn.00528363
pop ecx
mov dword [ebp - 0x44], eax
test eax, eax
je 0x5512ee
mov ecx, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x74]
push dword [eax + 0x18]
mov ebx, dword [eax + 4]
push dword [ecx + 8]
call fcn.00521a17
mov eax, dword [ebp - 0x44]
or byte [eax + 6], 2
mov ecx, dword [ebp - 0x50]
add esp, 0xc
xor edx, edx
mov ebx, dword [ecx]
lea eax, [ebp - 0x4c]
push eax
push edx
push edx
push edx
push dword [ebp - 0x44]
call fcn.00545b0d
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x70]
add esp, 0x14
cmp dword [eax + 0x10], 0
jne 0x550532
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x5c]
call fcn.0051d025
cmp dword [ebp - 0x58], 0
jne case.default.0x54e193
mov ebx, dword [ebp - 0x70]
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0x4c], eax
sete cl
xor edx, edx
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x50]
mov byte [ecx + 0x1d], al
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x50], eax
cmp byte [ebx], 0x34
jne 0x550567
cmp dword [ebp - 0x54], edx
jmp 0x54ee6f
cmp dword [ebp - 0x54], edx
jmp 0x54f217
mov eax, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
imul edi, edi, 0x28
mov ecx, dword [esi + 0x44]
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x50], eax
and dword [eax + 0x4c], 0
mov eax, dword [ebp - 0x50]
and dword [eax + 0x50], 0
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [eax + 8]
mov cx, word [ecx + 6]
xor edx, edx
mov word [ebp - 0x48], cx
cmp dx, cx
mov ecx, dword [ebp - 0x44]
mov word [ebp - 0x54], dx
jae 0x5505e5
movzx edx, word [ebp - 0x54]
imul edx, edx, 0x28
test byte [edx + ecx + 0x1c], 1
jne 0x5505da
mov dx, word [ebp - 0x48]
inc word [ebp - 0x54]
cmp word [ebp - 0x54], dx
jb 0x5505bc
jmp 0x5505e5
mov ebx, dword [ebx + 8]
dec ebx
and dword [ebp - 0x4c], 0
mov dword [ebp - 0x68], ebx
cmp dword [ebp - 0x4c], 0
je case.default.0x54e193
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x48]
inc eax
mov esi, edi
mov word [ebp - 0x38], ax
mov byte [ebp - 0x36], 4
mov dword [ebp - 0x2c], ecx
call fcn.00521297
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
add eax, 0x4c
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00545b0d
add esp, 0x14
test byte [ebp - 0x36], 4
mov dword [ebp - 0x58], eax
jne 0x550659
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x24]
jne 0x55064b
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0x20]
je 0x550659
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x14], eax
jmp 0x54e428
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0x68], eax
jmp 0x54e428
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
imul edi, edi, 0x28
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
mov dword [ebp - 0x50], ecx
test ecx, ecx
je 0x5506fb
and dword [ebp - 0x4c], 0
mov eax, dword [edi + 0x10]
lea ebx, [ebp - 0x4c]
push ebx
mov dword [ebp - 0x44], eax
mov edx, dword [edi + 0x14]
push 0
push edx
push eax
push 0
mov ebx, ecx
mov dword [ebp - 0x40], edx
call fcn.00545b0d
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x40], eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x44], eax
mov edx, dword [ebp - 0x54]
xor eax, eax
add esp, 0x14
cmp dword [ebp - 0x4c], eax
sete cl
mov byte [edx + 0x19], cl
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 0x1c], al
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 0x1d], al
mov ecx, dword [ebp - 0x4c]
cmp ecx, eax
je 0x5506f0
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x4c], ecx
jmp case.default.0x54e193
mov ebx, dword [ebx + 8]
dec ebx
and dword [eax + 0x4c], 0
mov dword [ebp - 0x68], ebx
jmp case.default.0x54e193
mov ecx, dword [esi + 0x44]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 0x10], edx
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.default.0x54e193
mov ecx, dword [esi + 0x44]
xor edx, edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x48], edx
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x4c], eax
mov ecx, dword [eax]
cmp ecx, edx
je 0x54f952
cmp byte [eax + 0x1b], dl
jne 0x550894
call fcn.00520e14
mov dword [ebp - 0x54], eax
or eax, edx
mov dword [ebp - 0x50], edx
jne 0x5507d1
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax]
lea edi, [ebp - 0x48]
call fcn.00545ad4
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x55236e
xor esi, esi
cmp dword [ebp - 0x48], esi
je 0x55079d
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x50], esi
jmp 0x5507ce
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
lea edi, [ebp - 0x54]
call fcn.00520e41
cmp dword [ebp - 0x50], 0x7fffffff
mov dword [ebp - 0x58], eax
jl 0x5507c7
jg 0x5507be
cmp dword [ebp - 0x54], 0xffffffff
jb 0x5507c7
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x1b], 1
jmp 0x5507ce
add dword [ebp - 0x54], 1
adc dword [ebp - 0x50], esi
mov esi, dword [ebp - 0x64]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x550864
mov esi, dword [esi + 0xa8]
test esi, esi
je 0x550801
mov eax, esi
jmp 0x5507ec
mov eax, ecx
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x5507ea
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [eax + 0xc]
jmp 0x550809
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov ebx, ecx
mov esi, ebx
mov dword [ebp - 0x40], ebx
call fcn.00521297
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 0x14]
add eax, 0x10
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x55082f
cmp edx, 0x7fffffff
je 0x5523af
mov esi, dword [ebp - 0x4c]
cmp byte [esi + 0x1b], 0
jne 0x5523af
mov esi, dword [ebp - 0x50]
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x550856
jl 0x550850
cmp dword [ebp - 0x54], ecx
jae 0x550856
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x64]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x50]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x50]
cmp ecx, 0x7fffffff
jg 0x550881
mov eax, dword [ebp - 0x54]
jl 0x550879
cmp eax, 0xffffffff
jae 0x550881
add eax, 1
adc ecx, 0
jmp 0x550885
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call fcn.00520df1
add esp, 8
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x1b], 0
je 0x55094d
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x84]
push 0
pop edx
mov edi, 0x3fffffff
and eax, edi
add ecx, 1
lea ebx, [ebp - 0x48]
push ebx
adc eax, edx
push edx
push eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
push ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], edx
mov ebx, dword [eax]
push edx
call fcn.00545b0d
xor ebx, ebx
add esp, 0x14
mov dword [ebp - 0x58], eax
cmp eax, ebx
jne 0x55094d
cmp dword [ebp - 0x48], ebx
jne 0x55093f
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0x64
jge 0x55093f
lea eax, [ebp - 0x54]
push eax
push 8
call fcn.00525b48
cmp dword [ebp - 0x44], 5
pop ecx
pop ecx
jge 0x55090d
and dword [ebp - 0x54], 0xffffff
mov dword [ebp - 0x50], ebx
jmp 0x550916
mov eax, dword [ebp - 0x54]
and dword [ebp - 0x50], edi
mov dword [ebp - 0x54], eax
add dword [ebp - 0x54], 1
lea eax, [ebp - 0x48]
push eax
adc dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x4c]
push ebx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push ebx
mov ebx, dword [eax]
call fcn.00545b0d
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0x58], eax
test eax, eax
je 0x5508e0
cmp dword [ebp - 0x58], ebx
jne 0x55094d
cmp dword [ebp - 0x48], ebx
je 0x5523b8
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x4c]
and dword [eax + 0x50], 0
jmp 0x54f952
mov edi, dword [ebx + 8]
mov ecx, dword [esi + 0x44]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x54], edi
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x44], eax
cmp byte [ebx], 0x39
jne 0x55099b
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x50], ecx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x4c], eax
mov edx, dword [ecx + 0x14]
jmp 0x5509a2
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
test byte [ebx + 3], 1
je 0x5509ae
inc dword [esi + 0x68]
test byte [ebx + 3], 2
je 0x5509cc
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x20], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x48]
mov dword [ecx + 0x24], eax
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x80], edx
test byte [edi + 0x1c], 1
je 0x5509e0
and dword [edi + 4], 0
mov eax, dword [ebp - 0x54]
and dword [eax + 0x18], 0
mov edi, dword [ebp - 0x54]
test byte [ebx + 3], 0x10
je 0x5509f1
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x3c], eax
jmp 0x5509f5
and dword [ebp - 0x3c], 0
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x550a08
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x40], eax
jmp 0x550a0c
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
xor edi, edi
push edi
push edi
call fcn.00520df1
push dword [ebp - 0x3c]
movzx eax, byte [ebx + 3]
and eax, 8
push eax
push dword [ebp - 0x40]
mov eax, dword [ebp - 0x54]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push edi
mov edi, dword [eax]
call fcn.005480e4
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 0x19], 0
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 0x1d], 0
mov ecx, dword [ebp - 0x44]
and dword [ecx + 0x50], 0
add esp, 0x28
mov dword [ebp - 0x58], eax
test eax, eax
jne case.default.0x54e193
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0xbc], 0
je case.default.0x54e193
cmp dword [ebx + 0x10], 0
je case.default.0x54e193
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x10]
push dword [ebp - 0x48]
shl ecx, 4
mov edx, dword [ecx + edx]
push dword [ebp - 0x4c]
mov dword [ebp - 0x38], edx
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x34], edi
mov cl, byte [ebx + 3]
and cl, 4
movzx ecx, cl
neg ecx
sbb ecx, ecx
push edi
and ecx, 5
add ecx, 0x12
push edx
push ecx
mov dword [ebp - 0x30], ecx
push dword [eax + 0xb8]
call dword [eax + 0xbc]
add esp, 0x18
jmp case.default.0x54e193
mov ecx, dword [esi + 0x44]
xor edi, edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
cmp dword [ecx + 0xbc], edi
je 0x550afd
cmp dword [ebx + 0x10], edi
je 0x550afd
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + 0x44]
mov dword [ebp - 0x50], ecx
push eax
call fcn.00548952
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, edi
jne 0x552371
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
push 0
push 0
call fcn.00520df1
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax]
add esp, 8
call fcn.0054829f
mov ecx, dword [ebp - 0x4c]
and dword [ecx + 0x50], 0
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x550b6f
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0xbc]
test edx, edx
je 0x550b6f
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x550b6f
push dword [ebp - 0x50]
mov edi, dword [eax + 0x10]
push dword [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 0xc]
shl ecx, 4
push dword [ecx + edi]
push 9
push dword [eax + 0xb8]
call edx
add esp, 0x18
test byte [ebx + 8], 1
je case.default.0x54e193
inc dword [esi + 0x68]
jmp case.default.0x54e193
mov ecx, dword [esi + 0x68]
mov eax, dword [ebp - 0x5c]
call fcn.00521ad8
and dword [esi + 0x68], 0
jmp case.default.0x54e193
mov ecx, dword [esi + 0x44]
mov eax, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0x54], edi
mov esi, dword [ebx + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
lea eax, [ebp - 0x50]
push eax
call fcn.0053835d
mov esi, dword [ebp - 0x64]
cmp dword [ebp - 0x50], 0
pop ecx
mov dword [ebp - 0x58], eax
jmp 0x54ee6f
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
imul ecx, ecx, 0x28
mov edx, dword [esi + 0x44]
add ecx, dword [ebp - 0x60]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x54], eax
call fcn.00528ac9
jmp 0x54f6a8
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x44]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x50], ecx
call fcn.00548952
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x54]
cmp byte [eax + 0x1f], 0
je 0x550c4e
mov eax, dword [ebp - 0x50]
lea edi, [ebp - 0x44]
call fcn.00520e41
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x50]
cdq
mov ecx, eax
mov eax, dword [ebp - 0x40]
cmp eax, edx
jg 0x551a0a
mov eax, dword [ebp - 0x44]
jl 0x550c49
cmp eax, ecx
ja 0x551a0a
mov dword [ebp - 0x4c], eax
jmp 0x550c6a
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x50]
call fcn.00520e67
mov eax, dword [ebp - 0x4c]
pop ecx
mov ecx, dword [ebp - 0x5c]
cmp eax, dword [ecx + 0x50]
ja 0x551a0a
mov edi, dword [ebp - 0x6c]
xor ebx, ebx
push ebx
call fcn.00527a98
pop ecx
test eax, eax
jne 0x5512ee
mov eax, dword [ebp - 0x4c]
push dword [edi + 4]
mov dword [edi + 0x18], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xbe10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x54]
push dword [ebp - 0x4c]
push ebx
cmp byte [eax + 0x1f], bl
je 0x550cb4
mov eax, dword [ebp - 0x50]
call fcn.00542098
add esp, 0xc
jmp 0x550cbf
push dword [ebp - 0x50]
call fcn.00547e9c
add esp, 0x10
mov dword [ebp - 0x58], eax
jmp 0x54f920
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
cmp byte [eax + 0x1c], 0
je 0x550ce8
mov ecx, dword [ebp - 0x6c]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
jmp case.default.0x54e193
cmp byte [eax + 0x1d], 0
je 0x550cf9
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x4c], ecx
mov eax, dword [eax + 0x3c]
jmp 0x550d4e
cmp dword [eax + 0x24], 0
je 0x550d2a
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ecx]
lea edx, [ebp - 0x4c]
push edx
mov dword [ebp - 0x40], ecx
push dword [eax + 0x24]
call dword [ecx + 0x30]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x64]
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
call fcn.005286ab
mov esi, edi
jmp 0x550d60
push eax
call fcn.00548952
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x54]
cmp byte [eax + 0x19], 0
je 0x550d53
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x4c], ecx
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x48], eax
jmp 0x550d60
mov eax, dword [eax]
lea edi, [ebp - 0x4c]
call fcn.00520e41
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x6c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
jmp 0x54e2b8
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
test eax, eax
je case.default.0x54e193
mov esi, eax
call fcn.0052081a
jmp 0x54e428
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
and dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], ecx
test ecx, ecx
je 0x550dcd
lea edi, [ebp - 0x4c]
mov esi, ecx
call fcn.00545ad4
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
mov cl, byte [ebp - 0x4c]
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0x54]
and dword [eax + 0x50], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.default.0x54e193
cmp dword [ebp - 0x4c], 0
je case.default.0x54e193
jmp 0x54e1ae
inc dword [esi + 0x7c]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], 1
cmp dword [eax + 0x48], 0
je 0x550e33
lea ecx, [ebp - 0x4c]
push ecx
push eax
push dword [ebp - 0x5c]
call fcn.0053e22a
add esp, 0xc
mov dword [ebp - 0x58], eax
jmp 0x550e6a
mov eax, dword [eax]
lea edi, [ebp - 0x4c]
mov esi, eax
mov dword [ebp - 0x50], eax
call fcn.00545ab3
cmp dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
sete al
mov byte [ecx + 0x1a], al
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x54]
and dword [eax + 0x50], 0
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x19], 0
mov al, byte [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 0x1c], al
cmp dword [ebp - 0x4c], 0
jmp 0x54ee6f
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0xe0]
test eax, eax
jne 0x5523c1
mov eax, dword [ebx + 4]
mov edx, dword [esi + 0x44]
mov eax, dword [edx + eax*4]
xor edi, edi
mov dword [ebp - 0x54], eax
cmp eax, edi
je case.default.0x54e193
cmp dword [eax + 0x48], edi
je 0x550eb8
lea edx, [ebp - 0x50]
push edx
push eax
push ecx
call fcn.005382bc
add esp, 0xc
jmp 0x550eca
lea ecx, [ebp - 0x50]
push ecx
mov dword [ebp - 0x50], 1
push dword [eax]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov cl, byte [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1c], cl
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x50], edi
cmp dword [ebp - 0x50], edi
jne 0x550ef8
mov eax, dword [ebx + 8]
mov bl, byte [ebx + 3]
dec eax
mov dword [ebp - 0x68], eax
test bl, bl
je 0x550ef8
movzx eax, bl
lea eax, [esi + eax*4 + 0x74]
inc dword [eax]
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x19], 0
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x54], ecx
mov edi, dword [ebx + 8]
mov eax, dword [ecx]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x50], eax
test eax, eax
je case.default.0x54e193
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x550f40
mov eax, edi
call fcn.00527b54
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
jmp 0x550f44
and dword [ebp - 0x58], 0
cmp dword [ebp - 0x58], 0
jne case.default.0x54e193
cmp dword [ecx + 0x48], 0
je 0x550f64
push ecx
push dword [ebp - 0x5c]
mov ebx, edi
call fcn.00538197
jmp 0x551d68
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x4c], eax
mov edi, dword [edi + 4]
mov dword [ebp - 0x48], edi
test byte [ebx + 3], 0x10
je 0x550f7b
mov ecx, dword [ecx + 0x4c]
jmp 0x550f7d
xor ecx, ecx
push ecx
push dword [ebx + 0xc]
xor ebx, ebx
push ebx
push ebx
cdq
push 0x631718
push edx
push eax
push edi
mov edi, dword [ebp - 0x50]
call fcn.005480e4
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
add esp, 0x20
mov dword [eax + 0x50], ebx
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
xor edx, edx
mov dword [ebp - 0x50], ecx
cmp ecx, edx
je case.default.0x54e193
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x40], ax
mov byte [ebp - 0x3e], dl
mov eax, dword [ebx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov ebx, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x4c]
push eax
push edx
push edx
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.00545b0d
add esp, 0x14
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x55100b
cmp dword [ebp - 0x4c], eax
jne 0x55100b
mov edi, dword [ebp - 0x50]
call fcn.0054829f
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
and dword [eax + 0x50], 0
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x50], eax
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
xor eax, eax
inc eax
mov word [ebx + 0x1c], ax
cmp dword [ebp - 0x54], 0
je case.default.0x54e193
push dword [ebp - 0x50]
call fcn.00548952
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x1c], 0
jne case.default.0x54e193
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x54]
call fcn.005489d1
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x552371
mov eax, dword [ebp - 0x4c]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x48]
push 4
mov dword [ebx + 0x14], eax
pop eax
jmp 0x54ed92
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x54], eax
cmp dword [eax], 0
je case.default.0x54e193
mov ecx, dword [eax + 8]
mov dword [ebp - 0x4c], ecx
mov cx, word [ebx + 0x10]
mov word [ebp - 0x48], cx
cmp byte [ebx + 3], 0
setne cl
add cl, 2
mov byte [ebp - 0x46], cl
mov ecx, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x4c]
push ecx
call fcn.00548ab7
cmp byte [ebx], 0x64
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
jne 0x5510e2
neg dword [ebp - 0x50]
jmp 0x5510e5
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0
jle case.default.0x54e193
jmp 0x54e1ab
mov ecx, dword [ebp - 0x5c]
and dword [ebp - 0x50], 0
mov eax, dword [ecx + 4]
jmp 0x551120
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x55111d
mov edx, dword [eax + 0x64]
and dl, 0xc
cmp dl, 8
jae 0x55111d
cmp dword [eax + 0x58], 0
jl 0x55111d
inc dword [ebp - 0x50]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x551100
mov edi, dword [ebp - 0x6c]
xor eax, eax
inc eax
mov word [edi + 0x1c], ax
cmp dword [ebp - 0x50], eax
jle 0x551146
mov dword [ebp - 0x58], 6
mov byte [esi + 0x60], 2
jmp case.default.0x54e193
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x48], eax
mov ecx, dword [ecx + 0x10]
lea edx, [ebp - 0x54]
push edx
push dword [ebx + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.00546bbb
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
push 4
pop eax
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x54]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jne case.default.0x54e193
cmp dword [ebp - 0x54], 0
je case.default.0x54e193
mov edi, dword [ebx + 4]
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x5c]
call fcn.00522c50
mov al, byte [ebp - 0x48]
inc al
mov byte [ebp - 0x79], al
jmp 0x54e428
and dword [ebp - 0x54], 0
mov eax, dword [ebx + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x54]
and eax, ecx
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [ebx + 8]
push dword [ebx + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.005469e5
cmp dword [ebx + 0xc], 0
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
je case.default.0x54e193
mov eax, dword [ebp - 0x54]
add dword [esi + 0x68], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jle case.default.0x54e193
mov ecx, dword [ebp - 0x60]
imul ebx, ebx, 0x28
lea ecx, [ebx + ecx + 0x10]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.default.0x54e193
and dword [ebp - 0x54], 0
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
cmp byte [ebx], 0x69
setne cl
inc ecx
mov dword [ebp - 0x50], ecx
mov eax, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x54]
push ecx
call fcn.005431c5
mov dword [ebp - 0x58], eax
jmp 0x54fda1
mov eax, dword [ebx + 4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], str.sqlite_temp_master
cmp eax, 1
je 0x551255
mov dword [ebp - 0x50], str.sqlite_master
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x40], edx
add esi, 0x38
mov dword [ebp - 0x44], esi
push dword [ebx + 0x10]
mov edx, dword [ecx + 0x10]
push dword [ebp - 0x50]
shl eax, 4
push dword [eax + edx]
mov esi, ecx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.0052bb61
xor edi, edi
add esp, 0x10
mov dword [ebp - 0x4c], eax
cmp eax, edi
jne 0x551297
mov dword [ebp - 0x58], 7
jmp 0x5512da
push edi
lea eax, [ebp - 0x48]
push eax
mov byte [esi + 0x81], 1
push fcn.0054c831
push dword [ebp - 0x4c]
mov dword [ebp - 0x3c], edi
push esi
call fcn.005533ba
add esp, 0x14
mov dword [ebp - 0x58], eax
cmp eax, edi
jne 0x5512c4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x4c]
mov ecx, esi
call fcn.0051d025
mov byte [esi + 0x81], 0
cmp dword [ebp - 0x58], edi
je 0x5512e1
mov eax, esi
call fcn.00533ca4
cmp dword [ebp - 0x58], 7
jne 0x54e428
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
push 0x612fc8
push eax
lea edi, [esi + 0x38]
mov byte [eax + 0x38], 1
call fcn.005313d1
mov dword [ebp - 0x58], 7
jmp 0x551a21
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x5c]
call fcn.0052e117
jmp 0x54f6a8
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x5c]
call fcn.0052e584
jmp 0x54e428
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x5c]
call fcn.005296a7
jmp case.default.0x54e193
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x5c]
call fcn.0052a088
jmp case.default.0x54e193
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
lea eax, [eax*4 + 4]
push eax
call fcn.0052578d
pop ecx
mov dword [ebp - 0x50], eax
test eax, eax
je 0x5512eb
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x40], eax
mov edi, dword [ebx + 4]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
cmp dword [ebp - 0x54], ecx
mov dword [ebp - 0x4c], ecx
jle 0x5513b8
imul ecx, ecx, 0x28
add ecx, edi
call fcn.005211a8
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x4c]
inc ecx
cmp ecx, dword [ebp - 0x54]
mov dword [ebp - 0x4c], ecx
jl 0x551399
mov eax, dword [ebp - 0x50]
and dword [eax + ecx*4], 0
mov eax, dword [ebp - 0x40]
push dword [eax + 0x10]
movzx eax, byte [ebx + 3]
push dword [ebp - 0x54]
mov ecx, dword [esi + 0x10]
push dword [ebp - 0x50]
shl eax, 4
mov ecx, dword [eax + ecx + 4]
lea edx, [ebp - 0x48]
call fcn.0054399f
mov edx, dword [ebp - 0x50]
add esp, 0xc
mov ecx, esi
mov dword [ebp - 0x44], eax
call fcn.0051d025
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
cdq
add ecx, 0x10
sub dword [ecx], eax
sbb dword [ecx + 4], edx
call fcn.00521345
cmp dword [ebp - 0x48], 0
je 0x55142b
cmp dword [ebp - 0x44], 0
je 0x5512eb
push 1
push dword [ebp - 0x44]
mov eax, fcn.0051cfcb
or ecx, 0xffffffff
mov edx, edi
call fcn.005329db
pop ecx
pop ecx
movzx eax, byte [ebp - 0x78]
push eax
mov eax, edi
call fcn.0053294a
jmp 0x54e427
mov edi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
test byte [edi + 0x1c], 0x20
jne 0x551463
call fcn.00527cfd
test byte [edi + 0x1c], 0x20
je 0x5512ee
push dword [ebx + 0x14]
push dword [ebx + 0x10]
mov eax, dword [edi + 0x10]
call fcn.00526549
pop ecx
pop ecx
jmp case.default.0x54e193
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xe0]
test eax, eax
jne 0x5523c1
mov eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
test byte [eax + 0x1c], 0x20
mov dword [ebp - 0x70], eax
je 0x5514b8
mov eax, dword [eax + 0x10]
lea edi, [ebp - 0x54]
call fcn.0051f459
test eax, eax
je 0x5514b8
push dword [ebp - 0x50]
mov esi, dword [ebx + 0xc]
push dword [ebp - 0x54]
jmp 0x54e980
mov edi, dword [ebp - 0x70]
call fcn.00521345
jmp 0x54e1ab
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x74], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x54], eax
test byte [edi + 0x1c], 0x20
jne 0x5514f8
call fcn.00527cfd
test byte [edi + 0x1c], 0x20
je 0x5512ee
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x551533
jl 0x551503
and eax, 0xf
jmp 0x551508
mov eax, 0xff
mov ecx, dword [ebp - 0x74]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push eax
mov eax, dword [edi + 0x10]
call fcn.00526597
add esp, 0xc
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x54e1ab
mov eax, dword [ebp - 0x54]
test eax, eax
jl case.default.0x54e193
mov eax, dword [ebp - 0x74]
push dword [eax + 0x14]
push dword [eax + 0x10]
jmp 0x551469
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x4c], eax
cmp byte [ebx + 3], 0
je 0x551583
mov edx, dword [esi + 0xa8]
mov edi, dword [ecx + 0x14]
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], edx
test edx, edx
je 0x551583
cmp dword [edx + 0x18], edi
je 0x55157b
mov edx, dword [edx + 4]
mov dword [ebp - 0x40], edx
test edx, edx
jne 0x55156c
test edx, edx
jne case.default.0x54e193
mov edx, dword [esi + 0xb0]
mov edi, dword [ebp - 0x5c]
cmp edx, dword [edi + 0x78]
jl 0x5515ab
push str.too_many_levels_of_trigger_recursion
push edi
lea edi, [esi + 0x38]
mov dword [ebp - 0x58], 1
call fcn.005313d1
jmp 0x551471
test byte [eax + 0x1c], 0x40
jne 0x5516b6
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
mov dword [ebp - 0x54], eax
imul eax, eax, 0xa
add eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea eax, [ecx + eax*4 + 0x48]
mov dword [ebp - 0x50], eax
push eax
mov eax, edi
call fcn.0052afd8
pop ecx
mov dword [ebp - 0x40], eax
test eax, eax
je 0x5512ee
push dword [ebp - 0x4c]
call fcn.00527c4a
pop ecx
mov ecx, dword [ebp - 0x4c]
push 0x40
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x40]
mov dword [eax], esi
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x68]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x34], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x28], eax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0xc0]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xbc]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x3c]
imul ecx, ecx, 0x28
lea edx, [ecx + eax + 0x48]
lea ecx, [eax + 0x48]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], ecx
cmp ecx, edx
je 0x5516bc
mov eax, 0x80
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x48]
mov dword [eax], edi
mov ecx, dword [ebp - 0x48]
add ecx, 0x28
mov dword [ebp - 0x48], ecx
cmp ecx, dword [ebp - 0x44]
jne 0x551695
mov eax, dword [ebp - 0x40]
jmp 0x5516bc
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xa8]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0x24], ecx
mov eax, dword [esi + 0x68]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x40]
and dword [esi + 0x68], 0
lea ecx, [eax + 0x20]
mov dword [esi + 0xa8], eax
mov dword [esi + 8], ecx
mov edx, dword [eax + 0x3c]
mov dword [esi + 0x18], edx
movzx eax, word [eax + 0x40]
mov dword [esi + 0x30], eax
mov eax, edx
inc eax
imul eax, eax, 0x28
or dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x60], ecx
add ecx, eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x44], ecx
mov edx, dword [eax]
mov dword [esi + 4], edx
mov dword [ebp - 0x98], edx
mov edx, dword [eax + 4]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x30]
lea ecx, [ecx + edx*4]
mov dword [esi + 0xc0], ecx
mov eax, dword [eax + 0x10]
push eax
push 0
push ecx
mov dword [esi + 0xbc], eax
call fcn.0059cb30
add esp, 0xc
jmp case.default.0x54e193
mov esi, dword [esi + 0xa8]
mov dword [ebp - 0x54], esi
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 8]
imul eax, eax, 0x14
mov edi, dword [eax + ecx + 4]
add edi, dword [ebx + 4]
push 0x1000
imul edi, edi, 0x28
add edi, dword [esi + 0xc]
mov dword [ebp - 0x50], edi
jmp 0x54e41f
cmp dword [ebx + 4], 0
mov eax, dword [ebx + 8]
cdq
je 0x551799
mov ecx, dword [ebp - 0x5c]
add ecx, 0x1e8
jmp 0x5511fe
lea ecx, [esi + 0x90]
jmp 0x5511fe
cmp dword [ebx + 4], 0
je 0x5517be
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x1e8]
or ecx, dword [eax + 0x1ec]
jmp 0x54f217
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
jmp 0x54f217
mov esi, dword [esi + 0xa8]
test esi, esi
je 0x5517f4
mov eax, esi
jmp 0x5517df
mov eax, ecx
mov dword [ebp - 0x50], eax
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x5517dd
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [eax + 0xc]
jmp 0x5517fd
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
mov dword [ebp - 0x54], esi
call fcn.00521297
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov esi, ebx
call fcn.00521297
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov edx, dword [eax + 0x14]
add eax, 0x10
cmp edx, ebx
jg 0x54e428
jl 0x551838
mov edx, dword [eax]
cmp edx, ecx
jae 0x54e428
mov dword [eax], ecx
mov dword [eax + 4], ebx
jmp 0x54e428
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
cmp dword [eax + ecx + 0x14], 0
jl case.default.0x54e193
jg 0x54e1ab
cmp dword [eax + ecx + 0x10], 0
jbe case.default.0x54e193
jmp 0x54e1ab
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x60]
imul eax, eax, 0x28
cmp dword [eax + ecx + 0x14], 0
jg case.default.0x54e193
jl 0x54e1ab
cmp dword [eax + ecx + 0x10], 0
jae case.default.0x54e193
jmp 0x54e1ab
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
cdq
add dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x10]
adc dword [ecx + 0x14], edx
or eax, dword [ecx + 0x14]
jmp 0x54f217
movzx ecx, byte [ebx + 3]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebx + 8]
and dword [ebp - 0x50], 0
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 4], edx
mov dword [ebp - 0x48], eax
test ecx, ecx
jle 0x5518fa
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x50]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x48]
call fcn.00521d64
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
add eax, 0x28
cmp ecx, dword [ebp - 0x54]
mov dword [ebp - 0x48], eax
jl 0x5518d5
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
xor edi, edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x14], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov word [ebp - 0x20], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
test byte [eax + 3], 8
je 0x551942
mov ecx, dword [ebx - 4]
mov dword [ebp - 0x10], ecx
push dword [ebp - 4]
lea ecx, [ebp - 0x44]
push dword [ebp - 0x54]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0xc], edi
je 0x55197c
lea eax, [ebp - 0x3c]
push eax
call fcn.00532f96
push eax
push 0x6177c8
push dword [ebp - 0x5c]
lea edi, [esi + 0x38]
call fcn.005313d1
mov eax, dword [ebp - 0xc]
add esp, 0x10
mov dword [ebp - 0x58], eax
xor edi, edi
cmp dword [ebp - 8], edi
je 0x5519a1
mov ebx, dword [ebx - 0x10]
mov dword [ebp - 0x50], ebx
cmp ebx, edi
je 0x5519a1
mov esi, ebx
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
push 0
push 1
call fcn.00527ca2
mov esi, dword [ebp - 0x64]
pop ecx
pop ecx
lea eax, [ebp - 0x3c]
push eax
call fcn.00527c4a
jmp 0x551472
mov esi, dword [ebx + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
mov dword [ebp - 0x54], esi
mov edi, dword [ebx + 0x10]
call fcn.00521110
mov dword [ebp - 0x58], eax
test eax, eax
je 0x5519e9
push dword [ebp - 0x54]
call fcn.00532f96
mov edi, dword [ebp - 0x64]
push eax
push 0x6177c8
push dword [ebp - 0x5c]
add edi, 0x38
call fcn.005313d1
add esp, 0x10
movzx eax, byte [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x54]
call fcn.0053294a
pop ecx
mov ecx, dword [ebp - 0x54]
call fcn.00521386
test eax, eax
je 0x54e428
mov esi, dword [ebp - 0x64]
push str.string_or_blob_too_big
push dword [ebp - 0x5c]
lea edi, [esi + 0x38]
call fcn.005313d1
mov dword [ebp - 0x58], 0x12
pop ecx
pop ecx
push dword [esi + 0x38]
mov eax, dword [ebp - 0x58]
push dword [esi + 0xa0]
mov dword [esi + 0x5c], eax
push dword [ebp - 0x68]
push str.statement_aborts_at__d:___s___s
push eax
call fcn.0052bcd1
add esp, 0x14
mov eax, esi
call fcn.00549a80
cmp dword [ebp - 0x58], 0xc0a
jne 0x551a5a
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x38], 1
xor ebx, ebx
inc ebx
cmp byte [ebp - 0x79], 0
jbe 0x551a75
movzx eax, byte [ebp - 0x79]
mov esi, dword [ebp - 0x5c]
dec eax
push eax
call fcn.00533c7c
mov esi, dword [ebp - 0x64]
pop ecx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x80]
mov edi, esi
mov dword [eax + 0x24], ecx
call fcn.00521568
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.0059ca15
add ebp, 0x78
leave
ret
or dword [ebp - 0x48], 0xffffffff
or dword [ebp - 0x4c], 0xffffffff
mov esi, dword [ebp - 0x5c]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
xor edi, edi
mov dword [ebp - 0x50], edi
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.005476e2
add esp, 0x10
mov dword [ebp - 0x58], eax
cmp eax, 5
jne 0x551ada
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x54], edi
mov ebx, dword [ebx + 0xc]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp + eax*4 - 0x50]
cdq
push edx
push eax
mov esi, ebx
call fcn.00527ca2
mov ebx, dword [ebp - 0x44]
inc dword [ebp - 0x54]
add ebx, 0x28
cmp dword [ebp - 0x54], 3
pop ecx
pop ecx
mov dword [ebp - 0x44], ebx
jl 0x551ae9
jmp 0x54e428
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [ebp - 0x54], eax
call fcn.00520fdb
mov dword [ebp - 0x50], eax
call fcn.0051fd48
mov dword [ebp - 0x48], eax
cmp ecx, 0xffffffff
jne 0x551b44
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x50]
call fcn.0051fd4d
test eax, eax
jne 0x551b56
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x50]
xor edx, edx
inc edx
push edx
call fcn.0051fd13
add esp, 4
cmp dword [ebp - 0x4c], 5
mov dword [ebp - 0x44], eax
jne 0x551b8b
mov ecx, eax
call fcn.0051d202
test eax, eax
je 0x551b85
mov eax, dword [ebp - 0x50]
call fcn.0051fd73
test eax, eax
jne 0x551b8b
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x48]
cmp dword [ebp - 0x4c], ecx
je 0x551bfc
push 5
pop eax
cmp ecx, eax
je 0x551b9f
cmp dword [ebp - 0x4c], eax
jne 0x551bfc
cmp byte [edi + 0x36], 0
je 0x551c55
cmp dword [edi + 0x84], edx
jg 0x551c55
cmp ecx, eax
jne 0x551bcd
mov eax, dword [ebp - 0x50]
call fcn.005477ea
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x551c02
mov ecx, dword [ebp - 0x4c]
jmp 0x551bd5
cmp ecx, 4
jne 0x551bdd
push 2
pop ecx
mov edi, dword [ebp - 0x50]
call fcn.00544d2d
cmp dword [ebp - 0x58], 0
jne 0x551c02
push dword [ebp - 0x54]
xor ebx, ebx
cmp dword [ebp - 0x4c], 5
sete bl
inc ebx
call fcn.00546d1a
mov ebx, dword [ebp - 0x70]
pop ecx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
je 0x551c08
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
call fcn.00544d2d
mov dword [ebp - 0x4c], eax
mov ebx, dword [ebx + 8]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
mov eax, 0xa02
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x6c], ebx
call fcn.0052360f
mov ecx, eax
mov dword [ebx + 4], eax
call fcn.0051d202
mov dword [ebx + 0x18], eax
movzx eax, byte [ebp - 0x78]
push eax
mov eax, ebx
mov byte [ebx + 0x1f], 1
call fcn.0053294a
jmp 0x551472
cmp dword [ebp - 0x4c], eax
mov dword [ebp - 0x58], edx
mov eax, str.into
je 0x551c67
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
lea edi, [esi + 0x38]
call fcn.005313d1
jmp 0x55174d
lea eax, [esi + 0x38]
push eax
mov eax, dword [ebp - 0x5c]
call fcn.0054b55c
jmp 0x54f6a7
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
mov dword [ebp - 0x54], eax
call fcn.005455ac
pop ecx
mov dword [ebp - 0x58], eax
cmp eax, 0x65
jne case.default.0x54e193
mov ebx, dword [ebx + 8]
dec ebx
and dword [ebp - 0x58], 0
mov dword [ebp - 0x68], ebx
jmp case.default.0x54e193
cmp dword [ebx + 4], 0
jne 0x551cd5
mov eax, dword [ebp - 0x5c]
call fcn.00521ae4
jmp case.default.0x54e193
or dword [esi + 0x64], 0x20
jmp case.default.0x54e193
mov al, byte [ebx + 0xc]
test al, al
jne 0x551cf5
mov ecx, dword [ebp - 0x5c]
test dword [ecx + 0x18], 0x800
jne case.default.0x54e193
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebx + 8]
shl edx, 4
mov edx, dword [edx + edi + 4]
call fcn.00527a36
mov dword [ebp - 0x58], eax
cmp al, 6
jne case.default.0x54e193
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 0x5c]
jmp 0x551c6e
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], edi
call fcn.0052a27a
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
test eax, eax
je case.default.0x54e193
mov esi, dword [eax + 8]
mov edi, dword [ebp - 0x64]
call fcn.005286ab
mov esi, edi
jmp case.default.0x54e193
lea eax, [esi + 0x38]
push eax
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x5c]
call fcn.0053088a
pop ecx
jmp 0x54f6a7
mov eax, dword [esi + 0x64]
mov ecx, dword [ebp - 0x5c]
and eax, 0xfffffffb
or eax, 8
mov dword [esi + 0x64], eax
push dword [ebx + 0x10]
mov eax, dword [ebx + 4]
call fcn.00523dc8
and dword [esi + 0x64], 0xfffffff3
pop ecx
mov dword [ebp - 0x58], eax
jmp case.default.0x54e193
and dword [ebp - 0x54], 0
and dword [ebp - 0x50], 0
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
lea edx, [ebp - 0x50]
mov dword [ebp - 0x4c], eax
mov ecx, dword [eax]
push edx
push eax
mov dword [ebp - 0x48], ecx
call dword [ecx + 0x18]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
call fcn.005286ab
cmp dword [ebp - 0x58], 0
jne 0x54e428
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
push 0
mov dword [ecx], eax
mov edx, dword [ebx + 4]
push 0xffffffffffffffff
push 0
mov eax, edi
call fcn.00548b49
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
je 0x551e07
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x28], eax
jmp 0x551d4f
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x38], 1
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
call dword [eax + 0x1c]
pop ecx
jmp 0x551d4f
mov eax, dword [ebx + 0xc]
mov edi, dword [esi + 0x44]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x48], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0x44], edx
mov ecx, dword [ebx + 4]
mov ecx, dword [edi + ecx*4]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x40], ecx
mov edi, dword [ecx]
mov dword [ebp - 0x3c], edi
mov edi, dword [edi]
mov dword [ebp - 0x4c], edi
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x54], edi
mov eax, dword [eax + 0x10]
and dword [ebp - 0x34], 0
and dword [ebp - 0x30], 0
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x2c], eax
test edi, edi
jle 0x551e9b
jmp 0x551e6e
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x30]
lea ecx, [eax + 1]
imul ecx, ecx, 0x28
add ecx, edx
mov edx, dword [ebp - 0x2c]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + eax*4]
call fcn.00521d64
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x54]
jl 0x551e6b
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x2c]
mov eax, dword [esi + 0x64]
push dword [ebp - 0x54]
and eax, 0xfffffff7
or eax, 4
mov dword [esi + 0x64], eax
push dword [ebx + 0x10]
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x50]
push ecx
call dword [eax + 0x20]
and dword [esi + 0x64], 0xfffffff3
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x64]
add esp, 0x14
mov dword [ebp - 0x58], eax
call fcn.005286ab
cmp dword [ebp - 0x58], 0
jne 0x551ee2
push dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x551eef
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x68], ebx
mov eax, dword [ebp - 0x38]
mov byte [eax + 0x1c], 0
jmp 0x551d4f
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov edi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x4c], eax
cmp byte [edi + 0x1c], 0
je 0x551f1d
mov edi, eax
jmp 0x54e5f9
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov eax, dword [eax]
push 0x40
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x44]
push 0
push eax
call fcn.0059cb30
mov esi, dword [ebp - 0x4c]
lea eax, [ebp - 0x3c]
push eax
call fcn.00527d81
mov eax, dword [ebp - 0x20]
and eax, 0xbe01
or eax, 1
mov word [ebp - 0x20], ax
push dword [ebx + 8]
lea eax, [ebp - 0x44]
push eax
push dword [edi + 0x24]
mov eax, dword [ebp - 0x50]
call dword [eax + 0x2c]
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x64]
add esp, 0x1c
mov dword [ebp - 0x58], eax
call fcn.005286ab
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x551f7d
mov dword [ebp - 0x58], eax
movzx eax, byte [ebp - 0x78]
push eax
lea eax, [ebp - 0x3c]
call fcn.0053294a
push dword [ebp - 0x4c]
lea esi, [ebp - 0x3c]
call fcn.00527d81
pop ecx
pop ecx
mov ecx, dword [ebp - 0x4c]
call fcn.00521386
test eax, eax
jne 0x551a07
jmp 0x551d4f
and dword [ebp - 0x4c], 0
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x48], eax
cmp byte [eax + 0x1c], 0
jne case.default.0x54e193
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x64]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ecx]
and edx, 0xfffffff7
or edx, 4
mov dword [ebp - 0x50], ecx
mov dword [esi + 0x64], edx
push dword [eax + 0x24]
call dword [ecx + 0x24]
and dword [esi + 0x64], 0xfffffff3
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x64]
pop ecx
mov dword [ebp - 0x58], eax
call fcn.005286ab
cmp dword [ebp - 0x58], 0
jne 0x55200e
mov eax, dword [ebp - 0x48]
push dword [eax + 0x24]
mov eax, dword [ebp - 0x50]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x54e428
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0x68], ebx
jmp 0x551d4f
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebx + 4]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x60]
push 1
mov eax, ebx
mov dword [ebp - 0x50], ebx
call fcn.0053294a
pop ecx
mov dword [ebp - 0x58], eax
test eax, eax
jne case.default.0x54e193
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x54]
push dword [edx + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x64]
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
call fcn.005286ab
and dword [edi + 0x64], 0xffffffdf
jmp 0x551d4f
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x54], eax
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0x4c], edx
cmp dword [eax + 0x34], 0
je case.default.0x54e193
mov eax, dword [ebp - 0x5c]
mov al, byte [eax + 0x3c]
mov byte [ebp - 0x85], al
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebx + 0xc]
and dword [ebp - 0x48], 0
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x38], ecx
test edx, edx
jle 0x5520df
call fcn.00521d64
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x3c]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x38]
add ecx, 0x28
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ecx
jl 0x5520ba
mov al, byte [ebx + 3]
mov esi, dword [ebp - 0x5c]
mov byte [esi + 0x3c], al
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
push dword [ebp - 0x4c]
push dword [ebp - 0x54]
call dword [eax + 0x34]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov al, byte [ebp - 0x85]
mov byte [esi + 0x3c], al
mov esi, dword [ebp - 0x54]
add esp, 0x10
call fcn.005286ab
cmp dword [ebp - 0x58], 0
jne 0x55213c
cmp dword [ebx + 4], 0
je 0x55213c
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x84], eax
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x24], eax
cmp byte [ebp - 0x58], 0x13
jne 0x552171
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x552171
mov bl, byte [ebx + 3]
cmp bl, 4
jne 0x55215c
and dword [ebp - 0x58], 0
jmp 0x551d4f
cmp bl, 5
jne 0x552166
push 2
pop eax
jmp 0x552169
movzx eax, bl
mov byte [edi + 0x60], al
jmp 0x551d4f
inc dword [edi + 0x68]
jmp 0x551d4f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.00520af6
mov ecx, dword [ebp - 0x6c]
and dword [ecx + 0x14], 0
mov dword [ecx + 0x10], eax
jmp case.default.0x54e193
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x10]
mov ebx, dword [ebx + 0xc]
shl eax, 4
mov ecx, dword [eax + ecx + 4]
xor eax, eax
test ebx, ebx
je 0x5521c3
mov eax, ecx
call fcn.00520af6
cmp eax, ebx
jae 0x5521c3
mov eax, ebx
push eax
mov eax, ecx
call fcn.00520c07
pop ecx
jmp 0x54e29b
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x98], 0
je case.default.0x54e193
test dword [esi + 0x64], 0x400
jne case.default.0x54e193
mov ebx, dword [ebx + 0x10]
mov ecx, ebx
test ebx, ebx
jne 0x5521fd
mov ecx, dword [esi + 0xa0]
mov dword [ebp - 0x54], ecx
test ecx, ecx
je case.default.0x54e193
push esi
call fcn.005330f5
mov edi, dword [ebp - 0x5c]
push eax
mov dword [ebp - 0x50], eax
push dword [edi + 0x9c]
call dword [edi + 0x98]
mov edx, dword [ebp - 0x50]
add esp, 0xc
mov ecx, edi
call fcn.0051d025
jmp case.default.0x54e193
mov dword [ebp - 0x58], 9
jmp 0x551a23
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x68]
mov dword [esi + 0x5c], eax
mov al, byte [ebx + 8]
mov byte [esi + 0x60], al
mov dword [esi + 0x58], ecx
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x552287
push eax
push 0x6177c8
push dword [ebp - 0x5c]
lea edi, [esi + 0x38]
call fcn.005313d1
push dword [ebx + 0x10]
push dword [esi + 0xa0]
push dword [ebp - 0x68]
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0052bcd1
add esp, 0x20
jmp 0x5522a4
cmp dword [esi + 0x5c], 0
je 0x5522a4
push dword [esi + 0xa0]
push ecx
push str.constraint_failed_at__d_in___s_
push dword [ebx + 4]
call fcn.0052bcd1
add esp, 0x10
mov eax, esi
call fcn.00549a80
push 5
pop ebx
cmp eax, ebx
je 0x5522dd
mov ebx, dword [esi + 0x5c]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x551a75
lea eax, [ebp - 0x44]
push eax
call fcn.00527c4a
pop ecx
jmp 0x5512eb
mov eax, dword [ebp - 0x68]
mov dword [esi + 0x58], eax
mov byte [edi + 0x36], 0
mov dword [esi + 0x5c], ebx
jmp 0x551a75
test ebx, ebx
je 0x552318
push 0x204
mov eax, edi
call fcn.00547636
pop ecx
mov byte [edi + 0x36], 1
mov esi, edi
call fcn.00524beb
mov eax, dword [ebp - 0x64]
mov ebx, dword [eax + 0x5c]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
mov esi, eax
jmp 0x551a75
push 1
mov eax, esi
call fcn.00532f2a
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x551a75
mov al, byte [ebp - 0x54]
mov byte [edi + 0x36], al
mov eax, esi
call fcn.00549a80
push 5
pop ebx
cmp eax, ebx
jne 0x5522fa
mov eax, dword [ebp - 0x68]
mov dword [esi + 0x58], eax
mov al, 1
sub al, byte [ebp - 0x54]
mov byte [edi + 0x36], al
jmp 0x5522dd
mov ecx, dword [ebp - 0x68]
mov dword [esi + 0x58], ecx
mov ebx, eax
mov dword [esi + 0x5c], eax
jmp 0x551a75
push 0x10709
call fcn.00530ec1
pop ecx
mov dword [ebp - 0x58], eax
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x38], 0
je 0x552381
mov dword [ebp - 0x58], 7
cmp dword [ebp - 0x58], 0xc0a
je 0x551a23
mov ecx, dword [ebp - 0x58]
call fcn.00524cd4
push eax
push 0x6177c8
push dword [ebp - 0x5c]
lea edi, [esi + 0x38]
call fcn.005313d1
add esp, 0xc
jmp 0x551a23
mov dword [ebp - 0x58], 0xd
jmp 0x55236e
mov dword [ebp - 0x58], 0xd
jmp 0x552371
push 9
pop ecx
mov dword [ebp - 0x58], ecx
mov dword [esi + 0x5c], ecx
jmp 0x552391