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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x1e0
mov eax, dword [0x4a9a08]
xor eax, ebp
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x7c]
mov ecx, dword [eax]
and dword [ebp - 0x4c], 0
cmp dword [eax + 0x50], 0xbdf20da3
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x79]
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x88], cl
je 0x4564fa
push 0x15
pop eax
jmp 0x459246
cmp dword [eax + 0x80], 7
push ebx
mov ebx, dword [eax + 0x2c]
push esi
push edi
mov dword [ebp - 0x50], ebx
je 0x456742
mov esi, eax
mov eax, dword [esi + 0x22c]
and dword [esi + 0x80], 0
test eax, eax
je 0x456537
push eax
lea edi, [ebp - 0x50]
call fcn.00456375
and dword [esi + 0x22c], 0
mov ebx, dword [ebp - 0x50]
pop ecx
mov eax, dword [ebp - 0x5c]
mov byte [esi + 0x234], 0
and dword [eax + 0xd4], 0
test byte [eax + 8], 4
jne 0x459381
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x64], eax
call fcn.00449e7f
test eax, eax
jne 0x456742
mov ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x7c]
mov esi, ecx
imul esi, esi, 0x14
add esi, dword [edi + 0x18]
mov al, byte [esi]
mov byte [ebp - 0x71], al
movzx eax, al
lea edx, [eax - 1]
cmp edx, 0x8c
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x60], eax
ja case.0x456597.11
movzx edx, byte [edx + 0x459562]
jmp dword [edx*4 + 0x4593d2]
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459381
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
jmp case.0x456597.11
lea eax, [edi + 0x220]
mov edx, dword [eax]
inc ecx
mov dword [edi + edx*4 + 0x90], ecx
inc dword [eax]
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0x64], eax
jmp case.0x456597.11
lea eax, [edi + 0x220]
dec dword [eax]
mov eax, dword [eax]
mov edi, dword [edi + eax*4 + 0x90]
dec edi
mov dword [ebp - 0x64], edi
jmp case.0x456597.11
add ebx, 0x40
mov word [ebx + 0x18], 4
mov eax, dword [esi + 4]
cdq
mov dword [ebx], eax
mov dword [ebp - 0x50], ebx
mov dword [ebx + 4], edx
jmp case.0x456597.11
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov esi, dword [esi + 0xc]
push esi
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x10], esi
call sub.MSVCR80.dll_strlen
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.0044a2c0
mov dword [ebx], eax
pop ecx
mov dword [ebx + 4], edx
or word [ebx + 0x18], 4
pop ecx
jmp case.0x456597.11
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov esi, dword [esi + 0xc]
push esi
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x10], esi
call sub.MSVCR80.dll_strlen
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.0044a31f
mov dword [ebx + 8], eax
movzx eax, byte [ebp - 0x88]
push eax
mov dword [ebx + 0xc], edx
or word [ebx + 0x18], 8
push ebx
call fcn.0044a0a3
add esp, 0x10
jmp case.0x456597.11
push dword [esi + 0xc]
mov byte [esi], 0x18
call sub.MSVCR80.dll_strlen
pop ecx
mov dword [esi + 4], eax
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 4]
mov dword [ebx + 0x14], eax
mov al, byte [ebp - 0x88]
mov dword [ebp - 0x50], ebx
mov byte [ebx + 0x1b], al
jmp case.0x456597.11
add ebx, 0x40
mov word [ebx + 0x18], 1
and dword [ebx + 0x14], 0
mov dword [ebp - 0x50], ebx
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x44]
add ebx, 0x40
shl eax, 6
push 0x80
lea eax, [eax + ecx - 0x40]
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a480
add esp, 0xc
jmp case.0x456597.11
push dword [esi + 4]
lea edi, [ebp - 0x50]
call fcn.00456375
pop ecx
mov ebx, dword [ebp - 0x50]
inc dword [ebp - 0x64]
cmp dword [ebp - 0x4c], 0
je 0x456558
jmp 0x45915b
mov ecx, dword [esi + 4]
shl ecx, 6
mov eax, ebx
mov edi, 0x100
sub eax, ecx
push edi
add ebx, 0x40
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a480
add esp, 0xc
cmp dword [esi + 8], 0
je case.0x456597.11
test word [ebx + 0x18], di
je case.0x456597.11
push ebx
call fcn.0044a0be
test eax, eax
pop ecx
je case.0x456597.11
mov eax, dword [ebp - 0x7c]
push 0
add eax, 0x230
push str.out_of_memory
push eax
call fcn.00449f6d
add esp, 0xc
mov dword [ebp - 0x4c], 7
jmp 0x459165
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 4]
shl ecx, 6
mov eax, ebx
sub eax, ecx
test word [ebx + 0x18], 0x100
push 0x10
pop ecx
mov esi, eax
lea edi, [ebp - 0x48]
mov dword [ebp - 0x54], eax
rep movsd dword es:[edi], dword [esi]
je 0x456796
push ebx
call fcn.0044a0be
test eax, eax
pop ecx
jne 0x456742
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x78]
and dword [ebp - 0x68], 0
cmp dword [ecx + 4], 0
jle 0x4567f5
lea edx, [eax + 0x40]
mov dword [ebp - 0x6c], edx
test word [edx + 0x18], 0x100
je 0x4567c4
push dword [ebp - 0x6c]
call fcn.0044a0be
test eax, eax
pop ecx
jne 0x456742
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x54]
push 0x10
pop ecx
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
test word [edx - 0x28], 0x200
je 0x4567db
lea ecx, [edx - 0x20]
mov dword [edx - 0x30], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x68]
add eax, 0x40
add edx, 0x40
cmp esi, dword [ecx + 4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], edx
jl 0x4567a9
push 0x10
pop ecx
lea esi, [ebp - 0x48]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
test word [ebx + 0x18], 0x200
je case.0x456597.11
lea eax, [ebx + 0x20]
mov dword [ebx + 0x10], eax
jmp case.0x456597.11
mov eax, dword [esi + 4]
shl eax, 6
mov ecx, ebx
sub ecx, eax
push ebx
push ecx
call fcn.0044a4e8
pop ecx
pop ecx
sub ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp case.0x456597.11
mov edi, dword [esi + 4]
and dword [ebp - 0x6c], 0
and dword [ebp - 0x78], 0
inc edi
inc edi
mov eax, edi
shl eax, 6
mov ecx, ebx
sub ecx, eax
test edi, edi
lea eax, [ecx + 0x40]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x54], eax
jle 0x4568b1
mov eax, dword [ebp - 0x54]
movzx eax, word [eax + 0x18]
test al, 1
jne 0x456897
test al, 0x12
jne 0x456880
movzx eax, byte [ebp - 0x88]
push eax
push dword [ebp - 0x54]
call fcn.0044a19a
test eax, eax
pop ecx
pop ecx
jne 0x456742
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x14]
add dword [ebp - 0x6c], eax
inc dword [ebp - 0x78]
add dword [ebp - 0x54], 0x40
cmp dword [ebp - 0x78], edi
jl 0x456857
jmp 0x45689b
or dword [ebp - 0x6c], 0xffffffff
cmp dword [ebp - 0x6c], 0
jge 0x4568b1
cmp dword [esi + 8], 0
jne 0x456cb1
push edi
jmp 0x456ca5
mov eax, dword [ebp - 0x6c]
add eax, 2
push 1
push eax
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x78], eax
je 0x456742
and dword [ebp - 0x54], 0
test edi, edi
jle 0x45690c
mov eax, dword [ebp - 0x70]
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 4]
push ecx
push dword [eax]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x78]
add eax, ecx
push eax
call sub.MSVCR80.dll_memcpy
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x54], eax
add dword [ebp - 0x6c], 0x40
add esp, 0xc
dec dword [ebp - 0x60]
jne 0x4568e0
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x78]
add eax, ecx
mov byte [eax], 0
mov byte [eax + 1], 0
cmp dword [esi + 8], 0
jne 0x45692e
push edi
lea edi, [ebp - 0x50]
call fcn.00456375
mov ebx, dword [ebp - 0x50]
pop ecx
mov eax, dword [ebp - 0x54]
add ebx, 0x40
mov dword [ebx + 0x14], eax
mov al, byte [ebp - 0x88]
mov word [ebx + 0x18], 0x62
and dword [ebx + 0x1c], 0
mov byte [ebx + 0x1b], al
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x50], ebx
jmp 0x45680e
movzx edx, word [ebx + 0x18]
lea edi, [ebx - 0x40]
movzx ecx, word [edi + 0x18]
movzx eax, cx
movzx edx, dx
or eax, edx
mov dword [ebp - 0x70], eax
test al, 1
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0x58], edi
je 0x456988
test al, 0x40
je 0x456981
push ebx
call fcn.0044a275
pop ecx
mov ebx, edi
jmp 0x456a9c
and cl, al
test cl, 4
je 0x456a1b
mov edx, dword [ebp - 0x60]
sub edx, 0x4d
mov esi, dword [edi]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edi, dword [edi + 4]
je 0x4569eb
dec edx
je 0x4569e5
dec edx
je 0x4569d6
dec edx
mov edx, eax
je 0x4569c3
or edx, ecx
je 0x456a8c
push ecx
push eax
push edi
push esi
call fcn.00480920
jmp 0x4569df
or edx, ecx
je 0x456a8c
push ecx
push eax
push edi
push esi
call fcn.00480720
jmp 0x4569df
push ecx
push eax
push edi
push esi
call fcn.004806e0
mov esi, eax
mov edi, edx
jmp 0x4569ef
sub esi, eax
sbb edi, ecx
jmp 0x4569ef
add esi, eax
adc edi, ecx
movzx eax, word [ebx + 0x18]
test al, 0x40
je 0x4569fe
push ebx
call fcn.0044a275
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456a11
push ebx
call fcn.0044a275
pop ecx
mov dword [ebx], esi
mov dword [ebx + 4], edi
jmp 0x456d48
push ebx
call fcn.0044a31f
push dword [ebp - 0x58]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
call fcn.0044a31f
mov edi, eax
movzx eax, byte [esi]
sub eax, 0x4d
pop ecx
pop ecx
mov dword [ebp - 0xf4], edx
je 0x456b03
dec eax
je 0x456aef
dec eax
je 0x456ad1
dec eax
je 0x456a79
fild dword [ebp - 0xb0]
fcomp qword [0x48da40]
fnstsw ax
test ah, 0x44
jnp 0x456a8c
mov eax, edi
cdq
idiv dword [ebp - 0xb0]
mov eax, edx
cdq
jmp 0x456ae9
fild qword [ebp - 0xb0]
fcomp qword [0x48da40]
fnstsw ax
test ah, 0x44
jp 0x456ab7
test byte [ebx + 0x18], 0x40
je 0x456a99
push ebx
call fcn.0044a275
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456aac
push ebx
call fcn.0044a275
pop ecx
mov word [ebx + 0x18], 1
jmp case.0x456597.11
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xf4]
push edi
call fcn.00480720
jmp 0x456ae9
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xf4]
push edi
call fcn.004806e0
mov edi, eax
mov esi, edx
jmp 0x456b1b
sub edi, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xf4]
sbb esi, dword [ebp - 0xac]
jmp 0x456b1b
add edi, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xac]
adc dword [ebp - 0xf4], eax
mov esi, dword [ebp - 0xf4]
test byte [ebx + 0x18], 0x40
je 0x456b28
push ebx
call fcn.0044a275
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456b3b
push ebx
call fcn.0044a275
pop ecx
test byte [ebp - 0x70], 8
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
mov word [ebx + 0x18], 8
jne case.0x456597.11
push ebx
call fcn.0044a39a
pop ecx
jmp case.0x456597.11
mov eax, dword [edi + 0x30]
mov edx, dword [esi + 8]
mov dword [ebp - 0x60], eax
mov eax, edx
shl eax, 6
mov ecx, ebx
sub ecx, eax
add ecx, 0x40
xor edi, edi
test edx, edx
mov dword [ebp - 0x90], edx
jle 0x456b91
mov eax, dword [ebp - 0x60]
mov dword [eax + edi*4], ecx
call fcn.00456349
inc edi
add ecx, 0x40
cmp edi, edx
jl 0x456b7e
cmp dword [esi + 0x10], 0xfffffffb
mov eax, dword [esi + 0xc]
jne 0x456ba0
and dword [ebp - 4], 0
jmp 0x456ba5
mov dword [ebp - 4], eax
mov eax, dword [eax]
and dword [ebp + 0x10], 0
and dword [ebp + 0x1c], 0
mov dword [ebp - 8], eax
mov word [ebp + 0x18], 1
mov byte [ebp + 0x44], 0
cmp byte [eax + 3], 0
je 0x456bc6
mov eax, dword [esi - 8]
mov dword [ebp + 0x48], eax
push dword [ebp - 0x5c]
call fcn.00449c2f
test eax, eax
pop ecx
jne 0x459121
push dword [ebp - 0x60]
lea eax, [ebp - 8]
push dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 8]
call dword [eax + 0x10]
push dword [ebp - 0x5c]
call fcn.00449bff
add esp, 0x10
test eax, eax
jne 0x459121
call fcn.00449e7f
test eax, eax
jne 0x456742
push dword [ebp - 0x90]
lea edi, [ebp - 0x50]
call fcn.00456375
cmp dword [ebp - 4], 0
pop ecx
je 0x456c39
push dword [esi + 4]
push dword [ebp - 4]
call fcn.004542e4
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xfffffff9
cmp byte [ebp + 0x44], 0
je 0x456c64
lea eax, [ebp]
push 0
push eax
call fcn.00448ba5
pop ecx
push eax
mov eax, dword [ebp - 0x7c]
add eax, 0x230
push eax
call fcn.00449f6d
add esp, 0xc
mov dword [ebp - 0x4c], 1
movzx eax, byte [ebp - 0x88]
push eax
lea eax, [ebp]
push eax
call fcn.0044a0a3
mov ebx, dword [ebp - 0x50]
and word [ebx + 0x58], 0
add ebx, 0x40
lea eax, [ebp]
push eax
push ebx
mov dword [ebp - 0x50], ebx
call fcn.0044a4e8
jmp 0x45667d
lea eax, [ebx - 0x40]
mov cl, byte [eax + 0x18]
or cl, byte [ebx + 0x18]
mov dword [ebp - 0x58], eax
test cl, 1
je 0x456cbc
push 2
lea edi, [ebp - 0x50]
call fcn.00456375
pop ecx
mov ebx, dword [ebp - 0x50]
add ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp 0x456aac
push eax
call fcn.0044a2c0
push ebx
mov edi, eax
mov dword [ebp - 0xcc], edx
call fcn.0044a2c0
pop ecx
pop ecx
mov ecx, eax
movzx eax, byte [esi]
sub eax, 0x49
je 0x456d15
dec eax
je 0x456d0b
dec eax
je 0x456cf4
dec eax
jne 0x456d1d
mov edx, dword [ebp - 0xcc]
mov eax, edi
call fcn.004808f0
jmp 0x456d01
mov edx, dword [ebp - 0xcc]
mov eax, edi
call fcn.004808d0
mov edi, eax
mov dword [ebp - 0xcc], edx
jmp 0x456d1d
or edi, ecx
or dword [ebp - 0xcc], edx
jmp 0x456d1d
and edi, ecx
and dword [ebp - 0xcc], edx
test byte [ebx + 0x18], 0x40
je 0x456d2a
push ebx
call fcn.0044a275
pop ecx
mov ebx, dword [ebp - 0x58]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x50], ebx
je 0x456d3d
push ebx
call fcn.0044a275
pop ecx
mov eax, dword [ebp - 0xcc]
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov word [ebx + 0x18], 4
jmp case.0x456597.11
push ebx
call fcn.0044a3bd
mov eax, dword [esi + 4]
cdq
add dword [ebx], eax
pop ecx
adc dword [ebx + 4], edx
jmp case.0x456597.11
push dword [ebp - 0x88]
mov eax, ebx
push 0x63
call fcn.00456444
movzx eax, word [ebx + 0x18]
test al, 0xc
pop ecx
pop ecx
jne 0x456d97
test al, 0x40
je 0x456d8c
push ebx
call fcn.0044a275
pop ecx
sub ebx, 0x40
mov dword [ebp - 0x50], ebx
jmp 0x4565ab
test al, 4
je 0x456db0
xor ecx, ecx
xor eax, eax
cmp dword [esi + 4], ecx
je 0x456da5
inc eax
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
add edi, eax
adc esi, ecx
jmp 0x456e05
push ebx
call fcn.0044a3df
mov eax, dword [ebx + 8]
cdq
mov edi, eax
mov eax, dword [ebx + 0xc]
cmp eax, edx
pop ecx
mov dword [ebp - 0xec], edx
jl 0x456ddd
jg 0x456dd3
mov eax, dword [ebx + 8]
cmp eax, edi
jbe 0x456ddd
add edi, 1
adc dword [ebp - 0xec], 0
cmp dword [esi + 4], 0
je 0x456dff
mov eax, dword [ebx + 8]
cmp eax, edi
jne 0x456dff
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp - 0xec]
jne 0x456dff
add edi, 1
adc dword [ebp - 0xec], 0
mov esi, dword [ebp - 0xec]
test byte [ebx + 0x18], 0x40
je 0x456e12
push ebx
call fcn.0044a275
pop ecx
mov dword [ebx], edi
mov dword [ebx + 4], esi
jmp 0x456d48
push dword [ebp - 0x88]
mov eax, ebx
push 0x63
call fcn.00456444
movzx eax, word [ebx + 0x18]
test al, 4
pop ecx
pop ecx
jne 0x456e5c
cmp dword [esi + 8], 0
je 0x4592e7
cmp dword [esi + 4], 0
je 0x4565ab
push 1
lea edi, [ebp - 0x50]
call fcn.00456375
mov ebx, dword [ebp - 0x50]
pop ecx
jmp 0x4565ab
test al, 0x40
je 0x456d48
push ebx
call fcn.0044a275
pop ecx
jmp 0x456d48
test byte [ebx + 0x18], 4
je case.0x456597.11
push ebx
call fcn.0044a3df
jmp 0x456b57
test byte [ebx + 0x18], 1
jne case.0x456597.11
movzx eax, word [ebx + 0x18]
push dword [ebp - 0x88]
movzx ecx, al
shr cl, 3
push 0x61
and ecx, 2
or ecx, eax
mov eax, ebx
mov word [ebx + 0x18], cx
call fcn.00456444
and word [ebx + 0x18], 0xffe3
pop ecx
pop ecx
jmp case.0x456597.11
movzx eax, word [ebx + 0x18]
test al, 1
jne case.0x456597.11
test al, 0x10
jne 0x456ee4
push dword [ebp - 0x88]
mov eax, ebx
push 0x61
call fcn.00456444
or word [ebx + 0x18], 0x10
pop ecx
pop ecx
and word [ebx + 0x18], 0xfff1
jmp case.0x456597.11
test byte [ebx + 0x18], 1
jne case.0x456597.11
push ebx
call fcn.0044a402
jmp 0x456b57
test byte [ebx + 0x18], 1
jne case.0x456597.11
push ebx
call fcn.0044a3bd
jmp 0x456b57
test byte [ebx + 0x18], 1
jne case.0x456597.11
jmp 0x456e7a
movzx eax, word [ebx + 0x18]
lea edi, [ebx - 0x40]
mov cl, byte [edi + 0x18]
or cl, al
test cl, 1
je 0x456f68
test word [esi + 4], 0x200
je 0x456fc8
not eax
and eax, 1
cdq
push edx
push eax
push ebx
call fcn.0044a435
movzx eax, word [edi + 0x18]
not eax
and eax, 1
cdq
push edx
push eax
push edi
call fcn.0044a435
add esp, 0x18
mov al, byte [esi + 4]
test al, al
mov byte [ebp - 0x10c], al
je 0x456f9e
push dword [ebp - 0x88]
mov eax, edi
push dword [ebp - 0x10c]
call fcn.00456444
push dword [ebp - 0x88]
mov eax, ebx
push dword [ebp - 0x10c]
call fcn.00456444
add esp, 0x10
push dword [esi + 0xc]
push ebx
push edi
call fcn.0044a786
movzx ecx, byte [esi]
add esp, 0xc
sub ecx, 0x42
je 0x457017
dec ecx
je 0x45700e
dec ecx
je 0x457005
dec ecx
je 0x456ffc
dec ecx
je 0x456ff3
xor ecx, ecx
test eax, eax
setge cl
jmp 0x45701e
push 2
lea edi, [ebp - 0x50]
call fcn.00456375
mov eax, dword [esi + 8]
test eax, eax
pop ecx
je 0x456cae
test word [esi + 4], 0x100
je 0x4566f6
dec eax
mov dword [ebp - 0x64], eax
jmp 0x4566f6
xor ecx, ecx
test eax, eax
setl cl
jmp 0x45701e
xor ecx, ecx
test eax, eax
setle cl
jmp 0x45701e
xor ecx, ecx
test eax, eax
setg cl
jmp 0x45701e
xor ecx, ecx
test eax, eax
sete cl
jmp 0x45701e
xor ecx, ecx
test eax, eax
setne cl
push 2
lea edi, [ebp - 0x50]
mov dword [ebp - 0x68], ecx
call fcn.00456375
mov esi, dword [esi + 8]
test esi, esi
pop ecx
je 0x457046
cmp dword [ebp - 0x68], 0
je 0x4566f6
dec esi
mov dword [ebp - 0x64], esi
jmp 0x4566f6
mov ebx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x68]
add ebx, 0x40
mov word [ebx + 0x18], 4
jmp 0x4565fb
test byte [ebx + 0x18], 1
lea edi, [ebx - 0x40]
je 0x457068
push 2
pop ebx
jmp 0x45707d
push ebx
call fcn.0044a3bd
mov eax, dword [ebx]
or eax, dword [ebx + 4]
pop ecx
jne 0x45707b
xor ebx, ebx
inc ebx
jmp 0x45707d
xor ebx, ebx
test byte [edi + 0x18], 1
je 0x457088
push 2
pop eax
jmp 0x45709d
push edi
call fcn.0044a3bd
mov eax, dword [edi]
or eax, dword [edi + 4]
pop ecx
jne 0x45709b
xor eax, eax
inc eax
jmp 0x45709d
xor eax, eax
imul ebx, ebx, 3
cmp byte [esi], 0x3c
jne 0x4570af
movzx esi, byte [ebx + eax + 0x4928cc]
jmp 0x4570b7
movzx esi, byte [ebx + eax + 0x4928d8]
push 2
lea edi, [ebp - 0x50]
call fcn.00456375
mov ebx, dword [ebp - 0x50]
add ebx, 0x40
cmp esi, 2
pop ecx
mov dword [ebp - 0x50], ebx
je 0x456aac
xor eax, eax
test esi, esi
sete al
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x456d48
movzx eax, word [ebx + 0x18]
test al, 8
jne 0x457137
test al, 4
je 0x457128
test al, 0x40
je 0x4570fd
push ebx
call fcn.0044a275
pop ecx
cmp byte [esi], 0x53
je 0x457117
cmp dword [ebx + 4], 0
jg 0x456d48
jl 0x457117
cmp dword [ebx], 0
jae 0x456d48
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
neg eax
adc ecx, 0
neg ecx
jmp 0x4571b8
test al, 1
jne case.0x456597.11
push ebx
call fcn.0044a402
pop ecx
test byte [ebx + 0x18], 0x40
je 0x457144
push ebx
call fcn.0044a275
pop ecx
cmp byte [esi], 0x53
je 0x457159
fild qword [ebx + 8]
fcomp qword [0x48da40]
fnstsw ax
test ah, 5
jp 0x45716c
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
neg eax
adc ecx, 0
neg ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov word [ebx + 0x18], 8
jmp case.0x456597.11
test byte [ebx + 0x18], 1
jne case.0x456597.11
push ebx
call fcn.0044a3bd
mov eax, dword [ebx]
or eax, dword [ebx + 4]
pop ecx
jne 0x457197
xor eax, eax
inc eax
jmp 0x4570db
xor eax, eax
jmp 0x4570db
test byte [ebx + 0x18], 1
jne case.0x456597.11
push ebx
call fcn.0044a3bd
mov eax, dword [ebx]
pop ecx
mov ecx, dword [ebx + 4]
not eax
not ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x456d48
test byte [ebx + 0x18], 1
je 0x4571cd
mov edi, dword [esi + 4]
jmp 0x4571e4
push ebx
call fcn.0044a2c0
cmp byte [esi], 0x48
pop ecx
mov edi, eax
jne 0x4571e4
xor eax, eax
test edi, edi
sete al
mov edi, eax
test byte [ebx + 0x18], 0x40
je 0x4571f1
push ebx
call fcn.0044a275
pop ecx
sub ebx, 0x40
test edi, edi
mov dword [ebp - 0x50], ebx
je case.0x456597.11
jmp 0x4565ab
mov edi, dword [esi + 4]
mov ecx, edi
test ecx, ecx
jge 0x45720f
neg ecx
mov edx, ecx
shl edx, 6
mov eax, ebx
sub eax, edx
add eax, 0x40
xor edx, edx
test ecx, ecx
jle 0x45723a
add eax, 0x18
test byte [eax], 1
jne 0x457233
inc edx
add eax, 0x40
cmp edx, ecx
jl 0x457224
jmp 0x45723a
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
test edi, edi
jle case.0x456597.11
push ecx
jmp 0x4566ed
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [ebp - 0x54], ecx
jge 0x457254
neg ecx
xor edx, edx
test ecx, ecx
jle 0x457277
mov edi, ecx
shl edi, 6
mov eax, ebx
sub eax, edi
add eax, 0x58
test byte [eax], 1
jne 0x457273
inc edx
add eax, 0x40
cmp edx, ecx
jl 0x457266
cmp edx, ecx
jl 0x45727e
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
cmp dword [ebp - 0x54], 0
jmp 0x45723c
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 8]
mov dword [eax + 0x50], ecx
jmp case.0x456597.11
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 0x40
mov word [ebp + 0x28], dx
mov word [ebx + 0x18], 1
mov dword [ebp - 0x9c], ecx
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
cmp dword [eax], edx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x58], eax
je 0x457350
push eax
call fcn.00454328
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
and dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1c], 0
mov ecx, dword [eax]
mov dword [ebp - 0x68], ecx
je 0x4572f3
and dword [ebp - 0x98], 0
jmp 0x457343
mov ecx, dword [eax + 0x60]
cmp ecx, dword [edi + 0x60]
jne 0x45730c
mov ecx, dword [eax + 0x64]
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x78], ecx
jmp 0x457343
cmp byte [eax + 0x21], 0
je 0x45732f
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x68]
call fcn.00451dfb
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x98], eax
jmp 0x45733e
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 0x68]
call fcn.00451e47
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x58]
xor edx, edx
jmp 0x45737f
cmp byte [eax + 0x1e], 0
mov dword [ebp - 0x68], edx
je 0x457373
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x78], ecx
mov ecx, dword [eax + 0x50]
mov dword [eax + 0x60], edx
mov dword [ebp - 0x6c], ecx
jmp 0x45737f
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x98], edx
je case.0x456597.11
mov ecx, dword [eax + 0x60]
cmp ecx, dword [edi + 0x60]
jne 0x4573a1
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x54], ecx
jmp 0x457559
mov eax, dword [eax + 0x68]
cmp eax, edx
mov dword [ebp - 0x54], eax
jne 0x4573cc
mov eax, dword [ebp - 0x6c]
shl eax, 3
push 1
push eax
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x54], eax
mov dword [ecx + 0x68], eax
je 0x456742
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x6c]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xbc], ecx
mov dword [eax + 0x6c], ecx
mov ecx, dword [ebp - 0x98]
mov dword [eax + 0x64], ecx
mov ecx, dword [edi + 0x60]
mov edi, dword [ebp - 0x78]
test edi, edi
mov dword [eax + 0x60], ecx
jne 0x457434
cmp byte [eax + 0x21], 0
lea eax, [ebp - 0xe8]
push eax
push dword [ebp - 0x68]
je 0x45740e
call fcn.0044f490
jmp 0x457413
call fcn.0044f4ae
mov edi, eax
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
jb 0x457430
mov dword [ebp - 0x78], edi
mov dword [eax + 0x70], edi
jmp 0x457434
and dword [eax + 0x70], 0
movzx eax, byte [edi]
cmp eax, 0x7f
mov dword [ebp - 0xa0], eax
ja 0x45744b
mov dword [ebp - 0x60], 1
jmp 0x45745d
lea eax, [ebp - 0xa0]
push eax
push edi
call fcn.00449de0
pop ecx
pop ecx
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x78], 0
jne 0x457499
mov eax, dword [ebp - 0xa0]
cmp dword [ebp - 0xe8], eax
jae 0x457499
lea ecx, [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x58]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
push 0
push dword [ebp - 0x68]
call fcn.0044a5db
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne case.0x456597.11
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 0xa0]
add eax, edi
cmp dword [ebp - 0x6c], 0
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x60]
lea ecx, [eax + edi]
mov dword [ebp - 0x4c], ecx
jbe 0x45751a
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x6c]
sub eax, edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x60], edx
cmp ecx, dword [ebp - 0x90]
jae 0x45750e
mov edx, dword [ebp - 0xa0]
mov dword [eax + edi], edx
movzx eax, byte [ecx]
cmp eax, 0x7f
mov dword [edi], eax
ja 0x4574ea
xor eax, eax
inc eax
jmp 0x4574f5
push edi
push dword [ebp - 0x4c]
call fcn.00449de0
pop ecx
pop ecx
push dword [edi]
add dword [ebp - 0x4c], eax
call fcn.0045446a
add dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x70]
pop ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x457512
and dword [eax + edi], 0
add edi, 4
dec dword [ebp - 0x60]
jne 0x4574ca
test byte [ebp + 0x28], 0x40
je 0x45752d
lea eax, [ebp + 0x10]
push eax
call fcn.0044a275
pop ecx
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x90]
mov word [ebp + 0x28], 1
ja 0x457609
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x98]
ja 0x457609
mov eax, dword [ebp - 0xbc]
xor edx, edx
mov edi, dword [ebp - 0x9c]
shl edi, 2
add eax, edi
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
cmp eax, edx
je 0x4575c9
mov ecx, dword [ebp - 0x78]
cmp ecx, edx
je 0x457578
add eax, ecx
jmp 0x4575ae
mov eax, dword [ebp - 0x54]
push dword [eax + edi]
call fcn.0045446a
lea ecx, [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x58]
movzx ecx, byte [ecx + 0x21]
push ecx
push eax
mov eax, dword [ebp - 0x70]
push dword [eax]
push dword [ebp - 0x68]
call fcn.0044a5db
add esp, 0x18
test eax, eax
mov dword [ebp - 0x4c], eax
jne case.0x456597.11
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x54]
push ebx
push dword [ecx + edi]
push eax
call fcn.004544f7
mov al, byte [ebp - 0x88]
add esp, 0xc
mov byte [ebx + 0x1b], al
jmp 0x4575e8
cmp dword [esi + 0x10], 0xfffffff8
jne 0x4575e2
push 0x80
push dword [esi + 0xc]
push ebx
call fcn.0044a480
add esp, 0xc
jmp 0x4575e8
mov word [ebx + 0x18], 1
test byte [ebp + 0x28], 0x40
je 0x4575fe
mov ax, word [ebx + 0x18]
and ax, 0xfeff
or ax, 0x60
mov word [ebx + 0x18], ax
push ebx
call fcn.0044a0be
jmp 0x4578d5
mov dword [ebp - 0x4c], 0xb
jmp case.0x456597.11
mov eax, dword [esi + 4]
xor ecx, ecx
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x6c], ecx
test edx, edx
sete cl
mov dword [ebp - 0x108], edx
lea ecx, [ecx + ecx - 1]
imul ecx, eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x8c], eax
xor eax, eax
cmp byte [esi], 0x33
mov dword [ebp - 0x9c], ecx
sete al
and dword [ebp - 0x70], 0
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xbc], eax
mov eax, ecx
movzx ecx, byte [edi + 0x239]
shl eax, 6
mov esi, ebx
sub esi, eax
lea eax, [esi + 0x40]
cmp eax, ebx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x58], ecx
mov edi, eax
ja 0x4576fb
mov dword [ebp - 0x78], 0xffffffe8
sub dword [ebp - 0x78], eax
cmp dword [ebp - 0xbc], 0
je 0x4576bc
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0x88]
lea eax, [edi + eax + 0x18]
sar eax, 6
movzx eax, byte [eax + ecx]
push eax
mov eax, edi
call fcn.00456444
pop ecx
pop ecx
test byte [edi + 0x18], 1
je 0x4576c9
mov dword [ebp - 0x70], 1
push dword [ebp - 0x58]
push edi
call fcn.004543a0
push eax
mov dword [ebp - 0xb4], eax
call fcn.0045446a
add dword [ebp - 0x54], eax
push 0
push dword [ebp - 0xb4]
call fcn.00449e40
add dword [ebp - 0x6c], eax
add edi, 0x40
add esp, 0x14
cmp edi, ebx
jbe 0x45768f
cmp dword [ebp - 0x90], 0
je 0x457732
push esi
mov dword [ebp - 0x60], esi
call fcn.0044a3bd
push 0
push esi
call fcn.004543a0
mov esi, eax
push esi
call fcn.0045446a
add dword [ebp - 0x54], eax
push 0
push esi
call fcn.00449e40
mov esi, dword [ebp - 0x6c]
add esp, 0x18
add esi, eax
jmp 0x457735
mov esi, dword [ebp - 0x6c]
mov eax, esi
cdq
push edx
push eax
call fcn.00449e40
mov edi, eax
add esi, edi
mov eax, esi
cdq
push edx
push eax
call fcn.00449e40
add esp, 0x10
cmp edi, eax
jge 0x457755
inc esi
mov eax, dword [ebp - 0x54]
add eax, esi
cmp eax, 0x20
mov dword [ebp - 0xb4], eax
jbe 0x45777c
push 1
push eax
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je 0x456742
jmp 0x457782
lea eax, [ebp + 0x50]
mov dword [ebp - 0x54], eax
mov eax, esi
cdq
push edx
push eax
push dword [ebp - 0x54]
call fcn.00449c86
mov esi, dword [ebp - 0x68]
mov edi, eax
add edi, dword [ebp - 0x54]
add esp, 0xc
cmp esi, ebx
ja 0x4577bc
push dword [ebp - 0x58]
push esi
call fcn.004543a0
push 0
push eax
push edi
call fcn.00449c86
add esi, 0x40
add esp, 0x14
add edi, eax
cmp esi, ebx
jbe 0x45779e
xor esi, esi
cmp dword [ebp - 0x90], esi
je 0x4577dc
push esi
push dword [ebp - 0x60]
call fcn.004543a0
push esi
push eax
push edi
call fcn.00449c86
add esp, 0x14
add edi, eax
mov esi, dword [ebp - 0x68]
jmp 0x4577f3
push dword [ebp - 0x58]
push esi
push edi
call fcn.00454481
add esp, 0xc
add edi, eax
add esi, 0x40
cmp esi, ebx
jbe 0x4577e1
mov esi, dword [ebp - 0x90]
test esi, esi
je 0x45780f
push 0
push dword [ebp - 0x60]
push edi
call fcn.00454481
add esp, 0xc
cmp dword [ebp - 0x108], 0
jne 0x45782d
mov eax, dword [ebp - 0x9c]
add esi, eax
push esi
lea edi, [ebp - 0x50]
call fcn.00456375
mov ebx, dword [ebp - 0x50]
pop ecx
mov ecx, dword [ebp - 0xb4]
add ebx, 0x40
cmp ecx, 0x20
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x14], ecx
ja 0x45785d
push ecx
lea ecx, [ebp + 0x50]
lea eax, [ebx + 0x20]
push ecx
push eax
mov dword [ebx + 0x10], eax
call sub.MSVCR80.dll_memcpy
add esp, 0xc
mov word [ebx + 0x18], 0x210
jmp 0x45786d
mov eax, dword [ebp - 0x54]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x50
and dword [ebx + 0x1c], 0
mov eax, dword [ebp - 0x8c]
test eax, eax
mov byte [ebx + 0x1b], 1
je case.0x456597.11
cmp dword [ebp - 0x70], 0
je case.0x456597.11
jmp 0x4565cc
mov esi, dword [esi + 4]
test esi, esi
jl case.0x456597.11
mov eax, dword [ebp - 0x5c]
cmp esi, dword [eax]
jge case.0x456597.11
mov ecx, dword [eax + 4]
imul esi, esi, 0x18
mov esi, dword [esi + ecx + 4]
test esi, esi
je case.0x456597.11
cmp byte [eax + 0x10], 0
jne case.0x456597.11
push esi
call fcn.004519a2
test eax, eax
pop ecx
jne case.0x456597.11
push esi
call fcn.0044f23a
pop ecx
mov dword [ebp - 0x4c], eax
jmp case.0x456597.11
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x4c], 1
mov cl, byte [esi + 4]
mov dl, byte [esi + 8]
mov byte [ebp - 0x71], cl
jle 0x457926
test cl, cl
je 0x457926
cmp byte [eax + 0x10], 0
jne 0x457926
test dl, dl
mov eax, str.rollback
jne 0x457908
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
push str.cannot
add edi, 0x230
push edi
call fcn.00449f6d
add esp, 0x14
jmp 0x45795a
cmp cl, byte [eax + 0x10]
jne 0x4592f3
test cl, cl
jne 0x45793a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x457948
test dl, dl
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x457948
mov eax, str.cannot_commit___no_transaction_is_active
push 0
push eax
add edi, 0x230
push edi
call fcn.00449f6d
add esp, 0xc
mov dword [ebp - 0x4c], 1
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
imul eax, eax, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx + 4]
test eax, eax
je case.0x456597.11
push dword [esi + 8]
push eax
call fcn.0044eeae
pop ecx
pop ecx
push 5
pop ecx
cmp eax, ecx
mov dword [ebp - 0x4c], eax
je 0x459343
test eax, eax
je case.0x456597.11
cmp eax, 8
jne 0x459128
jmp case.0x456597.11
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
lea eax, [ebp - 0x13c]
push eax
mov eax, dword [esi + 8]
inc eax
push eax
mov eax, dword [esi + 4]
imul eax, eax, 0x18
push dword [eax + ecx + 4]
call fcn.00451250
add esp, 0xc
add ebx, 0x40
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x50], ebx
jmp 0x4570db
mov edi, dword [esi + 4]
mov eax, dword [ebp - 0x5c]
imul edi, edi, 0x18
add edi, dword [eax + 4]
push ebx
call fcn.0044a3bd
push dword [ebx]
mov eax, dword [esi + 8]
inc eax
push eax
push dword [edi + 4]
call fcn.004512a4
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 8]
add esp, 0x10
test eax, eax
jne 0x457a23
mov eax, dword [edi + 0x14]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov eax, dword [ebp - 0x5c]
or dword [eax + 8], 0x10
jmp 0x457a30
cmp eax, 1
jne 0x457a30
mov eax, dword [edi + 0x14]
mov cl, byte [ebx]
mov byte [eax + 0x78], cl
sub ebx, 0x40
cmp dword [esi + 4], 1
mov dword [ebp - 0x50], ebx
jne case.0x456597.11
push dword [ebp - 0x5c]
call fcn.00454a4d
jmp 0x456b57
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
imul eax, eax, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x457a78
lea ecx, [ebp - 0x118]
push ecx
push 1
push eax
call fcn.00451250
add esp, 0xc
mov dword [ebp - 0x4c], eax
jmp 0x457a83
and dword [ebp - 0x4c], 0
and dword [ebp - 0x118], 0
cmp dword [ebp - 0x4c], 0
jne case.0x456597.11
mov eax, dword [ebp - 0x118]
cmp eax, dword [esi + 8]
je case.0x456597.11
push 0
push str.database_schema_has_changed
add edi, 0x230
push edi
call fcn.00449f6d
add esp, 0xc
mov dword [ebp - 0x4c], 0x11
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 8]
push ebx
mov dword [ebp - 0x60], eax
call fcn.0044a3bd
mov eax, dword [ebx]
mov dword [ebp - 0x8c], eax
imul eax, eax, 0x18
pop ecx
mov ecx, dword [ebp - 0x5c]
add eax, dword [ecx + 4]
sub ebx, 0x40
cmp byte [esi], 8
mov ecx, dword [eax + 4]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x9c], ecx
jne 0x457b14
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x78]
lea ecx, [edi + 0x239]
cmp al, byte [ecx]
mov dword [ebp - 0x70], 1
jae 0x457b18
mov byte [ecx], al
jmp 0x457b18
and dword [ebp - 0x70], 0
cmp dword [ebp - 0x60], 0
jg 0x457b30
push ebx
call fcn.0044a3bd
mov eax, dword [ebx]
sub ebx, 0x40
pop ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x50], ebx
push dword [ebp - 0x8c]
mov eax, dword [ebp - 0xb4]
call fcn.00456399
mov edi, eax
test edi, edi
pop ecx
je 0x456742
cmp dword [ebp - 0x9c], 0
mov byte [edi + 0x1c], 1
je case.0x456597.11
push edi
push dword [esi + 0xc]
push fcn.004546a7
push dword [ebp - 0x70]
push dword [ebp - 0x60]
push dword [ebp - 0x9c]
call fcn.00451cb8
mov ecx, dword [ebp - 0x7c]
add esp, 0x18
cmp dword [esi + 0x10], 0xfffffffa
mov dword [ebp - 0x4c], eax
jne 0x457ba2
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov edx, dword [edi + 0x4c]
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [edx], al
jmp 0x457bac
and dword [edi + 0x4c], 0
lea eax, [edi + 0x22]
mov dword [edi + 0x48], eax
cmp dword [ebp - 0x4c], 0
je 0x457be3
push 5
pop eax
cmp dword [ebp - 0x4c], eax
je 0x459353
cmp dword [ebp - 0x4c], 0x10
jne 0x459128
cmp dword [esi + 0x10], 0xfffffffa
setne al
test al, al
mov byte [edi + 0x20], al
sete al
and dword [ebp - 0x4c], 0
mov byte [edi + 0x21], al
jmp case.0x456597.11
push dword [edi]
call fcn.004512e4
test al, 0xf0
pop ecx
jne 0x457c29
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x457bfe
cmp ecx, 2
jne 0x457c29
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [edi + 0x20], cl
mov byte [edi + 0x21], al
je 0x457c17
cmp dword [esi + 0x10], 0xfffffffa
je 0x457c29
test al, al
je case.0x456597.11
cmp dword [esi + 0x10], 0xfffffffa
je case.0x456597.11
mov dword [ebp - 0x4c], 0xb
jmp 0x459128
mov eax, dword [esi + 4]
push 0xffffffffffffffff
call fcn.00456399
mov edi, eax
test edi, edi
pop ecx
je 0x456742
lea eax, [edi + 0x30]
push eax
push 0x1f4
push 1
push 0
push dword [ebp - 0x5c]
mov byte [edi + 0x1c], 1
call fcn.004487fe
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x457d0b
push 1
push dword [edi + 0x30]
call fcn.0044eeae
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x457d0b
cmp dword [esi + 0xc], eax
je 0x457cea
push 2
lea eax, [ebp - 0x130]
push eax
push dword [edi + 0x30]
call fcn.00452055
add esp, 0xc
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x457ce4
push edi
push dword [esi + 0xc]
push fcn.004546a7
push 1
push dword [ebp - 0x130]
push dword [edi + 0x30]
call fcn.00451cb8
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x4c], eax
mov ecx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x79]
mov byte [eax], cl
mov eax, dword [edi + 0x4c]
add esp, 0x18
inc eax
mov dword [edi + 0x48], eax
mov byte [edi + 0x20], 0
jmp 0x457d0b
push edi
push 0
push 0
push 1
push 1
push dword [edi + 0x30]
call fcn.00451cb8
mov dword [ebp - 0x4c], eax
lea eax, [edi + 0x22]
add esp, 0x18
mov byte [edi + 0x20], 1
mov dword [edi + 0x48], eax
mov eax, dword [esi + 8]
cmp byte [edi + 0x20], 0
mov dword [edi + 0x50], eax
sete al
mov byte [edi + 0x21], al
jmp case.0x456597.11
mov eax, dword [esi + 4]
push 0xffffffffffffffff
call fcn.00456399
test eax, eax
pop ecx
je 0x456742
lea ecx, [eax + 0x22]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov dword [eax + 0x48], ecx
mov byte [eax + 0x20], 1
mov byte [eax + 0x21], 0
jmp case.0x456597.11
mov esi, dword [esi + 4]
test esi, esi
jl case.0x456597.11
cmp esi, dword [edi + 0x38]
jge case.0x456597.11
mov eax, dword [edi + 0x3c]
shl esi, 2
push dword [eax + esi]
call fcn.00453dcc
mov eax, dword [edi + 0x3c]
and dword [esi + eax], 0
pop ecx
jmp case.0x456597.11
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x3c]
mov edi, dword [edx + ecx*4]
cmp dword [edi], 0
je 0x457ebf
cmp eax, 6
mov byte [edi + 0x1c], 0
je 0x457da1
cmp eax, 0x3f
je 0x457da1
xor eax, eax
jmp 0x457da4
xor eax, eax
inc eax
mov ecx, dword [edi + 0x48]
mov byte [ecx], al
cmp byte [edi + 0x20], 0
je 0x457e0f
push ebx
call fcn.0044a3bd
cmp dword [esi + 8], 0
mov eax, dword [ebx]
pop ecx
mov ecx, dword [ebx + 4]
jne 0x457dd5
cmp byte [esi], 0x78
jne 0x457dd5
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
mov byte [edi + 0x1f], 1
jmp 0x456829
lea edx, [ebp - 0x94]
push edx
push ecx
push eax
push 0
push dword [edi]
call fcn.0044f6e3
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x459128
mov eax, dword [ebx]
cmp dword [ebp - 0x94], 0
mov dword [edi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
sete al
mov byte [edi + 0x19], al
jmp 0x457e37
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push dword [edi]
call fcn.0044f6e3
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x459128
mov byte [edi + 0x19], al
mov ecx, dword [edi + 0x48]
xor eax, eax
mov byte [edi + 0x1f], 0
mov dword [edi + 0x60], eax
mov byte [ecx], al
inc dword [0x4aaab4]
cmp dword [ebp - 0x60], 0x78
je 0x457e93
cmp dword [ebp - 0x60], 6
je 0x457e93
cmp dword [ebp - 0x94], eax
jl 0x457e6f
lea eax, [ebp - 0x94]
push eax
push dword [edi]
call fcn.00451fa1
jmp 0x457ea9
push dword [edi]
call fcn.0044f931
pop ecx
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x457ebf
mov esi, dword [esi + 8]
test esi, esi
jle 0x457ebb
dec esi
mov dword [ebp - 0x64], esi
jmp 0x457ebf
cmp dword [ebp - 0x94], eax
jge 0x457e77
lea eax, [ebp - 0x94]
push eax
push dword [edi]
call fcn.00451ec1
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
mov byte [edi + 0x19], al
jmp 0x457e7d
mov byte [edi + 0x1c], 1
test byte [ebx + 0x18], 0x40
je 0x456829
push ebx
call fcn.0044a275
jmp 0x456828
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x3c]
mov edi, dword [edx + ecx*4]
xor eax, eax
cmp dword [edi], eax
je 0x457f34
test byte [ebx + 0x18], 0x12
jne 0x457f01
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.0044a19a
test eax, eax
pop ecx
pop ecx
jne 0x456742
lea eax, [ebp - 0x124]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push dword [edi]
call fcn.0044f6e3
add esp, 0x14
test eax, eax
jne 0x457f2a
cmp dword [ebp - 0x124], eax
jne 0x457f2a
inc eax
jmp 0x457f2c
xor eax, eax
and dword [edi + 0x60], 0
mov byte [edi + 0x1f], 0
mov cl, byte [esi]
cmp cl, 0x7b
jne 0x457f41
test eax, eax
je 0x457f4c
jmp 0x457f45
test eax, eax
jne 0x457f4c
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
cmp cl, 0x6a
je case.0x456597.11
jmp 0x457ebf
mov eax, dword [esi + 4]
mov dword [ebp - 0x8c], eax
lea eax, [ebx - 0x40]
push ebx
mov dword [ebp - 0x58], eax
call fcn.0044a3bd
mov eax, dword [ebx]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x134], eax
mov eax, dword [edi + 0x3c]
pop ecx
mov ecx, dword [ebp - 0x8c]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi]
test eax, eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x60], eax
je case.0x456597.11
mov eax, ebx
test byte [eax + 0x18], 0x12
jne 0x457fc0
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.0044a19a
test eax, eax
pop ecx
pop ecx
jne 0x456742
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x8c], eax
call fcn.004548af
mov ecx, dword [ebp - 0x8c]
and dword [edi + 0x60], 0
sub ecx, eax
lea eax, [ebp - 0xb8]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp - 0x70]
mov dword [ebp - 0x8c], ecx
push dword [ebp - 0x60]
call fcn.0044f6e3
add esp, 0x18
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x459128
cmp dword [ebp - 0xb8], eax
jge 0x458038
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0x60]
call fcn.00451ec1
cmp dword [ebp - 0xb8], 0
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x4565ab
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x8c]
push edi
call fcn.004549a3
add esp, 0x10
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x459128
cmp dword [ebp - 0xb8], eax
jg 0x4565ab
lea eax, [ebp - 0x12c]
push eax
push dword [ebp - 0x60]
call fcn.004548e0
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0x138]
jne 0x4580a4
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x134]
je 0x4565ab
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x50], ebx
jmp 0x456d45
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x457ebf
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
lea edx, [ebp - 0x114]
push edx
push ecx
push eax
push 0
push dword [edi]
call fcn.0044f6e3
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx]
mov dword [edi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
xor eax, eax
add esp, 0x14
cmp dword [ebp - 0x114], eax
mov byte [edi + 0x1c], al
sete cl
cmp dword [ebp - 0x114], eax
mov byte [edi + 0x19], cl
mov dword [edi + 0x60], eax
je 0x457ebf
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x64], esi
mov byte [edi + 0x19], al
jmp 0x457ebf
mov esi, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, esi
shl eax, 2
mov ecx, dword [ecx + eax]
mov edx, dword [ecx + 0x58]
add ebx, 0x40
mov dword [ebx], edx
mov ecx, dword [ecx + 0x5c]
mov dword [ebx + 4], ecx
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax]
add dword [eax + 0x58], 1
mov dword [ebp - 0x50], ebx
adc dword [eax + 0x5c], 0
jmp 0x456d48
and dword [ebp - 0x84], 0
and dword [ebp - 0x80], 0
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x58], eax
mov eax, dword [eax]
test eax, eax
je 0x4583ad
and dword [ebp - 0x60], 0
push eax
call fcn.004512e4
and al, 3
cmp al, 1
pop ecx
jne 0x457c29
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1b], 0
jne 0x4582c6
cmp byte [eax + 0x1d], 0
je 0x4581ad
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x84], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x80], eax
jmp 0x45821b
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax]
call fcn.0044f6b4
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
cmp dword [ebp - 0xc4], eax
je 0x4581e2
and dword [ebp - 0x80], eax
mov dword [ebp - 0x84], 1
jmp 0x45821b
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax]
call fcn.00451dfb
cmp dword [ebp - 0x84], 0xffffffff
pop ecx
pop ecx
jne 0x458210
cmp dword [ebp - 0x80], 0x7fffffff
jne 0x458210
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1b], 1
jmp 0x45821b
add dword [ebp - 0x84], 1
adc dword [ebp - 0x80], 0
mov esi, dword [esi + 8]
test esi, esi
je 0x458280
shl esi, 6
add esi, dword [edi + 0x58]
push esi
call fcn.0044a3bd
mov eax, dword [esi]
cmp eax, 0xffffffff
pop ecx
mov ecx, dword [esi + 4]
jne 0x458245
cmp ecx, 0x7fffffff
je 0x459375
mov edx, dword [ebp - 0x58]
cmp byte [edx + 0x1b], 0
jne 0x459375
mov edx, dword [ebp - 0x80]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x458272
jl 0x458269
cmp dword [ebp - 0x84], eax
jae 0x458272
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x84]
mov dword [esi], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 4], eax
cmp dword [ebp - 0x80], 0x7fffffff
ja 0x4582b2
jb 0x458294
cmp dword [ebp - 0x84], 0xffffffff
jae 0x4582b2
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1d], 1
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
add ecx, 1
adc edx, 0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x4582b9
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x1b], 0
je 0x45839e
mov esi, dword [ebp - 0x5c]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
xor edi, edi
jmp 0x4582e2
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x80]
je 0x458310
cmp edi, 2
jg 0x458310
lea eax, [ebp - 0xa1]
push eax
push 1
call fcn.004647e8
movzx eax, byte [ebp - 0xa1]
inc eax
cdq
add dword [ebp - 0x84], eax
pop ecx
pop ecx
adc dword [ebp - 0x80], edx
jmp 0x458333
lea eax, [ebp - 0x84]
push eax
push 8
call fcn.004647e8
cmp edi, 5
pop ecx
pop ecx
jge 0x458333
and dword [ebp - 0x84], 0xffffff
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x80]
je 0x458361
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0x80]
mov eax, dword [ebp - 0x58]
push dword [ebp - 0x84]
push 0
push dword [eax]
call fcn.0044f6e3
add esp, 0x14
mov dword [ebp - 0x60], eax
inc edi
cmp edi, 0x3e8
jge 0x45837c
cmp dword [ebp - 0x60], 0
jne 0x45837c
cmp dword [ebp - 0xc4], 0
je 0x4582dc
cmp dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x2c], eax
jne 0x45839e
cmp dword [ebp - 0xc4], 0
je 0x459375
mov eax, dword [ebp - 0x58]
and dword [eax + 0x60], 0
mov byte [eax + 0x19], 0
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0x84]
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x50], ebx
jmp 0x456d45
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
xor edx, edx
cmp dword [eax], edx
mov dword [ebp - 0x60], eax
jne 0x4583de
cmp byte [eax + 0x1e], dl
je 0x458538
test byte [esi + 8], 1
mov ecx, dword [ebx - 0x40]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebx - 0x3c]
mov dword [ebp - 0xd8], ecx
je 0x4583fc
inc dword [edi + 0x23c]
test byte [esi + 8], 2
je 0x458411
mov edi, dword [ebx - 0x40]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x20], edi
mov edi, dword [ebx - 0x3c]
mov dword [ecx + 0x24], edi
cmp byte [eax + 0x1d], 0
je 0x45842d
mov ecx, dword [ebx - 0x3c]
cmp ecx, dword [eax + 0x14]
jl 0x45842d
jg 0x458429
mov ecx, dword [ebx - 0x40]
cmp ecx, dword [eax + 0x10]
jb 0x45842d
mov byte [eax + 0x1d], 0
test byte [ebx + 0x18], 1
je 0x458439
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], edx
cmp byte [eax + 0x1e], 0
je 0x4584b9
mov edi, dword [ebp - 0x60]
push dword [edi + 0x38]
call fcn.004497fa
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0xd8]
mov dword [edi + 0x44], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x34], eax
test byte [ebx + 0x18], 0x40
pop ecx
je 0x458477
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x38], eax
mov word [ebx + 0x18], 1
jmp 0x4584b3
add eax, 2
push 1
push eax
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
mov dword [edi + 0x38], eax
je 0x456742
push dword [edi + 0x34]
push dword [ebx + 0x10]
push eax
call sub.MSVCR80.dll_memcpy
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov byte [eax + ecx], 0
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
add esp, 0xc
mov byte [eax + ecx + 1], 0
mov byte [edi + 0x1c], 0
jmp 0x4584e0
push dword [ebx + 0x14]
mov eax, dword [ebp - 0x60]
push dword [ebx + 0x10]
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push 0
push dword [eax]
call fcn.004525bb
mov edi, dword [ebp - 0x60]
add esp, 0x18
mov dword [ebp - 0x4c], eax
and dword [edi + 0x60], 0
cmp dword [ebp - 0x4c], 0
mov byte [edi + 0x19], 0
mov byte [edi + 0x1f], 0
jne 0x458538
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x458538
mov eax, dword [esi + 0xc]
test eax, eax
je 0x458538
push dword [ebp - 0xd8]
mov edx, dword [edi + 4]
push dword [ebp - 0xdc]
imul edx, edx, 0x18
push eax
mov eax, dword [ebp - 0x5c]
mov edi, dword [eax + 4]
push dword [edx + edi]
mov edx, dword [esi + 8]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push dword [eax + 0x70]
call ecx
add esp, 0x18
push 2
jmp 0x4566ed
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x54], eax
je 0x45860f
mov edx, dword [ebp - 0x5c]
cmp dword [edx + 0x74], 0
je 0x458598
cmp dword [esi + 0xc], 0
je 0x458598
cmp byte [eax + 0x19], 0
je 0x45857e
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], eax
jmp 0x458598
lea eax, [ebp - 0x120]
push eax
push ecx
call fcn.00451dfb
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
push dword [ebp - 0x54]
call fcn.00454328
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
mov eax, dword [ebp - 0x54]
push dword [eax]
call fcn.0045274e
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x54]
and dword [eax + 0x60], 0
cmp dword [ebp - 0x4c], 0
pop ecx
mov byte [eax + 0x1d], 0
jne 0x45860f
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x74]
test eax, eax
mov dword [ebp - 0x8c], eax
je 0x45860f
mov eax, dword [esi + 0xc]
test eax, eax
je 0x45860f
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x5c]
imul ecx, ecx, 0x18
mov edx, dword [eax + 4]
push dword [ecx + edx]
push 9
push dword [eax + 0x70]
call dword [ebp - 0x8c]
add esp, 0x18
test byte [esi + 8], 1
je case.0x456597.11
inc dword [edi + 0x23c]
jmp case.0x456597.11
cmp dword [esi + 4], 0
je 0x45863a
push dword [edi + 0x23c]
push dword [ebp - 0x5c]
call fcn.00454a32
pop ecx
pop ecx
and dword [edi + 0x23c], 0
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov esi, dword [ecx + eax*4]
add ebx, 0x40
cmp byte [esi + 0x1c], 0
mov dword [ebp - 0x50], ebx
jne 0x45872f
mov edi, dword [esi]
test edi, edi
je 0x458715
push esi
call fcn.00454328
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
cmp byte [esi + 0x1c], al
jne 0x456aac
cmp byte [esi + 0x21], al
je 0x4586a4
lea eax, [ebp - 0x164]
push eax
push edi
call fcn.00451dfb
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xa8], eax
jmp 0x4586b1
lea eax, [ebp - 0xa8]
push eax
push edi
call fcn.00451e47
mov eax, dword [ebp - 0xa8]
pop ecx
mov dword [ebx + 0x14], eax
cmp dword [ebp - 0xa8], 0x20
pop ecx
ja 0x4586d0
mov word [ebx + 0x18], 0x210
lea eax, [ebx + 0x20]
jmp 0x4586f1
push 1
push dword [ebp - 0xa8]
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
je 0x456742
mov word [ebx + 0x18], 0x50
and dword [ebx + 0x1c], 0
push eax
mov dword [ebx + 0x10], eax
cmp byte [esi + 0x21], 0
push dword [ebp - 0xa8]
push 0
push edi
je 0x45870b
call fcn.0044f40d
jmp 0x458710
call fcn.00451e8a
add esp, 0x10
jmp 0x458735
cmp byte [esi + 0x1e], 0
je 0x45872f
mov eax, dword [esi + 0x34]
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x110
jmp 0x458735
mov word [ebx + 0x18], 1
mov byte [ebx + 0x1b], 1
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov esi, dword [ecx + eax*4]
push esi
call fcn.00454328
test eax, eax
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
add ebx, 0x40
cmp byte [esi + 0x19], al
mov dword [ebp - 0x50], ebx
je 0x458772
mov eax, dword [esi + 8]
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0xc]
jmp 0x458784
cmp byte [esi + 0x1e], 0
je 0x45878c
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xfc], eax
jmp 0x4587af
cmp byte [esi + 0x1c], 0
jne 0x456aac
mov esi, dword [esi]
test esi, esi
je 0x456aac
lea eax, [ebp - 0x100]
push eax
push esi
call fcn.00451dfb
pop ecx
pop ecx
mov eax, dword [ebp - 0x100]
mov dword [ebx], eax
mov eax, dword [ebp - 0xfc]
jmp 0x456d45
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x45880e
lea ecx, [ebp - 0x144]
push ecx
push eax
call fcn.0044f6b4
and dword [edi + 0x60], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x144]
pop ecx
pop ecx
mov byte [edi + 0x1c], al
mov byte [edi + 0x1f], 0
test eax, eax
jmp 0x458875
mov byte [edi + 0x1c], 0
jmp case.0x456597.11
inc dword [0x4aaabc]
dec dword [0x4aaab4]
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x45885b
lea ecx, [ebp - 0xc8]
push ecx
push eax
call fcn.0044f685
cmp dword [ebp - 0xc8], 0
mov dword [ebp - 0x4c], eax
sete al
and dword [edi + 0x60], 0
pop ecx
pop ecx
mov byte [edi + 0x1a], al
mov byte [edi + 0x1f], 0
jmp 0x458865
mov dword [ebp - 0xc8], 1
mov al, byte [ebp - 0xc8]
mov byte [edi + 0x1c], al
cmp dword [ebp - 0xc8], 0
je case.0x456597.11
mov esi, dword [esi + 8]
test esi, esi
jle case.0x456597.11
jmp 0x4565ae
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459381
mov eax, dword [esi + 4]
mov ecx, edi
mov ecx, dword [ecx + 0x3c]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x4588fa
cmp byte [edi + 0x1c], 0
je 0x4588bb
mov dword [ebp - 0xd4], 1
jmp 0x4588fe
cmp byte [ebp - 0x71], 0x68
lea ecx, [ebp - 0xd4]
push ecx
push eax
jne 0x4588d0
call fcn.00451ec1
jmp 0x4588d5
call fcn.00451fa1
and dword [edi + 0x60], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xd4]
test eax, eax
pop ecx
pop ecx
mov byte [edi + 0x1c], al
jne 0x4588fe
mov esi, dword [esi + 8]
dec esi
inc dword [0x4aaab4]
mov dword [ebp - 0x64], esi
jmp 0x4588fe
mov byte [edi + 0x1c], 1
mov byte [edi + 0x19], 0
jmp case.0x456597.11
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov esi, dword [ecx + eax*4]
mov edi, dword [esi]
test edi, edi
je 0x457ebf
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push 0
push 0x48bcaa
cdq
push edx
push eax
push ecx
push edi
call fcn.004525bb
add esp, 0x18
mov dword [ebp - 0x4c], eax
and dword [esi + 0x60], 0
jmp 0x457ebf
mov ecx, dword [edi + 0x3c]
mov eax, dword [esi + 4]
mov esi, dword [ecx + eax*4]
mov edi, dword [esi]
test edi, edi
je 0x457ebf
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
push dword [ebx + 0x10]
push edi
call fcn.0044f6e3
add esp, 0x14
test eax, eax
mov dword [ebp - 0x4c], eax
jne 0x458937
cmp dword [ebp - 0x140], eax
jne 0x458937
push edi
call fcn.0045274e
pop ecx
jmp 0x458934
mov esi, dword [esi + 4]
add ebx, 0x40
mov word [ebx + 0x18], 1
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x50], ebx
je case.0x456597.11
cmp byte [eax + 0x1c], 0
jne 0x456aac
lea eax, [ebp - 0x15c]
push eax
push ecx
call fcn.004548e0
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne 0x459128
mov word [ebx + 0x18], 4
mov eax, dword [ebp - 0x15c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x158]
mov dword [ebx + 4], eax
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x3c]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je 0x457ebf
test byte [ebx + 0x18], 0x12
jne 0x458a13
movzx eax, byte [ebp - 0x88]
push eax
push ebx
call fcn.0044a19a
test eax, eax
pop ecx
pop ecx
jne 0x456742
cmp dword [esi + 0xc], 0
mov ecx, dword [edi + 0x48]
setne al
mov byte [ecx], al
lea eax, [ebp - 0xc0]
push eax
push dword [ebx + 0x10]
push dword [ebx + 0x14]
push edi
call fcn.004549a3
mov ecx, dword [edi + 0x48]
add esp, 0x10
test eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ecx], 0
jne case.0x456597.11
mov al, byte [esi]
cmp al, 0x24
jne 0x458a54
neg dword [ebp - 0xc0]
jmp 0x458a5e
cmp al, 0x3a
jne 0x458a5e
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0
jle 0x457ebf
mov esi, dword [esi + 8]
jmp 0x457e8d
mov eax, dword [esi + 4]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.00449de0
cmp eax, dword [ebp - 0x70]
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jge 0x457ebf
cmp dword [ebp - 0x60], 0
jle 0x457ebf
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x54]
add eax, edi
push eax
call fcn.00449de0
add dword [ebp - 0x54], eax
cmp dword [ebp - 0x104], 0
pop ecx
pop ecx
je 0x458a6b
mov eax, dword [ebp - 0x70]
dec dword [ebp - 0x60]
cmp dword [ebp - 0x54], eax
jl 0x458a9d
jmp 0x457ebf
mov edi, dword [ebp - 0x5c]
cmp dword [edi + 0x4c], 1
jle 0x458aec
mov dword [ebp - 0x4c], 6
jmp case.0x456597.11
mov ecx, dword [edi + 4]
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
push dword [eax + ecx + 4]
call fcn.00452a01
add ebx, 0x40
mov dword [ebp - 0x4c], eax
mov word [ebx + 0x18], 4
mov eax, dword [ebp - 0xe0]
cdq
add esp, 0xc
cmp dword [ebp - 0x4c], 0
mov dword [ebx], eax
mov dword [ebp - 0x50], ebx
mov dword [ebx + 4], edx
jne case.0x456597.11
cmp dword [ebp - 0xe0], 0
je case.0x456597.11
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
push dword [ebp - 0xe0]
add eax, dword [edi + 4]
push eax
call fcn.0044bf80
jmp 0x4566e5
mov eax, dword [esi + 8]
push dword [esi + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
call fcn.00452989
pop ecx
jmp 0x4578d5
mov esi, dword [esi + 4]
mov eax, dword [ebp - 0x5c]
imul esi, esi, 0x18
add esi, dword [eax + 4]
xor eax, eax
cmp byte [ebp - 0x71], 0x30
setne al
dec eax
and eax, 3
inc eax
inc eax
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [esi + 4]
call fcn.00452055
add ebx, 0x40
add esp, 0xc
test eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], ebx
jne 0x456aac
mov eax, dword [ebp - 0xe4]
jmp 0x4570db
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x54], eax
imul eax, eax, 0x18
add eax, edx
mov edx, dword [eax + 0x14]
test byte [edx + 0x7a], 1
je case.0x456597.11
cmp dword [ebp - 0x54], 1
mov edx, str.sqlite_temp_master
je 0x458bf0
mov edx, str.sqlite_master
push dword [esi + 0xc]
add edi, 0x230
push edx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], edi
push dword [eax]
push dword [ebp - 0x54]
push str.SELECT_name__rootpage__sql___d_FROM__q._s_WHERE__s
call fcn.0045a4e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x456742
mov edi, dword [ebp - 0x5c]
push edi
call fcn.00449c2f
push 0
lea eax, [ebp - 0x154]
push eax
push fcn.00449101
push esi
push edi
mov byte [edi + 0x44], 1
call fcn.0044811d
push esi
mov dword [ebp - 0x4c], eax
call fcn.004497fa
push edi
mov byte [edi + 0x44], 0
call fcn.00449bff
add esp, 0x20
cmp dword [ebp - 0x4c], 7
jne case.0x456597.11
call fcn.00449e9b
jmp 0x456742
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.00459c0d
pop ecx
jmp 0x456b57
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.0044b4ce
jmp 0x4566e5
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.0044b22b
jmp 0x4566e5
push dword [esi + 0xc]
push dword [esi + 4]
push dword [ebp - 0x5c]
call fcn.00460c02
jmp 0x4566e5
and dword [ebp - 0x68], 0
cmp ebx, dword [edi + 0x28]
jb 0x458cdb
mov eax, ebx
test byte [eax + 0x18], 4
je 0x458cdb
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
shl ecx, 6
mov eax, ebx
sub eax, ecx
cmp eax, dword [edi + 0x28]
jae 0x458cc3
mov eax, dword [ebp - 0x68]
lea eax, [eax*4 + 4]
push 1
push eax
call fcn.00449eab
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je 0x456742
xor eax, eax
cmp dword [ebp - 0x68], eax
jle 0x458d12
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x54]
mov dword [edx + eax*4], ecx
inc eax
sub ebx, 0x40
cmp eax, dword [ebp - 0x68]
jl 0x458d01
mov ecx, dword [ebp - 0x54]
push dword [ebp - 0x68]
and dword [ecx + eax*4], 0
lea edi, [ebp - 0x50]
call fcn.00456375
mov eax, dword [esi + 8]
push dword [ebp - 0x68]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x50]
push dword [ebp - 0x54]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
add ebx, 0x40
mov dword [ebp - 0x50], ebx
call fcn.00452244
add esp, 0x10
test eax, eax
je 0x458d73
cmp byte [eax], 0
push eax
je 0x458d6d
mov dword [ebx + 0x10], eax
call sub.MSVCR80.dll_strlen
mov dword [ebx + 0x14], eax
mov word [ebx + 0x18], 0x62
and dword [ebx + 0x1c], 0
pop ecx
jmp 0x458d87
call fcn.004497fa
pop ecx
mov dword [ebx + 0x10], 0x492900
mov dword [ebx + 0x14], 2
mov word [ebx + 0x18], 0xa2
movzx eax, byte [ebp - 0x88]
push eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.0044a0a3
push dword [ebp - 0x54]
call fcn.004497fa
jmp 0x4566e5
push ebx
call fcn.0044a3bd
push dword [ebx + 4]
add edi, 0x64
push dword [ebx]
push edi
call fcn.00464850
add esp, 0x10
jmp 0x456829
mov eax, dword [ebp - 0x5c]
test byte [eax + 8], 4
jne 0x459381
lea eax, [ebp - 0x14c]
push eax
mov eax, edi
add eax, 0x64
push eax
call fcn.004648ad
cmp eax, 0x65
pop ecx
pop ecx
je 0x4565ab
mov eax, dword [ebp - 0x14c]
add ebx, 0x40
mov dword [ebx], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x50], ebx
jmp 0x456d45
mov esi, dword [edi + 0x70]
cmp esi, dword [edi + 0x74]
lea eax, [esi + 1]
mov dword [edi + 0x70], eax
jl 0x458e31
mov dword [edi + 0x74], eax
lea eax, [esi + 1]
imul eax, eax, 0x18
push eax
add edi, 0x78
push edi
call fcn.0044a07d
cmp dword [edi], 0
pop ecx
pop ecx
je 0x456742
mov eax, dword [ebp - 0x7c]
imul esi, esi, 0x18
add esi, dword [eax + 0x78]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 0x20]
mov dword [esi], edx
mov ecx, dword [ecx + 0x24]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x23c]
mov dword [esi + 8], ecx
add eax, 0x64
lea edi, [esi + 0xc]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0046483f
jmp 0x456b57
mov eax, edi
dec dword [eax + 0x70]
mov ecx, dword [eax + 0x70]
imul ecx, ecx, 0x18
add ecx, dword [eax + 0x78]
lea edi, [eax + 0x64]
mov esi, ecx
mov edx, dword [esi]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x20], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x24], edx
mov ecx, dword [esi + 8]
push edi
mov dword [eax + 0x23c], ecx
call fcn.004648fc
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
movsd dword es:[edi], dword [esi]
jmp case.0x456597.11
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
push ebx
push eax
call fcn.0044a4e8
sub ebx, 0x40
cmp dword [esi + 8], 0
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], ebx
jne case.0x456597.11
mov eax, dword [esi + 4]
shl eax, 6
add ebx, 0x40
add eax, dword [edi + 0x58]
push 0x100
jmp 0x4566db
mov esi, dword [esi + 4]
shl esi, 6
add esi, dword [edi + 0x58]
push esi
call fcn.0044a3bd
push ebx
call fcn.0044a3bd
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp edx, eax
pop ecx
pop ecx
mov ecx, dword [ebx]
jg case.0x456597.11
jl 0x458f11
mov edx, dword [esi]
cmp edx, ecx
jae case.0x456597.11
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x456597.11
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
shl ecx, 6
add ecx, dword [edi + 0x58]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x456597.11
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
cmp dword [eax + edi + 4], 0
jl case.0x456597.11
jg 0x4565ab
cmp dword [eax + edi], 0
jbe case.0x456597.11
jmp 0x4565ab
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
cmp dword [eax + edi + 4], 0
jg case.0x456597.11
jl 0x4565ab
cmp dword [eax + edi], 0
jae case.0x456597.11
jmp 0x4565ab
mov eax, dword [esi + 4]
mov edi, dword [edi + 0x58]
shl eax, 6
mov ecx, dword [eax + edi]
or ecx, dword [eax + edi + 4]
jne case.0x456597.11
jmp 0x4565ab
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
call fcn.0044a419
jmp 0x456b57
mov eax, dword [esi + 4]
cdq
push edx
push eax
mov eax, dword [esi + 8]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
call fcn.0044a435
jmp 0x4566e5
mov eax, dword [esi + 8]
mov edi, dword [edi + 0x58]
shl eax, 6
add eax, edi
push eax
mov eax, dword [esi + 4]
shl eax, 6
add eax, edi
push eax
call fcn.0044a4e8
jmp 0x458b72
mov edx, dword [esi + 8]
and dword [ebp - 0x54], 0
mov eax, edx
shl eax, 6
sub ebx, eax
add ebx, 0x40
test edx, edx
mov ecx, ebx
mov ebx, dword [edi + 0x30]
mov dword [ebp - 0x70], edx
jle 0x45901f
mov eax, dword [ebp - 0x54]
mov dword [ebx + eax*4], ecx
call fcn.00456349
inc dword [ebp - 0x54]
add ecx, 0x40
cmp dword [ebp - 0x54], edx
jl 0x459009
mov eax, dword [esi + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
mov dword [ebp + 0x40], eax
inc dword [eax + 0x14]
xor eax, eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x1c], eax
mov byte [ebp + 0x44], al
mov dword [ebp + 0x48], eax
mov eax, dword [ebp - 8]
mov word [ebp + 0x18], 1
cmp byte [eax + 3], 0
je 0x459057
mov ecx, dword [esi - 8]
mov dword [ebp + 0x48], ecx
push ebx
push dword [ebp - 0x70]
lea ecx, [ebp - 8]
push ecx
call dword [eax + 0x14]
push dword [ebp - 0x70]
lea edi, [ebp - 0x50]
call fcn.00456375
add esp, 0x10
cmp byte [ebp + 0x44], 0
je 0x45909b
lea eax, [ebp]
push 0
push eax
call fcn.00448ba5
pop ecx
push eax
mov eax, dword [ebp - 0x7c]
add eax, 0x230
push eax
call fcn.00449f6d
add esp, 0xc
mov dword [ebp - 0x4c], 1
lea eax, [ebp]
push eax
call fcn.0044a275
jmp 0x4566f5
mov eax, dword [esi + 4]
push dword [esi + 0xc]
shl eax, 6
add eax, dword [edi + 0x58]
push eax
mov dword [ebp - 0x8c], eax
call fcn.0044a1e7
cmp eax, 1
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
jne case.0x456597.11
push 0
push dword [ebp - 0x8c]
call fcn.00448ba5
pop ecx
push eax
add edi, 0x230
push edi
call fcn.00449f6d
jmp 0x4566e5
push dword [ebp - 0x5c]
call fcn.00449c2f
test eax, eax
pop ecx
jne 0x459121
push dword [ebp - 0x5c]
add edi, 0x230
push edi
call fcn.00465250
push dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
call fcn.00449bff
add esp, 0xc
test eax, eax
je case.0x456597.11
mov dword [ebp - 0x4c], 0x15
mov esi, dword [ebp - 0x7c]
add esi, 0x230
cmp dword [esi], 0
jne 0x45915b
call fcn.00449e7f
test eax, eax
je 0x459146
mov dword [ebp - 0x4c], 7
push 0
push dword [ebp - 0x4c]
call fcn.0044855d
pop ecx
push eax
push esi
call fcn.00449f6d
add esp, 0xc
cmp dword [ebp - 0x4c], 0
je 0x4593bc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x7c]
xor esi, esi
mov dword [ecx + 0x80], eax
inc esi
jmp 0x4593bf
cmp dword [esi + 4], 0
je 0x457a40
mov byte [edi + 0x238], 1
jmp case.0x456597.11
mov eax, dword [esi + 4]
test eax, eax
setl byte [ebp - 0x110]
cmp byte [ebp - 0x110], 0
je 0x4591ab
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
push dword [ebp - 0x110]
imul eax, eax, 0x18
push dword [esi + 8]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 4]
push dword [eax + ecx + 4]
call fcn.004519fd
add esp, 0xc
cmp eax, 6
mov dword [ebp - 0x4c], eax
jne case.0x456597.11
push 0
push dword [esi + 0xc]
add edi, 0x230
push str.database_table_is_locked:
push edi
call fcn.00449f6d
jmp 0x45667d
mov dword [edi + 0x2c], ebx
mov eax, dword [esi + 4]
mov dword [edi + 0x80], eax
mov dword [edi + 0x7c], ecx
mov eax, dword [esi + 8]
mov dword [edi + 0x88], eax
mov esi, dword [esi + 0xc]
test esi, esi
je 0x459221
push 0
lea eax, [edi + 0x230]
push esi
push eax
call fcn.00449f6d
add esp, 0xc
push edi
call fcn.00454bfc
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x459336
mov eax, dword [edi + 0x80]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x70]
xor ecx, ebp
call fcn.004801ca
add ebp, 0x74
leave
ret
mov ecx, dword [esi + 4]
shl ecx, 6
mov eax, ebx
sub eax, ecx
mov ecx, dword [edi + 0x28]
cmp ecx, eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x58], ecx
jae 0x45929b
mov eax, dword [ebp - 0x58]
test word [eax + 0x18], 0x100
je 0x45928c
push eax
call fcn.0044a0be
test eax, eax
pop ecx
jne 0x456742
mov edi, dword [ebp - 0x7c]
add dword [ebp - 0x58], 0x40
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0xe4]
jb 0x45926f
mov eax, dword [edi + 0x60]
inc eax
inc eax
or eax, 1
mov dword [edi + 0x60], eax
jmp 0x4592bd
push dword [ebp - 0x58]
call fcn.0044a12f
pop ecx
mov ecx, dword [ebp - 0x58]
call fcn.00456349
add dword [ebp - 0x58], 0x40
cmp dword [ebp - 0x58], ebx
jbe 0x4592a8
inc dword [edi + 0x5c]
mov byte [edi + 0x234], 1
mov eax, dword [esi + 4]
mov dword [edi + 0x22c], eax
mov eax, dword [ebp - 0x64]
inc eax
push 0x64
mov dword [edi + 0x7c], eax
pop eax
mov dword [edi + 0x2c], ebx
jmp 0x459243
mov dword [ebp - 0x4c], 0x14
jmp 0x459128
cmp dword [esi + 8], 0
je 0x45930e
mov esi, eax
push esi
call fcn.004484e0
pop ecx
mov byte [esi + 0x10], 1
push 0x65
pop eax
jmp 0x459243
mov al, byte [ebp - 0x71]
mov esi, dword [ebp - 0x5c]
push edi
mov byte [esi + 0x10], al
call fcn.00454bfc
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x459306
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x7c], eax
mov al, 1
sub al, byte [ebp - 0x71]
mov dword [edi + 0x2c], ebx
mov byte [esi + 0x10], al
mov dword [edi + 0x80], ecx
mov eax, ecx
jmp 0x459243
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x7c], eax
mov dword [edi + 0x80], ecx
mov eax, ecx
jmp 0x4592df
mov edx, dword [ebp - 0x64]
mov dword [ecx + 0x7c], edx
xor edx, edx
mov dword [ecx + 0x80], eax
cmp dword [esi + 8], edx
setle dl
inc edx
shl edx, 6
add edx, ebx
mov dword [ecx + 0x2c], edx
jmp 0x459243
mov dword [ebp - 0x4c], 0xd
jmp 0x459128
mov eax, dword [ebp - 0x5c]
and dword [eax + 8], 0xfffffffb
mov esi, dword [ebp - 0x7c]
xor ecx, ecx
cmp dword [eax + 0x30], 0xf03b7906
push 0
sete cl
dec ecx
and ecx, 0xc
add ecx, 9
mov eax, ecx
push eax
mov dword [ebp - 0x4c], eax
mov dword [esi + 0x80], eax
call fcn.0044855d
add esi, 0x230
jmp 0x459150
push 0x65
pop esi
push dword [ebp - 0x7c]
call fcn.00454bfc
mov edi, dword [ebp - 0x7c]
pop ecx
mov eax, esi
jmp 0x4592df