Function at 0x495df0
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi]
mov ebx, dword [edi + 0x58]
mov cl, byte [esi + 0x42]
mov edx, dword [edi + 0x5c]
xor eax, eax
push edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], esi
mov byte [ebp - 0x45], al
mov byte [ebp - 0x35], cl
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x14], edx
call fcn.0048f3d0
add esp, 4
cmp dword [edi + 0x28], 7
je 0x49abb8
xor eax, eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x68], eax
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0x184], eax
test ecx, ecx
jne 0x49ab52
cmp dword [esi + 0x130], eax
je 0x495e7b
mov esi, dword [esi + 0x138]
mov eax, dword [edi + 0xb0]
xor edx, edx
div esi
sub esi, edx
mov dword [ebp - 0x9c], esi
jmp 0x495e85
mov dword [ebp - 0x9c], 0xffffffff
mov edi, dword [edi + 0x24]
lea edx, [edi + edi*4]
lea ebx, [ebx + edx*4]
mov cl, byte [ebx]
inc dword [ebp - 0x70]
movzx eax, cl
mov dword [ebp - 8], ebx
cmp eax, 0xa4
ja case.0x495ea4.74
jmp dword [eax*4 + 0x49ad10]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov edx, 4
mov word [ecx + 8], dx
mov edx, ebx
sub edx, dword [ebp - 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4982a6
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + edx*4]
mov ecx, 0x80
mov ebx, edx
mov dword [ebp - 8], edx
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea ecx, [eax + edx*8]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebx + 8], 0
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
mov ecx, 0x80
mov ebx, edx
mov dword [ebp - 8], edx
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x30]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea ecx, [eax + edx*8]
mov esi, dword [ecx]
sub ebx, edi
mov edx, 4
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
lea eax, [esi + esi*4]
mov dword [ecx + 4], edx
lea ecx, [edi + eax*4]
mov ebx, ecx
mov dword [ebp - 8], ecx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
test byte [eax + edx*8 + 8], 1
je case.0x495ea4.74
mov edi, dword [ebp + 8]
mov ecx, ebx
sub ecx, dword [ebp - 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 4], 0
mov dword [ebp - 0x18], eax
jne 0x49a739
mov esi, dword [edi + 0xc4]
test esi, esi
je 0x49a739
mov ecx, dword [esi + 4]
mov eax, dword [edi + 0x2c]
dec dword [edi + 0xcc]
mov dword [edi + 0xc4], ecx
mov ecx, dword [ebp - 0x10]
add dword [ecx + 0x5c], eax
mov dword [ecx + 0x58], eax
call fcn.0048fe40
cmp dword [ebx + 8], 4
jne 0x496030
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov eax, dword [eax + edx*4 + 8]
dec eax
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
lea eax, [eax + eax*4]
mov dword [ebp - 0x30], ecx
lea ecx, [ecx + eax*4]
mov ebx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 8], ecx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
add ebx, 0x14
fstp qword [eax]
jmp 0x495e8e
mov edi, dword [ebp + 8]
mov eax, ebx
mov edx, edi
call fcn.00495dc0
mov esi, eax
mov eax, dword [ebx + 0x10]
mov byte [ebx], 0x3a
mov dword [ebp - 0x18], eax
call fcn.004722b0
cmp byte [ebp - 0x35], 1
mov dword [ebx + 4], eax
je 0x496130
mov edx, dword [ebp - 0x18]
push 1
push edx
xor eax, eax
or ecx, 0xffffffff
mov edx, esi
call fcn.0048d8e0
movzx ecx, byte [ebp - 0x35]
mov dword [ebp - 0xc], eax
add esp, 8
mov eax, esi
call fcn.0048ccd0
test eax, eax
jne 0x49abb8
mov ebx, dword [ebp - 8]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x49611d
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x10]
call fcn.0046f8d0
mov byte [ebx + 1], 0xf9
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 0xc]
mov dword [ebx + 4], edx
mov ebx, dword [ebp - 8]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x10]
cmp eax, dword [ecx + 0x60]
jle 0x4961b6
mov edi, dword [ebp + 8]
push str.string_or_blob_too_big
mov esi, edi
call fcn.0048e1d0
mov dword [ebp - 0xc], 0x12
add esp, 4
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0x45], 0
je 0x496164
mov dword [ebp - 0xc], 7
mov eax, dword [ebp + 8]
cmp dword [eax + 0x6c], 0
jne 0x49ac12
mov eax, dword [ebp - 0xc]
cmp eax, 0xc0a
je 0x49ac12
mov ecx, str.unknown_error
cmp eax, 0x204
je 0x49abfc
and eax, 0xff
cmp eax, 0x1a
ja 0x49ac01
mov eax, dword [eax*4 + 0x53f0d0]
test eax, eax
je 0x49ac01
mov ecx, eax
jmp 0x49ac01
mov edi, dword [ebp + 8]
mov eax, ebx
mov edx, edi
call fcn.00495dc0
mov ecx, eax
mov edx, 0xa02
mov word [ecx + 8], dx
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebx + 4]
mov al, byte [ebp - 0x35]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle case.0x495ea4.74
mov edi, dword [ebp - 0x14]
lea esi, [eax + eax*4]
movzx eax, word [ebx + 2]
cdq
mov dword [ebp - 0x258], edx
cmp dword [edi + esi*8], eax
jne case.0x495ea4.74
mov eax, dword [edi + esi*8 + 4]
cmp eax, edx
jne case.0x495ea4.74
mov edx, 0xa10
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ecx, cx
lea edi, [eax + 0xc]
mov dword [ebp - 0x18], ecx
mov word [eax + 8], cx
mov dword [edi], 0
test esi, esi
jle case.0x495ea4.74
jmp 0x496260
add edi, 0x28
lea eax, [edi - 0xc]
call fcn.0048d600
mov dx, word [ebp - 0x18]
dec esi
mov word [edi - 4], dx
mov dword [edi], 0
test esi, esi
jg 0x496260
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
mov dx, word [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
mov ecx, 0xff61
and dx, cx
or dx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov esi, eax
push 0
push edx
xor eax, eax
mov edx, esi
call fcn.0048d8e0
mov al, byte [ebp - 0x35]
add esp, 8
mov byte [esi + 0xa], al
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x74]
lea esi, [eax + ecx*8 - 0x28]
mov ecx, esi
call fcn.0048d750
test eax, eax
jne 0x49613b
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x14]
push 0x800
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
push esi
push eax
call fcn.0048d7b0
add esp, 0xc
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebx + ebx*4]
lea edi, [eax + edx*8]
lea esi, [eax + ecx*8]
jmp 0x496340
mov ebx, edi
mov eax, esi
call fcn.0048d8a0
mov edx, 0x1000
test word [esi + 8], dx
je 0x496365
push esi
call fcn.0048ce80
add esp, 4
test eax, eax
jne 0x49abb5
add edi, 0x28
add esi, 0x28
dec dword [ebp - 0x1c]
jne 0x496340
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
push 0x1000
push edi
push esi
call fcn.0048d7b0
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x4963c4
push esi
call fcn.0048ce80
add esp, 4
test eax, eax
jne 0x49abb5
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
mov edx, eax
dec eax
mov dword [ebp - 0x1c], eax
test edx, edx
je case.0x495ea4.74
add esi, 0x28
add edi, 0x28
jmp 0x496396
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
push 0x1000
lea eax, [eax + eax*4]
push edx
lea ecx, [ecx + eax*8]
push ecx
call fcn.0048d7b0
add esp, 0xc
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.0048d660
add esp, 8
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea esi, [edi + edx*8]
mov dl, byte [esi + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [ecx + 8]
or dl, al
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], esi
test dl, 1
je 0x496475
mov eax, edi
call fcn.0048d600
add ebx, 0x14
jmp 0x495e8e
test eax, 0x4000
je 0x496491
mov esi, ecx
call fcn.0048cf00
test eax, eax
jne 0x49abb5
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4964af
call fcn.0048cf00
test eax, eax
jne 0x49abb5
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
test byte [ecx + 8], 0x12
jne 0x4964d3
mov edx, dword [ebp - 0x35]
push 0
push edx
mov esi, ecx
call fcn.0048cfb0
add esp, 8
test eax, eax
jne 0x49abb5
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
test byte [esi + 8], 0x12
jne 0x4964f5
mov eax, dword [ebp - 0x35]
push 0
push eax
call fcn.0048cfb0
add esp, 8
test eax, eax
jne 0x49abb5
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0x10]
mov ebx, eax
mov eax, dword [edx + 0x60]
cdq
cmp ecx, edx
jg 0x49613b
jl 0x496519
cmp ebx, eax
ja 0x49613b
xor eax, eax
cmp edi, esi
sete al
lea ecx, [ebx + 2]
push eax
push ecx
push edi
call fcn.0048ccf0
add esp, 0xc
test eax, eax
jne 0x49abb5
mov dx, word [edi + 8]
mov eax, 0x3e00
and dx, ax
or dx, 2
mov word [edi + 8], dx
cmp edi, esi
je 0x496562
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov eax, dword [edi + 0x10]
push ecx
push edx
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [edi + 0x10]
add eax, dword [esi + 0xc]
push ecx
push edx
push eax
call sub.MSVCR100.dll_memcpy
mov ecx, dword [edi + 0x10]
mov byte [ebx + ecx], 0
mov edx, dword [edi + 0x10]
mov cl, byte [ebp - 0x35]
mov byte [edx + ebx + 1], 0
mov dword [edi + 0xc], ebx
mov ebx, dword [ebp - 8]
add esp, 0xc
mov eax, 0x200
or word [edi + 8], ax
mov byte [edi + 0xa], cl
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x14]
lea edx, [eax + eax*4]
lea edi, [esi + edx*8]
mov eax, edi
call fcn.00495d60
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.00495d60
movzx ecx, ax
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea edx, [eax + edx*8]
mov ax, word [esi + 8]
or ax, word [edi + 8]
mov dword [ebp - 0x18], ecx
and cl, byte [ebp - 0x1c]
mov dword [ebp - 0x20], edx
movzx eax, ax
test cl, 4
je 0x4966fd
mov edx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x64], edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x60], edx
movzx edx, byte [ebx]
add edx, 0xffffffa8
mov byte [ebp - 0x31], 1
cmp edx, 3
ja case.default.0x496620
jmp dword [edx*4 + 0x49afa4]
push ecx
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00473460
add esp, 0xc
test eax, eax
jne 0x496709
jmp 0x4966d3
push ecx
push eax
lea edx, [ebp - 0x64]
call fcn.00473500
add esp, 8
test eax, eax
jne 0x496709
jmp 0x4966d3
push ecx
push eax
lea ecx, [ebp - 0x64]
push ecx
call fcn.00473550
add esp, 0xc
test eax, eax
jne 0x496709
jmp 0x4966d3
mov edx, eax
or edx, ecx
je 0x4967fa
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x496693
cmp dword [ebp - 0x64], 0
jne 0x496693
cmp dword [ebp - 0x60], 0x80000000
je 0x496709
push ecx
mov ecx, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x60]
push eax
push ecx
call fcn.0050f670
jmp 0x4966cd
mov edx, eax
or edx, ecx
je 0x4967fa
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x4966be
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x60]
push eax
push ecx
call fcn.0050f7c0
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x495e8e
test al, 1
jne 0x4967fa
mov byte [ebp - 0x31], 0
mov eax, edi
call fcn.0048d370
fstp qword [ebp - 0x44]
mov eax, esi
call fcn.0048d370
movzx eax, byte [ebx]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x496725
jmp dword [eax*4 + 0x49afb4]
fadd qword [ebp - 0x44]
jmp 0x49679f
fsub qword [ebp - 0x44]
jmp 0x49679f
fmul qword [ebp - 0x44]
jmp 0x49679f
fld qword [ebp - 0x44]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4967f6
fdivp st(1)
jmp 0x49679f
fld qword [ebp - 0x44]
call fcn.0050f8b6
mov esi, eax
mov edi, edx
call fcn.0050f8b6
mov ecx, esi
or ecx, edi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
je 0x4967fa
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x496784
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0050f7c0
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], edx
fild qword [ebp - 0x17c]
sub esp, 8
fst qword [ebp - 0x44]
fstp qword [esp]
call fcn.00472280
add esp, 8
test eax, eax
jne 0x4967fa
mov esi, dword [ebp - 0x20]
fld qword [ebp - 0x44]
mov dx, word [esi + 8]
fstp qword [esi]
mov cl, byte [ebp - 0x18]
or cl, byte [ebp - 0x1c]
mov eax, 0x3e00
and dx, ax
or dx, 8
mov word [esi + 8], dx
test cl, 8
jne case.0x495ea4.74
cmp byte [ebp - 0x31], 0
jne case.0x495ea4.74
call fcn.0048d3a0
add ebx, 0x14
jmp 0x495e8e
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x20]
call fcn.0048d600
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
test eax, eax
je case.0x495ea4.74
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
push 0
push 0
lea eax, [eax + edx*8]
call fcn.0048d660
add esp, 8
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea esi, [edx + ecx*8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [ebp - 0x20], edi
test dl, 1
je 0x49686d
mov eax, edi
call fcn.0048d600
add ebx, 0x14
jmp 0x495e8e
call fcn.0048d2f0
mov ecx, esi
mov dword [ebp - 0x84], eax
mov edi, edx
call fcn.0048d2f0
mov esi, eax
mov al, byte [ebx]
cmp al, 0x54
jne 0x496896
and dword [ebp - 0x84], esi
and edi, edx
jmp 0x49697e
cmp al, 0x55
jne 0x4968a7
or dword [ebp - 0x84], esi
or edi, edx
jmp 0x49697e
mov ecx, esi
or ecx, edx
je 0x49697e
test edx, edx
jg 0x4968df
jl 0x4968bb
test esi, esi
jae 0x4968d4
mov cl, 0xad
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x4968df
jg 0x4968cd
cmp esi, 0xffffffc0
jbe 0x4968df
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x49690d
jg 0x4968df
cmp esi, 0x40
jb 0x49690d
test edi, edi
jg 0x496900
jl 0x4968ee
cmp dword [ebp - 0x84], 0
jae 0x496900
cmp al, 0x56
je 0x496900
or eax, 0xffffffff
cdq
mov dword [ebp - 0x84], eax
mov edi, edx
jmp 0x49697e
xor eax, eax
cdq
mov dword [ebp - 0x84], eax
mov edi, edx
jmp 0x49697e
cmp al, 0x56
mov eax, dword [ebp - 0x84]
mov edx, edi
mov ecx, esi
jne 0x49692e
call fcn.0050f790
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], edx
jmp 0x49696c
call fcn.0050f980
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], edx
test edi, edi
jg 0x49696c
jl 0x49694e
cmp dword [ebp - 0x84], 0
jae 0x49696c
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0050f790
or dword [ebp - 0xa4], eax
or dword [ebp - 0xa0], edx
mov edx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x84]
mov dx, word [eax + 8]
mov dword [eax], ecx
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov dword [eax + 4], edi
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
call fcn.0048d410
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 8]
lea esi, [edx + ecx*8]
test al, 4
jne 0x496a18
test al, 8
jne 0x4969f5
test al, 2
je 0x4969fa
push 1
mov eax, esi
call fcn.00495b80
add esp, 4
jmp 0x4969fa
call fcn.0048d3a0
movzx eax, word [esi + 8]
test al, 4
jne 0x496a18
cmp dword [ebx + 8], 0
jne 0x4982a6
mov dword [ebp - 0xc], 0x14
jmp 0x496154
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je case.0x495ea4.74
call fcn.0048d470
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x496a71
call fcn.0048cf00
mov dword [ebp - 0xc], eax
jmp 0x496a78
mov dword [ebp - 0xc], 0
mov dl, byte [ebp - 0x35]
mov cl, byte [ebx + 8]
mov eax, esi
call fcn.0048d540
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x14]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
movzx ecx, word [esi + edx*8 + 8]
lea edi, [esi + edx*8]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov eax, edx
or eax, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], edx
test al, 1
je 0x496b3a
movzx eax, word [ebx + 2]
test al, al
jns 0x496af6
mov cl, dl
and cl, byte [ebp - 0x2c]
test cl, 1
je 0x496b9e
test edx, 0x100
jne 0x496b9e
xor eax, eax
jmp 0x496c43
test al, 0x20
je 0x496b2a
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
mov cx, word [eax + edx*8 + 8]
lea eax, [eax + edx*8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov dword [ebp - 0x68], 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x495e8e
test al, 0x10
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov cl, byte [ebx + 2]
and cl, 0x47
cmp cl, 0x43
jl 0x496bc2
test al, 2
je 0x496b7c
mov al, byte [ebp - 0x2c]
and al, 0xe
cmp al, 2
jne 0x496b65
push 0
mov eax, edi
call fcn.00495b80
movzx ecx, word [esi + 8]
add esp, 4
mov dword [ebp - 8], ecx
mov dl, byte [ebp - 8]
and dl, 0xe
cmp dl, 2
jne 0x496b7c
push 0
mov eax, esi
call fcn.00495b80
add esp, 4
mov al, byte [esi + 8]
and al, byte [edi + 8]
test al, 4
je 0x496c32
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov eax, dword [edi + 4]
mov edx, dword [edi]
cmp esi, eax
jl 0x496bba
jg 0x496b9e
cmp ecx, edx
jbe 0x496ba8
mov eax, 1
jmp 0x496c43
cmp esi, eax
jg 0x496aef
jl 0x496bba
cmp ecx, edx
jae 0x496aef
or eax, 0xffffffff
jmp 0x496c43
cmp cl, 0x42
jne 0x496c32
mov al, byte [ebp - 0x2c]
test al, 2
jne 0x496bfc
test al, 0xc
je 0x496bfc
mov ecx, dword [ebp - 0x35]
push 1
push ecx
mov esi, edi
call fcn.0048cfb0
mov ax, word [ebp - 0x2c]
mov dx, word [edi + 8]
xor dx, ax
mov ecx, 0x3e00
and dx, cx
add esp, 8
xor ax, dx
mov word [ebp - 0x2c], ax
mov al, byte [ebp - 8]
test al, 2
jne 0x496c32
test al, 0xc
je 0x496c32
mov edx, dword [ebp - 0x35]
mov esi, dword [ebp - 0x24]
push 1
push edx
call fcn.0048cfb0
mov ax, word [ebp - 8]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x3e00
and cx, dx
add esp, 8
xor ax, cx
mov word [ebp - 8], ax
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.00491d30
mov edi, dword [ebp - 0x20]
movzx ecx, byte [ebx]
add ecx, 0xffffffb3
cmp ecx, 4
ja case.default.0x496c4e
jmp dword [ecx*4 + 0x49afc4]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x496c88
mov esi, eax
jmp 0x496c8a
xor edx, edx
test eax, eax
sets dl
mov esi, edx
jmp 0x496c8a
xor ecx, ecx
test eax, eax
setle cl
jmp 0x496c88
xor edx, edx
test eax, eax
setg dl
mov esi, edx
jmp 0x496c8a
xor ecx, ecx
test eax, eax
setns cl
mov esi, ecx
mov dx, word [ebp - 0x2c]
mov cx, word [ebp - 8]
mov word [edi + 8], dx
mov edx, dword [ebp - 0x24]
mov word [edx + 8], cx
movzx edx, word [ebx + 2]
test dl, 0x20
je 0x496cf7
mov ecx, dword [ebx + 8]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x68], eax
xor eax, eax
test esi, esi
setne al
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
mov esi, eax
test dl, 8
je 0x496cd3
xor edx, edx
cmp byte [ebx], 0x4e
sete dl
cmp edx, esi
je case.0x495ea4.74
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x495e8e
test esi, esi
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
cmp dword [ebp - 0x68], 0
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
test byte [ebx + 2], 1
jne 0x496d26
xor ecx, ecx
mov dword [ebp - 0x28], ecx
jmp 0x496d31
mov eax, dword [ebx - 4]
add eax, 4
mov dword [ebp - 0x28], eax
mov ecx, eax
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebx + 8]
mov dword [ebp - 0x40], esi
xor esi, esi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], edx
test eax, eax
jle case.0x495ea4.74
add edx, 0x14
mov dword [ebp - 0x24], edx
jmp 0x496d63
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x496d6c
mov ecx, dword [ecx + esi*4]
jmp 0x496d6e
mov ecx, esi
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x2c], edx
mov edx, dword [eax + 0x10]
movzx eax, byte [edx + esi]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 8], eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp - 0x1c]
add eax, ecx
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov edi, dword [ebp - 0x2c]
call fcn.00491d30
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x496dbe
add dword [ebp - 0x24], 4
inc esi
cmp esi, dword [ebp - 0x20]
jl 0x496d60
add ebx, 0x14
jmp 0x495e8e
cmp dword [ebp - 8], 0
je case.0x495ea4.74
mov edx, dword [ebp - 0x68]
neg edx
mov dword [ebp - 0x68], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x30]
test eax, eax
jns 0x496df9
mov ebx, dword [ebx + 4]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 8], edx
add ebx, 0x14
jmp 0x495e8e
jne 0x496e12
mov ebx, dword [ebx + 8]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 8], edx
add ebx, 0x14
jmp 0x495e8e
mov ebx, dword [ebx + 0xc]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov ebx, edx
mov dword [ebp - 8], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x496e43
mov esi, 2
jmp 0x496e55
call fcn.0048d2f0
or eax, edx
je 0x496e53
mov esi, 1
jmp 0x496e55
xor esi, esi
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 1
lea ecx, [edi + ecx*8]
je 0x496e6c
mov eax, 2
jmp 0x496e7e
call fcn.0048d2f0
or eax, edx
je 0x496e7c
mov eax, 1
jmp 0x496e7e
xor eax, eax
cmp byte [ebx], 0x47
jne 0x496e90
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x53c004]
jmp 0x496e9b
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x53c048]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
cmp eax, 2
jne 0x496ec5
mov dx, word [ecx + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x495e8e
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
mov dword [ecx], eax
mov eax, 0x3e00
and dx, ax
or dx, 4
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0048d600
test byte [edi + 8], 1
jne case.0x495ea4.74
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.0048d2f0
or eax, edx
jne 0x496f34
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0048d600
test byte [edi + 8], 1
jne case.0x495ea4.74
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.0048d2f0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc4], 0
je 0x496ffb
mov ecx, ebx
sub ecx, dword [eax + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 8]
mov edi, eax
mov esi, eax
mov eax, dword [edx + 0xc4]
mov eax, dword [eax + 0x18]
and edi, 7
mov edx, 1
mov ecx, edi
shl edx, cl
shr esi, 3
test byte [esi + eax], dl
jne 0x4982a6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc4]
add esi, dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov dl, 1
shl dl, cl
or byte [esi], dl
mov eax, dword [eax + 0x58]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [eax + 0x58]
mov edx, dword [ecx + 4]
cmp edx, dword [ebx + 4]
je 0x4982a6
mov eax, ecx
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
test byte [eax + edx*8 + 8], 1
lea eax, [eax + edx*8]
je 0x497032
mov eax, dword [ebx + 0xc]
jmp 0x497059
call fcn.0048d370
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x497049
mov eax, 1
jmp 0x49704b
xor eax, eax
cmp byte [ebx], 0x16
jne 0x497059
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
test byte [eax + edx*8 + 8], 1
jne 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax + 2], 0
je case.0x495ea4.74
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.0048d600
jmp 0x4982a6
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x70]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov dword [ebp - 0xf0], edx
lea ecx, [ebp - 0x6c]
lea edx, [ebp - 0xf0]
mov dword [ebp - 0x6c], eax
call fcn.00491460
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xf0]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [ebx + 0x48]
mov dword [ebp - 0x24], edx
mov edx, dword [ebx + 0x1c]
mov dword [ebp - 0x28], eax
cmp edx, dword [edi + 0x20]
je 0x49720c
cmp byte [ebx + 2], 0
je 0x497157
cmp byte [ebx], 3
jne 0x4973e0
mov eax, dword [ebx + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], eax
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x98], eax
mov dword [ebx + 0x4c], ecx
jmp 0x4971a0
mov esi, dword [ebx + 0x28]
mov eax, esi
mov dword [ebp - 0x18], esi
call fcn.004859f0
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0x50], edx
mov edx, dword [ebp - 0x18]
lea esi, [ebp - 0x98]
call fcn.00485f30
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x50]
cmp eax, dword [ebp - 0x98]
ja 0x49718b
mov dword [ebx + 0x54], eax
jmp 0x4971a0
mov ecx, dword [ebp - 0x10]
cmp eax, dword [ecx + 0x60]
ja 0x49613b
mov edx, dword [ebp - 0x98]
mov dword [ebx + 0x54], edx
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4971bf
movzx eax, al
mov dword [ebp - 0xe4], eax
mov ecx, 1
jmp 0x4971d3
lea esi, [ebp - 0xe4]
call fcn.004732a0
movzx ecx, al
mov eax, dword [ebp - 0xe4]
movzx ecx, cl
mov dword [ebx + 0x30], ecx
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov word [ebx + 0x3a], dx
mov dword [ecx], eax
cmp dword [ebp - 0x98], eax
jae 0x497297
xor ecx, ecx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x54], ecx
cmp eax, 0x18003
ja 0x49a8f2
cmp eax, dword [ebx + 0x50]
ja 0x49a8f2
movzx ecx, word [ebx + 0x3a]
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
jg 0x4973f0
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebp - 0x24]
cmp edx, dword [ecx]
jae 0x4973a4
cmp dword [ebx + 0x4c], 0
jne 0x4972a7
xor eax, eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ecx]
mov edx, dword [ebx + 0x28]
push eax
lea eax, [ebp - 0x1d4]
call fcn.0048db90
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x20], eax
jmp 0x4972ad
test eax, eax
je 0x49720c
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0x20], edx
jmp 0x4972ad
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x20], ecx
movzx esi, word [ebx + 0x3a]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + esi*4]
mov eax, dword [ebx + 0x30]
mov edx, dword [edx]
add eax, dword [ebp - 0x20]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edx
lea edx, [ebx + esi*4 + 0x58]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x40], edx
movzx edx, byte [eax]
mov dword [ebp - 0x4c], edx
cmp edx, 0x80
jae 0x497303
inc eax
mov dword [ebp - 0x2c], eax
movzx eax, dl
movzx eax, byte [eax + 0x53bf60]
cdq
add ecx, eax
adc dword [ebp - 0x78], edx
mov dword [ebp - 0x7c], ecx
jmp 0x497326
mov ecx, dword [ebp - 0x2c]
lea esi, [ebp - 0x4c]
call fcn.004732a0
movzx ecx, al
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x2c], ecx
call fcn.004915e0
add dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0x1c]
adc dword [ebp - 0x78], 0
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], edx
mov edx, dword [ebp - 0x24]
add ecx, 4
inc esi
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x7c]
mov dword [edx + esi*4], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x6c]
jg 0x497352
cmp eax, edx
jb 0x4972dc
jmp 0x497356
cmp eax, edx
jb 0x497372
cmp eax, edx
ja 0x49a904
cmp ecx, dword [ebx + 0x50]
jne 0x49a904
xor edx, edx
cmp dword [ebp - 0x78], edx
jne 0x49a904
xor edx, edx
cmp dword [ebp - 0x78], edx
ja 0x49a904
jb 0x497388
cmp ecx, dword [ebx + 0x50]
ja 0x49a904
sub eax, dword [ebp - 0x20]
mov word [ebx + 0x3a], si
mov dword [ebx + 0x30], eax
cmp dword [ebx + 0x4c], edx
jne 0x4973ab
lea eax, [ebp - 0x1d4]
call fcn.0048d240
jmp 0x4973ab
mov dword [ebp - 0x4c], 0
movzx eax, word [ebx + 0x3a]
cmp eax, dword [ebp - 0x6c]
jg 0x4973f7
mov eax, dword [ebp - 8]
cmp byte [eax + 1], 0xf5
jne 0x4973dd
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x28]
push 0x800
push ecx
push edx
call fcn.0048d7b0
mov ebx, dword [ebp - 8]
add esp, 0xc
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp - 0x28]
call fcn.0048d600
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + eax*4 + 0x58]
mov dword [ebp - 0x4c], eax
mov esi, dword [ebp - 0x28]
mov ecx, 0x2460
test word [esi + 8], cx
je 0x49740c
mov eax, esi
call fcn.0048d600
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x6c]
cmp ecx, dword [eax + edx*4 + 4]
jb 0x4974bd
mov ecx, dword [ebx + 0x4c]
add ecx, dword [eax + edx*4]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x20], ecx
cmp edx, 0xc
jae 0x497442
mov eax, esi
call fcn.00491700
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
lea ebx, [edx - 0xc]
mov dl, byte [ebp - 0x35]
shr ebx, 1
lea eax, [ebx + 2]
mov dword [esi + 0xc], ebx
mov byte [esi + 0xa], dl
cmp dword [esi + 0x18], eax
jge 0x49747d
push 0
push eax
mov ecx, 1
push esi
mov word [esi + 8], cx
call fcn.0048ccf0
add esp, 0xc
test eax, eax
jne 0x49abb8
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
jmp 0x497483
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
push ebx
push ecx
push eax
call sub.MSVCR100.dll_memcpy
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x4c]
mov byte [ebx + ecx], 0
mov edx, dword [esi + 0x10]
add esp, 0xc
mov byte [ebx + edx + 1], 0
mov ebx, dword [ebp - 8]
and eax, 1
mov ax, word [eax*2 + 0x53c054]
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x495e8e
mov cl, byte [ebp - 0x35]
mov edx, dword [ebp - 8]
mov byte [esi + 0xa], cl
movzx eax, word [edx + 2]
mov edx, dword [ebp - 0x4c]
test al, 0xc0
je 0x4974df
cmp edx, 0xc
jb 0x4974db
test dl, 1
je 0x4974ec
test al, al
js 0x4974ec
mov eax, edx
call fcn.004915e0
mov ecx, eax
test ecx, ecx
jne 0x497503
mov eax, esi
mov ecx, 0x577354
call fcn.00491700
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edx*4]
mov edx, dword [ebx + 0x28]
push eax
mov eax, esi
call fcn.0048db90
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov edx, dword [ebp - 0x4c]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.00491700
mov ebx, dword [ebp - 8]
mov ecx, 0xefff
and word [esi + 8], cx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea edi, [eax + edx*8]
mov al, byte [esi]
mov ecx, dword [ebp - 0x35]
push ecx
mov ecx, edi
call fcn.00495c00
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x497557
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8 - 0x28]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x40], eax
movzx eax, byte [edi + 0x8f]
xor edx, edx
mov dword [ebp - 0x1c], eax
lea eax, [ebx + ebx*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x20], ecx
cmp esi, edx
je 0x4975ef
mov ebx, dword [ebp - 0x24]
mov al, byte [esi]
mov edx, dword [ebp - 0x35]
push edx
mov ecx, ebx
call fcn.00495c00
mov al, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test al, al
jne 0x4975d6
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
push eax
lea ebx, [ebp - 0xb8]
mov edx, esi
call fcn.004914b0
mov ebx, eax
mov ecx, 0x4000
add esp, 4
mov dword [ebp - 0x2c], ebx
mov dword [esi + 0x1c], ebx
test word [esi + 8], cx
je 0x497650
mov edx, dword [ebp - 0xb4]
or edx, dword [ebp - 0xb0]
je 0x497636
call fcn.0048cf00
test eax, eax
jne 0x49abb8
jmp 0x497650
mov ecx, dword [esi]
mov ebx, dword [ebp - 0x2c]
mov eax, ecx
cdq
add dword [ebp - 0x94], eax
adc dword [ebp - 0x90], edx
sub dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0xb8]
add dword [ebp - 0xb4], eax
adc dword [ebp - 0xb0], 0
cmp ebx, 0x7f
ja 0x49766f
mov eax, 1
jmp 0x49767a
push 0
push ebx
call fcn.00473310
add esp, 8
mov ebx, dword [ebp - 0x18]
add ebx, eax
mov dword [ebp - 0x18], ebx
cmp esi, dword [ebp - 0x24]
je 0x49768f
sub esi, 0x28
jmp 0x4975f2
cmp ebx, 0x7e
jle 0x4976b3
mov eax, ebx
cdq
push edx
push eax
call fcn.00473310
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
call fcn.00473310
add esp, 0x10
cmp esi, eax
jge 0x4976b4
inc ebx
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
mov eax, ebx
cdq
add esi, eax
adc ecx, edx
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x13c], eax
mov eax, dword [edx + 0x60]
mov dword [ebp - 0x12c], esi
add esi, dword [ebp - 0x94]
cdq
adc ecx, dword [ebp - 0x90]
cmp ecx, edx
jg 0x49613e
jl 0x4976fe
cmp esi, eax
ja 0x49613e
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x12c]
cmp dword [esi + 0x18], eax
jge 0x497739
push 0
mov ecx, eax
push ecx
push esi
call fcn.0048ccf0
add esp, 0xc
test eax, eax
jne 0x49abb8
mov esi, dword [esi + 0x10]
mov dword [ebp - 0x1c], esi
cmp ebx, 0x80
jae 0x497746
mov byte [esi], bl
mov eax, 1
jmp 0x49775c
mov edx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], edx
jmp 0x497722
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x13c]
push eax
push ecx
call fcn.004730c0
add esp, 8
movzx edx, al
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
jmp 0x497770
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x80
jae 0x49778e
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], cl
mov eax, 1
jmp 0x4977a5
mov esi, dword [ebp - 0x28]
push 0
push ecx
mov ecx, dword [ebp - 0x1c]
lea esi, [esi + ecx]
call fcn.004730c0
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov esi, dword [ebp - 0x18]
movzx edx, al
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x28], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.00491600
add esi, eax
add ebx, 0x28
mov dword [ebp - 0x18], esi
cmp ebx, dword [ebp - 0x40]
jbe 0x497770
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 8]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x94]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [ebp - 0x90]
je case.0x495ea4.74
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 4]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x28]
lea edx, [ebp - 0x10c]
xor edi, edi
push edx
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x108], edi
call fcn.0048a870
add esp, 4
mov dword [ebp - 0xc], eax
cmp eax, edi
jne 0x496154
mov eax, dword [ebp - 8]
mov edx, esi
call fcn.00495dc0
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x108]
mov ebx, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x497932
cmp dword [esi + 0xa4], ecx
jg 0x49a6a4
call fcn.004722b0
mov edi, eax
mov eax, dword [esi + 0x1b4]
add eax, dword [esi + 0x1b0]
push eax
push 0
push esi
call fcn.004d2af0
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
push eax
lea ecx, [edi + 0x21]
push ecx
mov eax, esi
call fcn.0046fc10
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4982b6
mov edx, dword [ebp - 0x1c]
inc edi
push edi
lea eax, [ebx + 0x20]
push edx
push eax
mov dword [ebx], eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x4978ee
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x4978f4
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov dword [ebx + 0x18], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], ebx
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x1bc]
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0x1c4]
mov dword [ebx + 0x14], ecx
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edi, dword [esi + 0x1a8]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x40], edi
test edi, edi
je 0x497961
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi]
call fcn.004725d0
test eax, eax
je 0x497981
mov edi, dword [edi + 0x18]
inc dword [ebp - 0x24]
mov dword [ebp - 0x40], edi
test edi, edi
jne 0x497946
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp + 8]
push ecx
push str.no_such_savepoint:__s
call fcn.0048e1d0
add esp, 8
mov dword [ebp - 0xc], 1
jmp 0x496154
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp dword [esi + 0xa4], ecx
jle 0x497997
cmp eax, 1
je 0x49a6bd
cmp dword [edi + 0x18], ecx
jne 0x4979e9
cmp byte [esi + 0x4b], cl
je 0x4979e9
mov dword [ebp - 0x1c], 1
cmp eax, 1
jne 0x4979ec
mov edi, dword [ebp + 8]
push eax
mov eax, edi
call fcn.00490af0
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x49aa1f
mov eax, edi
mov byte [esi + 0x43], 1
call fcn.00490b60
cmp eax, 5
je 0x49a927
mov byte [esi + 0x4b], 0
mov edx, dword [edi + 0x28]
mov dword [ebp - 0xc], edx
jmp 0x497aa6
mov dword [ebp - 0x1c], ecx
mov edx, dword [esi + 0x1b0]
sub edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
cmp eax, 2
jne 0x497a4f
mov eax, dword [esi + 0x18]
shr eax, 0x17
and eax, 1
xor edi, edi
mov dword [ebp - 0x18], eax
cmp dword [esi + 0x14], ecx
jle 0x497a52
xor ecx, ecx
test eax, eax
sete cl
xor ebx, ebx
mov dword [ebp - 0x2c], ecx
lea ecx, [ecx]
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ebx + 4]
push edx
push 0x204
push ecx
call fcn.00485450
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
inc edi
add ebx, 0x10
cmp edi, dword [esi + 0x14]
jl 0x497a20
jmp 0x497a52
mov dword [ebp - 0x18], ecx
xor edi, edi
cmp dword [esi + 0x14], edi
jle 0x497a8b
xor ebx, ebx
jmp 0x497a60
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [esi + 0x10]
push edx
push eax
mov eax, dword [ecx + ebx + 4]
call fcn.004856d0
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
inc edi
add ebx, 0x10
cmp edi, dword [esi + 0x14]
jl 0x497a60
cmp dword [ebp - 0x18], 0
je 0x497aa6
mov eax, esi
call fcn.00492b00
mov eax, esi
call fcn.004ac990
or dword [esi + 0x18], 0x800000
mov edi, dword [ebp - 0x40]
cmp dword [esi + 0x1a8], edi
je 0x497b1e
jmp 0x497ac0
cmp dword [esi + 0x1c8], 0
mov eax, dword [esi + 0x1a8]
mov edx, dword [eax + 0x18]
mov dword [esi + 0x1a8], edx
je 0x497ae1
mov ecx, esi
call fcn.0046f850
jmp 0x497b10
cmp eax, dword [esi + 0x120]
jb 0x497b07
cmp eax, dword [esi + 0x124]
jae 0x497b07
mov ecx, dword [esi + 0x11c]
mov dword [eax], ecx
dec dword [esi + 0x108]
mov dword [esi + 0x11c], eax
jmp 0x497b10
push eax
call fcn.0046f7e0
add esp, 4
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], edi
jne 0x497ac0
mov ebx, dword [ebp - 0x28]
cmp ebx, 1
jne 0x497b4a
mov edx, dword [edi + 0x18]
mov eax, edi
mov ecx, esi
mov dword [esi + 0x1a8], edx
call fcn.0046f8d0
cmp dword [ebp - 0x1c], 0
jne 0x496a85
dec dword [esi + 0x1b0]
jmp 0x497b7d
cmp dword [ebp - 0x1c], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x1b8], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x1bc], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x1c0], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c4], eax
je 0x497b7d
cmp ebx, 2
jne 0x496a85
mov ecx, dword [ebp - 0x24]
push ecx
push ebx
push esi
call fcn.004d2af0
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0x10]
test ecx, ecx
je 0x497bb8
test dword [esi + 0x18], 0x80000
jne 0x49aa72
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add edx, edx
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x497c8c
push ecx
push eax
call fcn.00484700
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x49aa7e
mov edi, dword [ebp + 8]
cmp dword [ebx + 8], eax
je 0x497c67
test byte [edi + 0x94], 0x40
je 0x497c67
cmp byte [esi + 0x43], al
je 0x497c03
cmp dword [esi + 0xa0], 1
jle 0x497c67
cmp dword [edi + 0x30], 0
jne 0x497c1e
mov ecx, dword [esi + 0x1b0]
inc dword [esi + 0x1b4]
add ecx, dword [esi + 0x1b4]
mov dword [edi + 0x30], ecx
mov edx, dword [edi + 0x30]
dec edx
push edx
push 0
push esi
call fcn.004d2af0
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x497c43
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0x18]
call fcn.00485670
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x1b8]
mov dword [edi + 0x48], eax
mov ecx, dword [esi + 0x1bc]
mov dword [edi + 0x4c], ecx
mov edx, dword [esi + 0x1c0]
mov dword [edi + 0x50], edx
mov eax, dword [esi + 0x1c4]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0xbc]
push ecx
push 1
call fcn.0048a790
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add esp, 8
add edx, edx
mov ecx, dword [eax + edx*8 + 0xc]
mov eax, dword [ecx + 4]
jmp 0x497c97
mov edi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp word [ebx + 2], 0
je 0x497cb6
mov edx, dword [ebp - 0xbc]
cmp edx, dword [ebx + 0xc]
jne 0x49a6d6
cmp eax, dword [ebx + 0x10]
jne 0x49a6d6
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x10]
push ecx
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
call fcn.0048a790
mov edx, dword [ebp + 8]
add esp, 8
mov eax, ebx
call fcn.00495dc0
mov ecx, eax
mov eax, dword [ebp - 0x130]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
mov edi, dword [ebp - 0x10]
mov eax, dword [ebx + 8]
shl esi, 4
add esi, dword [edi + 0x10]
push edx
push eax
mov eax, dword [esi + 4]
call fcn.0048a7f0
mov edx, eax
mov eax, dword [ebx + 8]
add esp, 8
mov dword [ebp - 0xc], edx
cmp eax, 1
jne 0x497d4a
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 0x800000
jmp 0x497d58
cmp eax, 2
jne 0x497d58
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], 1
jne 0x497d6f
mov eax, edi
call fcn.00492b00
mov eax, dword [ebp + 8]
and dword [eax + 0x94], 0xfffffffe
test edx, edx
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + edx*4]
test edi, edi
je case.0x495ea4.104
mov edx, dword [edi + 0x34]
cmp edx, dword [ebx + 8]
je 0x497e87
mov eax, dword [ebp + 8]
test byte [eax + 0x94], 1
jne 0x49aaae
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x10]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
shl eax, 4
add eax, dword [edx + 0x10]
xor edi, edi
mov edx, dword [eax + 4]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x28], edx
cmp cl, 0x69
jne 0x497df6
movzx ecx, word [ebx + 2]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 8]
cmp al, byte [ecx + 0x8f]
jae 0x497df9
mov byte [ecx + 0x8f], al
jmp 0x497df9
mov dword [ebp - 0x40], edi
test byte [ebx + 2], 0x10
je 0x497e0f
mov edx, dword [ebp - 0x14]
lea ecx, [esi + esi*4]
lea esi, [edx + ecx*8]
call fcn.0048d410
mov esi, dword [esi]
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x497e28
mov eax, dword [ebx + 0x10]
movzx edi, word [eax + 8]
mov dword [ebp - 0x18], eax
movzx eax, word [eax + 6]
add edi, eax
jmp 0x497e2f
cmp al, 0xfd
jne 0x497e2f
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebx + 4]
push 0
push ecx
push edi
mov edi, dword [ebp + 8]
call fcn.00495a90
mov edi, eax
add esp, 0xc
test edi, edi
je 0x49abb5
mov edx, dword [edi + 0x28]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x28]
or dword [edi + 8], 4
push edx
push ebx
push eax
mov eax, esi
mov byte [edi + 2], 1
mov dword [edi + 0x34], esi
call fcn.00485840
mov ecx, dword [ebp - 8]
mov dword [edi + 0x2c], ebx
add esp, 0xc
cmp byte [ecx + 1], 0xf7
mov dword [ebp - 0xc], eax
setne dl
mov byte [edi + 4], dl
mov ebx, ecx
mov al, byte [ebx + 2]
mov ecx, dword [edi + 0x28]
and al, 3
cmp dword [ebp - 0xc], 0
mov byte [ecx + 0x43], al
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edi, dword [ebp + 8]
mov edx, dword [ebx + 8]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
movsx ecx, word [esi + 0x38]
mov ebx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push ecx
call fcn.00495a90
add esp, 0xc
test eax, eax
je 0x49abb5
mov ecx, 1
or dword [eax + 8], ecx
mov byte [eax + 2], cl
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x2c], edx
mov dl, byte [esi + 4]
mov byte [eax + 4], dl
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
push edx
push eax
mov eax, ecx
mov ecx, dword [esi + 0xc]
push 4
call fcn.00485840
mov ebx, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0xc], eax
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp + 8]
push 0
push 0xffffffffffffffff
push ecx
call fcn.00495a90
mov esi, eax
add esp, 0xc
test esi, esi
je 0x49abb5
mov edx, dword [ebp - 8]
mov eax, 1
or dword [esi + 8], eax
mov byte [esi + 2], al
movzx eax, word [edx + 2]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
lea edi, [esi + 0xc]
push edi
push eax
push 0
push ecx
call fcn.00483760
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov edx, dword [edi]
push 1
push edx
call fcn.00484700
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x10]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x497fcb
movzx eax, word [eax + 2]
or eax, 2
push eax
mov eax, dword [edi]
lea ecx, [ebp - 0x144]
push ecx
call fcn.0048a270
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x497fc5
mov edx, dword [esi + 0x28]
mov eax, dword [ebp - 0x144]
mov ecx, dword [edi]
push edx
push ebx
push 4
call fcn.00485840
add esp, 0xc
mov dword [ebp - 0xc], eax
mov byte [esi + 4], 0
jmp 0x497fe9
mov eax, dword [esi + 0x28]
mov ecx, dword [edi]
push eax
push 0
push 4
mov eax, 1
call fcn.00485840
add esp, 0xc
mov dword [ebp - 0xc], eax
mov byte [esi + 4], 1
cmp dword [ebp - 0xc], 0
jne 0x496154
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp word [edx + 2], 8
mov ebx, edx
setne cl
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 8]
and ecx, 4
xor dword [esi + 8], ecx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp + 8]
push 1
push 0xffffffffffffffff
push eax
call fcn.00495a90
add esp, 0xc
test eax, eax
je 0x49abb5
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 0x2c], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.0049c430
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, ecx
or eax, edx
je 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp + 8]
push 3
push 0xffffffffffffffff
push edx
call fcn.00495a90
add esp, 0xc
test eax, eax
je 0x49abb5
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 8]
mov cl, 1
mov byte [eax + 2], cl
mov edx, dword [edx + 8]
mov dword [eax + 0x28], edx
mov byte [eax + 4], cl
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + eax*4]
push esi
call fcn.0048fd40
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
add esp, 4
mov dword [eax + edx*4], 0
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0
mov byte [esi + 2], 0
je 0x4981d0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
and dl, 0xe
cmp dl, 2
jne 0x498145
push 0
mov eax, edi
call fcn.00495b80
add esp, 4
mov ecx, edi
call fcn.0048d2f0
mov dword [ebp - 0x114], eax
movzx eax, word [edi + 8]
mov dword [ebp - 0x110], edx
test al, 4
jne 0x498196
test al, 8
je 0x4982a6
fild qword [ebp - 0x114]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x498184
test byte [ebp - 0x20], 1
fstp st(0)
je 0x498196
dec dword [ebp - 0x20]
jmp 0x498196
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x498196
test byte [ebp - 0x20], 1
jne 0x498196
inc dword [ebp - 0x20]
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x114]
mov ecx, dword [esi + 0x28]
lea eax, [ebp - 0x50]
push eax
push 0
push ebx
push edi
push 0
push ecx
call fcn.00486300
add esp, 0x18
mov dword [ebp - 0xc], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
test eax, eax
jne 0x496154
xor edi, edi
jmp 0x498257
mov edx, dword [esi + 0x28]
test byte [edx + 0x43], 2
je 0x4981e0
mov dword [ebp - 0x1c], 1
test byte [ebp - 0x20], 1
mov eax, dword [esi + 0x2c]
mov cx, word [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
sete dl
mov dword [ebp - 0x15c], eax
mov word [ebp - 0x154], cx
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + ebx*4]
xor edi, edi
mov byte [ebp - 0x14e], 0
lea edx, [edx + edx - 1]
mov byte [ebp - 0x152], dl
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x50]
push eax
push edi
push edi
push edi
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x158], edx
mov edx, dword [esi + 0x28]
push ecx
push edx
call fcn.00486300
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp eax, edi
jne 0x496154
cmp dword [ebp - 0x1c], edi
je 0x498257
cmp byte [ebp - 0x14e], 0
je 0x4982db
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
cmp ecx, 0x1a
jl 0x4982c1
cmp eax, edi
jl 0x498279
jne 0x498274
cmp ecx, 0x1b
je 0x498279
mov dword [ebp - 0x50], edi
jmp 0x4982e0
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [ebp - 0x50], edi
call fcn.00486990
add esp, 8
mov dword [ebp - 0xc], eax
cmp eax, edi
je 0x4982e0
cmp eax, 0x65
jne 0x496154
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x50], 1
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx + 8]
mov edx, dword [ebp - 0x30]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
cmp eax, edi
jg 0x4982f4
jne 0x4982cc
cmp ecx, 0x18
je 0x4982f4
mov ecx, dword [esi + 0x28]
xor edx, edx
cmp byte [ecx + 0x42], 1
setne dl
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], edi
jne 0x4982a3
cmp dword [ebp - 0x1c], edi
je 0x4982b6
add dword [ebp - 8], 0x14
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [ebp - 0x50], edi
call fcn.00486b00
add esp, 8
mov dword [ebp - 0xc], eax
cmp eax, edi
je 0x4982e0
cmp eax, 0x65
jmp 0x498293
cmp dword [ebx + 0x10], 0
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [edx + ecx*4]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], eax
jle 0x49835d
mov ecx, dword [ecx + 0x2c]
mov dx, word [ebx + 0x10]
mov dword [ebp - 0x254], ecx
mov word [ebp - 0x24c], dx
mov dword [ebp - 0x250], eax
lea esi, [ebp - 0x254]
mov dword [ebp - 0x18], 0
jmp 0x4983ae
mov ecx, 0x4000
test word [eax + 8], cx
je 0x498378
mov esi, dword [ebp - 0x24]
call fcn.0048cf00
test eax, eax
jne 0x49abb8
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x2c]
call fcn.00491880
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x49abb8
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
push esi
push ecx
mov ecx, dword [eax + 0x2c]
push edx
push ecx
call fcn.004918e0
mov ebx, dword [ebp - 8]
add esp, 0x10
mov byte [esi + 0xa], 0
xor edi, edi
cmp byte [ebx], 0x1c
jne 0x4983e8
xor edx, edx
xor ecx, ecx
cmp dx, word [esi + 8]
jae 0x4983e8
mov eax, dword [esi + 4]
add eax, 8
lea esp, [esp]
test byte [eax], 1
jne 0x4983e3
movzx edx, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4983d0
jmp 0x4983e8
mov edi, 1
lea eax, [ebp - 0x140]
push eax
push 0
push 0
push 0
push esi
mov esi, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x28]
push ecx
call fcn.00486300
mov ebx, eax
mov eax, dword [ebp - 0x18]
add esp, 0x18
mov dword [ebp - 0xc], ebx
test eax, eax
je 0x498419
mov ecx, dword [ebp - 0x10]
call fcn.0046f890
test ebx, ebx
jne 0x496154
mov ecx, dword [ebp - 0x140]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp - 8]
sub dl, al
mov byte [esi + 2], dl
mov byte [esi + 3], bl
mov dword [esi + 0x1c], ebx
cmp byte [ecx], 0x1e
jne 0x498458
test eax, eax
jne 0x4982a3
mov ebx, ecx
add ebx, 0x14
jmp 0x495e8e
test edi, edi
jne 0x4982a3
test eax, eax
je 0x4982a3
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
movzx eax, word [esi + 8]
test al, 4
jne case.0x495ea4.32
test al, 8
jne 0x49849d
test al, 2
je 0x4984a2
push 1
mov eax, esi
call fcn.00495b80
add esp, 4
jmp 0x4984a2
call fcn.0048d3a0
test byte [esi + 8], 4
je 0x4982a6
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
mov edx, dword [esi + 0x28]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
lea ecx, [ebp - 0xf4]
push ecx
push 0
push eax
push edi
push 0
push edx
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0x240], eax
call fcn.00486300
mov edx, dword [ebp - 0x240]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xf4]
add esp, 0x18
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edx
mov dword [esi + 0x1c], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x498531
cmp dword [ebx + 8], 0
jne 0x4982a6
mov eax, 0x144b0
call fcn.004e60d0
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp + 8]
mov eax, ebx
mov edx, esi
call fcn.00495dc0
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x70]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + edx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
xor edi, edi
xor esi, esi
mov eax, ebx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0xa8], edi
call fcn.00495dc0
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + 0x70]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 2
mov dword [ebp - 0x24], eax
jne 0x49861c
mov ebx, eax
mov eax, dword [ebx + 0x28]
lea edi, [ebp - 0xa8]
call fcn.004862b0
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
cmp dword [ebp - 0xa8], esi
je 0x4985df
mov dword [ebp - 0x5c], 1
xor edi, edi
jmp 0x498613
mov esi, dword [ebx + 0x28]
mov eax, esi
call fcn.004859f0
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edi
cmp edi, 0x7fffffff
jl 0x49860a
jg 0x498604
cmp eax, 0xffffffff
jb 0x49860a
or dword [ebx + 8], 2
jmp 0x498616
add eax, 1
mov dword [ebp - 0x5c], eax
adc edi, 0
mov dword [ebp - 0x58], edi
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4986a8
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc4]
test ecx, ecx
je 0x498654
mov eax, dword [ecx + 4]
test eax, eax
je 0x498649
jmp 0x498640
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x498640
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x49865d
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x14]
lea esi, [edx + ecx*8]
call fcn.0048d410
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x498678
cmp ecx, 0x7fffffff
je 0x49871b
mov edx, dword [ebp - 0x24]
test byte [edx + 8], 2
jne 0x49871b
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x49869e
jl 0x498696
cmp dword [ebp - 0x5c], eax
jae 0x49869e
mov edi, ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edi
mov eax, dword [ebp - 0x5c]
mov dword [esi], eax
mov dword [esi + 4], edi
mov esi, eax
mov ecx, dword [ebp - 0x24]
test byte [ecx + 8], 2
je 0x49872a
mov dword [ebp - 0x18], 0
mov ebx, ecx
lea ebx, [ebx]
lea edx, [ebp - 0x5c]
push edx
push 8
call fcn.00471830
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebx + 0x28]
lea eax, [ebp - 0xa8]
push eax
and edi, 0x3fffffff
add esi, 1
push 0
adc edi, 0
push edi
push esi
push 0
push ecx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], edi
call fcn.00486300
add esp, 0x20
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
cmp dword [ebp - 0xa8], eax
jne 0x498727
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x64
jl 0x4986c0
mov dword [ebp - 0xc], 0xd
jmp 0x496154
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x20]
mov dword [eax], esi
mov dword [eax + 4], edi
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x70]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
mov edi, dword [edi + eax*4]
mov eax, dword [ebx + 0xc]
xor esi, esi
cmp cl, 0x74
jne 0x49877f
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x1a0], ecx
jmp 0x498786
cdq
mov dword [ebp - 0x1a0], edx
cmp byte [ebx + 1], 0xfa
mov dword [ebp - 0x1a4], eax
jne 0x4987ca
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0xdc], esi
je 0x4987ca
movsx edx, byte [edi + 1]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ecx + 0x10]
add edx, edx
mov edx, dword [esi + edx*8]
mov dword [ebp - 0x1c], edx
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x40], edx
mov dl, byte [ebx + 2]
and dl, 4
movzx esi, dl
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x4987d5
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x10]
test byte [ebx + 2], 1
je 0x4987e1
mov edx, dword [ebp + 8]
inc dword [edx + 0x2c]
test byte [ebx + 2], 0x20
je 0x4987f3
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x1a0]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x18]
movzx edx, word [eax + 8]
test dl, 1
je 0x498809
xor eax, eax
mov dword [ebp - 0x19c], eax
jmp 0x498815
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x190], eax
movzx eax, word [ebx + 2]
test al, 0x10
je 0x498828
mov ecx, dword [edi + 0x20]
jmp 0x49882a
xor ecx, ecx
test edx, 0x4000
je 0x49883f
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
mov dword [ebp - 0x18c], edx
jmp 0x498849
mov dword [ebp - 0x18c], 0
and eax, 0xa
push ecx
push eax
lea eax, [ebp - 0x1ac]
push eax
mov eax, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x1ac], ebx
call fcn.00489980
add esp, 0xc
mov dword [ebp - 0xc], eax
mov byte [edi + 3], bl
mov dword [edi + 0x1c], ebx
cmp eax, ebx
jne 0x496154
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xdc]
cmp eax, ebx
je 0x4982b6
cmp esi, ebx
je 0x4982b6
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1a4]
push edx
mov edx, dword [ebp - 0x40]
push ecx
mov ecx, dword [edx]
mov edx, dword [ebp - 0x1c]
push ecx
mov ecx, dword [ebp - 0x10]
push edx
mov edx, dword [ecx + 0xd8]
push esi
push edx
call eax
mov ebx, dword [ebp - 8]
add esp, 0x18
add ebx, 0x14
jmp 0x495e8e
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x498922
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0xdc], 0
je 0x498922
movsx ecx, byte [esi + 1]
mov edx, dword [eax + 0x10]
add ecx, ecx
test byte [ebx + 2], 2
mov eax, dword [edx + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], ecx
je 0x49892a
cmp byte [esi + 4], 0
je 0x49892a
mov edi, dword [esi + 0x28]
mov eax, edi
call fcn.004859f0
mov edx, dword [edi + 0x10]
mov dword [esi + 0x40], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x44], eax
jmp 0x49892a
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], eax
mov al, byte [ebx + 2]
mov edi, dword [esi + 0x28]
call fcn.00489c90
xor edx, edx
mov dword [ebp - 0xc], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edx
cmp eax, edx
jne 0x496154
test byte [ebp - 0x1c], 1
je 0x4982b6
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xdc]
cmp eax, edx
je 0x4982b6
mov edx, dword [ebp - 0x18]
test byte [edx + 0x24], 0x20
jne 0x4982b6
mov edi, dword [esi + 0x44]
mov esi, dword [esi + 0x40]
mov edx, dword [edx]
mov ecx, dword [ecx + 0xd8]
push edi
push esi
push edx
mov edx, dword [ebp - 0x40]
push edx
push 9
push ecx
call eax
mov ebx, dword [ebp - 8]
add esp, 0x18
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x2c]
mov eax, dword [ebp - 0x10]
add dword [eax + 0x5c], ecx
mov dword [eax + 0x58], ecx
mov dword [edx + 0x2c], 0
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x10]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx + edx*8]
lea edx, [ebp - 0xec]
push edx
push ebx
push ecx
mov dword [ebp - 0xec], 0
call fcn.0049e6f0
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
cmp dword [ebp - 0xec], eax
jne 0x4982a3
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
call fcn.0049e650
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
mov ebx, dword [ebp - 8]
mov dword [eax + 0x1c], 0
add ebx, 0x14
jmp 0x495e8e
mov edi, dword [ebp + 8]
mov eax, ebx
mov edx, edi
call fcn.00495dc0
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x70]
mov esi, eax
mov eax, dword [edx + ecx*4]
mov ebx, dword [eax + 0x28]
mov eax, ebx
call fcn.004859f0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x10]
cmp ecx, dword [edx + 0x60]
ja 0x49613e
push 0
mov eax, esi
mov edx, ebx
call fcn.0048db90
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov eax, dword [ebp - 8]
cmp dword [eax + 0xc], 0
jne 0x4982b6
mov ecx, 0x1000
test word [esi + 8], cx
je 0x4982b6
push esi
call fcn.0048ce80
add esp, 4
test eax, eax
jne 0x49abb8
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edi, dword [ebp + 8]
mov eax, ebx
mov edx, edi
call fcn.00495dc0
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [edi + 0x70]
mov edi, dword [eax + edx*4]
cmp byte [edi + 2], 0
je 0x498b0c
mov ecx, 1
mov word [esi + 8], cx
add ebx, 0x14
jmp 0x495e8e
cmp byte [edi + 3], 0
je 0x498b39
mov edx, dword [edi + 0x40]
mov dword [ebp - 0xd4], edx
mov eax, dword [edi + 0x44]
mov dword [ebp - 0xd0], eax
mov eax, edx
mov dword [esi], eax
mov ecx, dword [ebp - 0xd0]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x495e8e
cmp byte [edi], 2
jne 0x498b87
mov eax, dword [edi + 0x28]
mov edi, dword [eax]
mov ecx, dword [edi]
lea edx, [ebp - 0xd4]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov ecx, dword [ebp + 8]
mov ebx, eax
push ecx
mov dword [ebp - 0xc], ebx
call fcn.00492bd0
add esp, 0xc
test ebx, ebx
jne 0x496154
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 8]
mov dword [esi], eax
mov ecx, dword [ebp - 0xd0]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [edi + 0x28]
cmp byte [edx + 0x42], 1
je 0x498bba
call fcn.00491420
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
cmp byte [edi + 2], 0
je 0x498bc3
mov eax, 1
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x495e8e
mov dword [ebp - 0xc], 0
jmp 0x498ba3
mov edi, dword [edi + 0x28]
mov eax, edi
call fcn.004859f0
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xd4], ecx
mov edx, dword [edi + 0x14]
mov dword [ebp - 0xd0], edx
mov eax, ecx
mov dword [esi], eax
mov ecx, dword [ebp - 0xd0]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x495ea4.74
mov esi, dword [eax + 0x28]
call fcn.00482010
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x70]
mov esi, dword [ecx + edx*4]
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x20], edx
cmp dword [ebx + 0xc], 0
mov dword [ebp - 0xf8], 0
je 0x498c53
cmp byte [eax + 0x42], 1
je case.0x495ea4.74
lea edi, [ebp - 0xf8]
call fcn.004862b0
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0xc], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x496154
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0
jle 0x4982b6
test ecx, ecx
jne 0x4982a3
mov ebx, eax
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov esi, dword [ecx + 0x28]
lea edi, [ebp - 0xdc]
mov eax, esi
call fcn.00486280
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
cmp dword [ebp - 0xdc], eax
jne 0x4982a3
push esi
call fcn.00486810
add esp, 4
test edx, edx
jl 0x4982b6
jg 0x498cea
test eax, eax
jb 0x4982b6
push edx
push eax
call fcn.004736e0
movsx edx, ax
mov eax, dword [ebp - 8]
add esp, 8
cmp edx, dword [eax + 0xc]
jge 0x4982b6
mov dword [ebp - 0xdc], 1
jmp 0x4982a3
mov eax, dword [ebp + 8]
inc dword [eax + 0xa8]
jmp 0x498d20
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi], 1
mov dword [ebp - 0xc0], 1
lea edi, [ebp - 0xc0]
jne 0x498d47
mov ecx, esi
call fcn.0049e560
jmp 0x498d5a
mov eax, dword [esi + 0x28]
call fcn.00486280
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov eax, dword [ebp - 0xc0]
mov byte [esi + 2], al
test eax, eax
jne 0x4982a3
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
mov edx, dword [ebp - 0x10]
push edx
mov eax, esi
call fcn.0049e5b0
add esp, 4
mov dword [ebp - 0xc], eax
jmp 0x498dd4
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
cmp dword [ecx + eax*4], 0
je case.0x495ea4.74
jmp 0x498db8
mov edi, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + 0x28]
mov eax, dword [ebx + 0x10]
push ecx
push edx
call eax
add esp, 8
mov dword [ebp - 0xc], eax
xor ecx, ecx
mov dword [esi + 0x1c], ecx
cmp eax, ecx
jne 0x498df7
mov byte [esi + 2], cl
movzx ecx, word [ebx + 2]
inc dword [edi + ecx*4 + 0xa0]
lea eax, [edi + ecx*4 + 0xa0]
jmp case.0x495ea4.13
cmp eax, 0x65
jne 0x496154
mov dword [ebp - 0xc], ecx
mov byte [esi + 2], 1
jmp 0x49a22f
test byte [ebx + 2], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov eax, dword [ecx + 0x70]
mov edi, dword [eax + edx*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
je 0x498e2d
inc dword [ecx + 0x2c]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x498e4b
call fcn.0048cf00
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
cmp byte [ebx], 0x7d
jne 0x498e5d
push esi
mov eax, edi
call fcn.0049d5d0
add esp, 4
jmp 0x498ec0
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x14]
cdq
mov dword [ebp - 0x27c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x278], edx
mov edx, dword [esi + 0x10]
lea eax, [eax + eax*4]
mov dword [ebp - 0x284], edx
lea edx, [ecx + eax*8]
mov ax, word [ebx + 0x10]
mov word [ebp - 0x26c], ax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x270], edx
test al, 0x10
je 0x498ea0
mov ecx, dword [edi + 0x20]
jmp 0x498ea2
xor ecx, ecx
push ecx
and eax, 0xa
push eax
mov eax, dword [edi + 0x28]
lea ecx, [ebp - 0x284]
push ecx
call fcn.00489980
add esp, 0xc
mov dword [edi + 0x1c], 0
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov edx, dword [ebx + 4]
mov esi, dword [ecx + edx*4]
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov ax, word [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x23c], edx
mov edx, dword [ebp - 0x14]
lea ecx, [ebx + ebx*4]
mov word [ebp - 0x234], ax
lea eax, [edx + ecx*8]
lea ecx, [ebp - 0x148]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x23c]
push edx
push edi
mov byte [ebp - 0x232], 0
mov dword [ebp - 0x238], eax
call fcn.00486300
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
cmp dword [ebp - 0x148], eax
jne 0x498f54
mov al, 4
call fcn.00489c90
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x70]
mov edi, dword [edx + eax*4]
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x42], 1
je 0x49900c
call fcn.00491420
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
cmp byte [edi + 2], 0
jne 0x499039
mov edx, dword [ebp - 0x10]
mov eax, dword [edi + 0x28]
lea ecx, [ebp - 0xcc]
push ecx
xor esi, esi
push edx
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], esi
call fcn.004928d0
add esp, 8
mov dword [ebp - 0xc], eax
cmp eax, esi
jne 0x496154
mov eax, dword [ebp - 8]
cmp byte [eax], 0x80
mov edx, dword [ebp + 8]
jne 0x499018
mov edx, dword [edx + 0x70]
mov ecx, dword [eax + 0xc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp - 0xcc]
mov ebx, dword [ebp - 8]
mov dword [ecx + 0x40], edx
mov edx, dword [ebp - 0xc8]
mov dword [ecx + 0x44], edx
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x24], edi
add ebx, 0x14
jmp 0x495e8e
mov dword [ebp - 0xc], 0
jmp 0x498f93
call fcn.00495dc0
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xc8]
mov ebx, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.0048d600
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x22c], edx
mov dx, word [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
cmp cl, 0x28
sbb cl, cl
mov word [ebp - 0x224], dx
mov byte [ebp - 0x222], cl
mov ecx, dword [ebp - 0x14]
lea edx, [ebx + ebx*4]
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x228], edx
mov edx, dword [ebp - 0x10]
push ecx
push edx
lea ebx, [ebp - 0x74]
mov dword [ebp - 0x74], 0
call fcn.00492a10
mov ecx, dword [ebp - 8]
add esp, 8
test byte [ecx], 1
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0xc], eax
jne 0x4990be
neg ecx
jmp 0x4990bf
inc ecx
mov dword [ebp - 0x74], ecx
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
test ecx, ecx
jg 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp + 8]
mov eax, ebx
mov edx, esi
call fcn.00495dc0
mov edi, eax
mov eax, dword [ebp - 0x10]
mov edx, 1
mov word [edi + 8], dx
mov ecx, dword [eax + 0xac]
inc ecx
cmp dword [eax + 0xa0], ecx
jg 0x49aaba
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0xe0]
push edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x18], ecx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
push edx
mov dword [ebp - 0xe0], 0
call fcn.0048a740
mov esi, dword [ebp - 0xe0]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [ebp - 0xc], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x496154
test esi, esi
je 0x4982b6
mov eax, dword [ebp - 8]
mov edi, dword [eax + 4]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.004af500
inc bl
mov byte [ebp - 0x45], bl
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0xe8]
and ecx, edx
push ecx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x10]
add eax, eax
mov dword [ebp - 0xe8], 0
mov eax, dword [edx + eax*8 + 4]
call fcn.0048a460
mov ecx, dword [ebp - 8]
add esp, 4
cmp dword [ecx + 0xc], 0
mov esi, eax
mov dword [ebp - 0xc], esi
je 0x4991e9
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp + 8]
add dword [edx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jle 0x4991e9
mov edx, dword [ebp - 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
test esi, esi
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax], 1
jne 0x499227
mov ecx, dword [ebp - 0x10]
mov ebx, dword [eax + 0x28]
push ecx
call fcn.0049c960
mov ebx, dword [ebp - 8]
add esp, 4
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [eax + 0x28]
mov ebx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
call fcn.0048a460
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov edx, dword [ebp - 0x10]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [edx + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x87
mov eax, dword [eax + 4]
setne cl
mov dword [ebp - 0xd8], 0
inc ecx
push ecx
lea ecx, [ebp - 0xd8]
push ecx
call fcn.0048a270
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp - 0x10]
inc byte [esi + 0x4e]
mov edx, dword [ebx + 0x10]
push 0
push 0
push 0
push edx
push esi
call fcn.004bd8d0
dec byte [esi + 0x4e]
add esp, 0x14
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebx + 0x10]
push edx
lea ecx, [edi + 0x6c]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x168], ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov dword [ebp - 0x16c], esi
mov edx, dword [ecx + eax*8]
push str.sqlite_master
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.004715d0
add esp, 0x14
mov dword [ebp - 0x18], eax
test eax, eax
je 0x49a72d
mov ecx, dword [ebp - 0x18]
push 0
lea eax, [ebp - 0x16c]
push eax
push fcn.004c1b30
push ecx
push esi
mov byte [esi + 0x99], 1
mov dword [ebp - 0x160], 0
call fcn.004bd8d0
add esp, 0x14
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x499366
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x18]
mov ecx, esi
call fcn.0046f890
cmp dword [ebp - 0xc], 0
mov byte [esi + 0x99], 0
je case.0x495ea4.74
mov eax, esi
call fcn.004ac990
cmp dword [ebp - 0xc], 7
je 0x49abb8
jmp 0x496154
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x10]
call fcn.004aabf0
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x10]
call fcn.004acd60
mov ebx, dword [ebp - 8]
add esp, 4
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x10]
push ecx
call fcn.004ac740
mov ebx, dword [ebp - 8]
add esp, 4
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x10]
push edx
call fcn.004ce680
add esp, 4
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esi]
lea ecx, [ebp - 0x14c]
push ecx
movzx ecx, word [ebx + 2]
inc eax
push eax
mov eax, dword [ebx + 0x10]
push edx
mov edx, dword [ebp - 0x10]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
push ecx
call fcn.0048b2c0
mov dword [ebp - 0x18], eax
add esp, 0x14
mov eax, edi
call fcn.0048d600
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x49948b
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x49abb5
dec eax
cdq
sub dword [esi], eax
push 1
push ecx
sbb dword [esi + 4], edx
mov eax, fcn.0046f7e0
or ecx, 0xffffffff
mov edx, edi
call fcn.0048d8e0
mov ebx, dword [ebp - 8]
add esp, 8
movzx ecx, byte [ebp - 0x35]
mov eax, edi
call fcn.0048ccd0
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebx + 8]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x4994cc
call fcn.0048d6a0
test byte [esi + 8], 0x20
je 0x49abb5
mov ebx, dword [ebp - 8]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov esi, dword [esi]
push ecx
push edx
call fcn.004793e0
add esp, 8
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x499530
mov eax, dword [edi]
lea esi, [ebp - 0x184]
call fcn.00479760
test eax, eax
je 0x499530
mov edx, dword [ebp - 0x180]
mov ebx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x184]
push edx
mov edx, dword [ebp - 0x14]
lea ecx, [ebx + ebx*4]
push eax
lea eax, [edx + ecx*8]
call fcn.0048d660
add esp, 8
jmp 0x49a22f
mov eax, edi
call fcn.0048d600
jmp case.0x495ea4.13
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x20
lea esi, [edi + eax*8]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x10]
lea edi, [edi + ecx*8]
mov dword [ebp - 0x18], eax
jne 0x499573
call fcn.0048d6a0
test byte [esi + 8], 0x20
je 0x49abb5
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x499596
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push edx
push ecx
push eax
mov eax, dword [esi]
call fcn.004797b0
add esp, 0xc
test eax, eax
jne 0x4982a6
mov eax, dword [ebp - 0x18]
test eax, eax
js case.0x495ea4.74
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov esi, dword [esi]
push edx
push eax
call fcn.004793e0
add esp, 8
add ebx, 0x14
jmp 0x495e8e
cmp word [ebx + 2], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
je 0x4995f1
mov eax, dword [edi + 0xc4]
mov edx, dword [ecx + 0x14]
test eax, eax
je 0x4995f1
cmp dword [eax + 0x1c], edx
je case.0x495ea4.74
mov eax, dword [eax + 4]
test eax, eax
jne 0x4995e1
mov edx, dword [edi + 0xcc]
mov eax, dword [ebp - 0x10]
cmp edx, dword [eax + 0x88]
jge 0x49aacd
test byte [esi + 8], 0x40
jne 0x4996e5
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
add ebx, eax
test eax, eax
jne 0x49961d
inc ebx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, 7
lea ecx, [ebx + ebx*4 + 0xa]
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
mov eax, dword [ebp - 0x10]
call fcn.0046fb30
mov esi, eax
add esp, 8
test esi, esi
je 0x49abb8
mov eax, dword [ebp - 0x18]
call fcn.0048d240
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], esi
mov edx, 0x40
mov word [eax + 8], dx
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 0x30]
mov dword [esi], edi
mov dword [esi + 0x3c], ebx
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x5c]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x38], eax
mov edx, dword [edi + 0x70]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0x58]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x88]
mov dword [esi + 0x34], eax
mov ecx, dword [ecx + 0x14]
lea edx, [ebx + ebx*4 + 0xa]
mov dword [esi + 0x1c], ecx
lea ecx, [esi + edx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x4996e7
mov edx, dword [ebp - 0x10]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x4996d0
jmp 0x4996e7
mov esi, dword [esi]
inc dword [edi + 0xcc]
mov eax, dword [edi + 0xc4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x20]
mov dword [esi + 0x20], ecx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x24], edx
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x44], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 0x58]
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0xd8]
mov dword [esi + 0x28], eax
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov dword [edi + 0xd8], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc4], esi
lea eax, [esi + 0x50]
mov dword [edi + 0x5c], eax
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x18], ecx
movzx edx, word [esi + 0x40]
mov dword [edi + 0x1c], edx
mov dword [ebp - 0x14], eax
mov edx, ecx
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*8]
mov dword [edi + 0x70], eax
mov edx, dword [ebx + 0xc]
lea ecx, [eax + edx*4]
mov dword [esi + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.MSVCR100.dll_memset
mov eax, dword [ebx]
add esp, 0xc
mov dword [edi + 0x58], eax
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
add eax, 0xffffffec
mov ebx, eax
mov dword [edi + 0x88], ecx
mov dword [ebp - 8], eax
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp + 8]
mov eax, ebx
mov edx, esi
call fcn.00495dc0
mov edx, dword [esi + 0xc4]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebx + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.0048d7b0
add esp, 0xc
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp - 0x10]
test dword [ecx + 0x18], 0x40000
mov eax, dword [ebx + 8]
cdq
je 0x4997fc
add dword [ecx + 0x1c0], eax
adc dword [ecx + 0x1c4], edx
add ebx, 0x14
jmp 0x495e8e
cmp dword [ebx + 4], 0
je 0x499816
add dword [ecx + 0x1b8], eax
adc dword [ecx + 0x1bc], edx
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp + 8]
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
add ebx, 0x14
jmp 0x495e8e
cmp dword [ebx + 4], 0
je 0x499844
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x495ea4.74
jmp 0x499856
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x40]
or edx, dword [eax + 0x44]
jne case.0x495ea4.74
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x4982a6
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xc4]
test ecx, ecx
je 0x49989b
mov eax, dword [ecx + 4]
test eax, eax
je 0x49988d
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x499884
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x4998a7
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea edi, [eax + edx*8]
mov esi, edi
call fcn.0048d410
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.0048d410
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x495ea4.74
jl 0x4998d9
cmp dword [edi], eax
jae case.0x495ea4.74
mov dword [edi], eax
mov dword [edi + 4], esi
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
test esi, esi
jl case.0x495ea4.74
jg 0x49990b
test edi, edi
je case.0x495ea4.74
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
sbb esi, edx
mov dword [ecx], edi
mov dword [ecx + 4], esi
jmp 0x4982a6
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x14]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
mov edx, dword [ebp + 8]
lea edi, [ecx + eax*8]
mov eax, ebx
call fcn.00495dc0
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x100], esi
test esi, esi
jl 0x49999e
jg 0x49995a
test ecx, ecx
je 0x49999e
mov eax, dword [edi]
mov edi, dword [edi + 4]
test edi, edi
jl 0x499969
jg 0x49996d
test eax, eax
jne 0x49996d
xor eax, eax
xor edi, edi
push edi
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.00473460
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x20]
jne 0x49999e
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x100]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x495e8e
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + edx*8 + 4]
lea edx, [eax + edx*8]
mov eax, dword [edx]
mov esi, eax
or esi, ecx
je case.0x495ea4.74
test ecx, ecx
jl 0x4982a6
jg 0x4999e1
test eax, eax
je 0x4982a6
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4982a6
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 0x80000000
jl 0x499a1b
jg 0x499a10
test edx, edx
je 0x499a1b
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
je 0x4982a6
add ebx, 0x14
jmp 0x495e8e
movzx ebx, word [ebx + 2]
mov eax, dword [ebp - 0x10]
lea edx, [ebx*4 + 0x1c]
push 0
push edx
call fcn.0046fc10
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x49abb5
mov esi, dword [ebp - 8]
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [ebp - 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 8]
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov dword [esi + 0x10], ecx
mov word [esi], 0xf095
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x18], eax
cmp dword [edi + 8], eax
je 0x499ac8
movzx ecx, byte [edi + 0x1a]
dec ecx
mov dword [edi + 8], eax
js 0x499ac8
lea edx, [edi + ecx*4 + 0x1c]
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x499ab2
mov eax, dword [ebp - 0x18]
inc dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x28c], edx
mov dword [ebp - 0x294], 0
mov ecx, 1
mov word [ebp - 0x2a4], cx
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x2ac]
mov dword [edi], eax
movzx eax, byte [edi + 0x1a]
lea edx, [edi + 0x1c]
push edx
push eax
mov word [edi + 0x18], 0
mov ecx, dword [ecx + 0xc]
push edi
call ecx
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x499b59
cmp dword [edi + 0x14], 0
je 0x499b41
lea edx, [ebp - 0x2ac]
push 1
push edx
call fcn.0048dcb0
mov esi, dword [ebp + 8]
push eax
push 0x534fdc
call fcn.0048e1d0
mov eax, dword [edi + 0x14]
mov esi, dword [ebp - 0x14]
add esp, 0x10
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x2ac]
call fcn.0048d240
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
cmp byte [edi + 0x18], 0
je case.0x495ea4.74
mov eax, dword [ebx - 0x10]
test eax, eax
je case.0x495ea4.74
lea ecx, [eax + eax*4]
push 0
push 1
lea eax, [esi + ecx*8]
call fcn.0048d660
add esp, 8
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.0048d080
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x49aae5
movzx ecx, byte [ebp - 0x35]
mov eax, esi
call fcn.0048ccd0
mov ecx, esi
call fcn.0048d750
test eax, eax
jne 0x49613b
add ebx, 0x14
jmp 0x495e8e
or eax, 0xffffffff
lea ecx, [ebp - 0x118]
push ecx
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x11c]
push edx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 8]
push eax
push ecx
xor esi, esi
push edx
mov dword [ebp - 0x120], esi
call fcn.004e4c10
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x499c24
cmp eax, 5
jne 0x496154
mov ebx, dword [ebp - 8]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x120], 1
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0x120]
cdq
push edx
push eax
mov eax, edi
call fcn.0048d660
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x499c30
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov edx, dword [eax + 4]
mov ebx, dword [edx]
mov dword [ebp - 0x18], eax
movzx eax, byte [ebx + 5]
mov dword [ebp - 0x24], eax
cmp edi, 0xffffffff
jne 0x499c89
mov edi, eax
cmp byte [ebx + 0x11], 3
jae 0x499ca5
mov ecx, dword [ebx + 0x44]
cmp dword [ecx], 0
je 0x499ca8
cmp dword [ebx + 0x54], 0
jl 0x499ca8
jg 0x499ca5
cmp dword [ebx + 0x50], 0
jbe 0x499ca8
mov edi, dword [ebp - 0x24]
cmp byte [ebx + 0x10], 0
mov eax, 0x528927
jne 0x499cb9
mov eax, dword [ebx + 0xb0]
cmp edi, 5
jne 0x499cda
call fcn.004722b0
test eax, eax
je 0x499cd2
mov eax, ebx
call fcn.0047ec00
test eax, eax
jne 0x499cda
mov edi, dword [ebp - 0x24]
jmp 0x499d5c
mov eax, dword [ebp - 0x24]
cmp edi, eax
je 0x499d5c
cmp eax, 5
je 0x499cef
cmp edi, 5
jne 0x499d5c
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 0x43], 0
je 0x49ab03
cmp dword [ecx + 0xa0], 1
jg 0x49ab03
cmp eax, 5
jne 0x499d2d
mov edx, ecx
push edx
mov eax, ebx
call fcn.0047ed70
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x499d62
mov eax, edi
mov ecx, ebx
call fcn.0047eaa0
jmp 0x499d44
cmp eax, 4
jne 0x499d3e
mov eax, 2
mov ecx, ebx
call fcn.0047eaa0
cmp dword [ebp - 0xc], 0
jne 0x499d62
xor eax, eax
cmp edi, 5
sete al
inc eax
push eax
mov eax, dword [ebp - 0x18]
call fcn.0048b840
add esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x499d65
mov edi, dword [ebp - 0x24]
mov eax, edi
mov ecx, ebx
call fcn.0047eaa0
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x499d80
xor eax, eax
jmp 0x499d87
mov eax, dword [eax*4 + 0x53c94c]
mov dword [esi + 0x10], eax
call fcn.004722b0
movzx ecx, byte [ebp - 0x35]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.0048ccd0
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x10]
add edx, 0x6c
push edx
call fcn.004d1330
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.00485000
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je case.0x495ea4.74
cmp eax, 0x65
jne 0x496154
mov dword [ebp - 0xc], 0
jmp 0x4982a3
cmp dword [ebx + 4], 0
jne 0x499e2f
mov eax, dword [ebp - 0x10]
call fcn.00492b00
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebp + 8]
or dword [eax + 0x94], 1
add ebx, 0x14
jmp 0x495e8e
mov cl, byte [ebx + 0xc]
test cl, cl
jne 0x499e58
mov eax, dword [ebp - 0x10]
test dword [eax + 0x18], 0x400
jne case.0x495ea4.74
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push edx
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.0048b760
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je case.0x495ea4.74
cmp al, 6
jne 0x496154
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov esi, dword [ebp + 8]
push ecx
push str.database_table_is_locked:__s
call fcn.0048e1d0
add esp, 8
jmp 0x496154
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x10]
mov edi, ebx
call fcn.004d2a20
mov esi, eax
mov dword [ebp - 0xc], esi
test ebx, ebx
je 0x499ec7
mov eax, dword [ebp + 8]
mov edi, dword [ebx + 8]
push eax
call fcn.00492bd0
add esp, 4
test esi, esi
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], esi
call fcn.0048d820
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1fc]
push 1
push eax
call fcn.0048dcb0
add esp, 8
test eax, eax
je 0x499f68
mov ecx, dword [ebp + 8]
add ecx, 0x6c
push ecx
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.004d24e0
add esp, 8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1fc]
call fcn.0048d240
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov esi, dword [ebp - 0x10]
inc dword [esi + 0xac]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push edx
mov ecx, esi
call fcn.004d27f0
dec dword [esi + 0xac]
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x88], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x49ab46
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x49ab46
mov edx, dword [eax + 0x18]
lea ecx, [ebp - 0x88]
push ecx
push esi
call edx
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
mov edi, esi
mov dword [ebp - 0xc], ebx
call fcn.00492bd0
add esp, 0xc
test ebx, ebx
jne 0x496154
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
push ebx
mov ebx, dword [edx + 4]
call fcn.00495a90
add esp, 0xc
test eax, eax
je 0x49ab2f
mov ecx, dword [ebp - 0x88]
mov ebx, dword [ebp - 8]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea edx, [eax + edx*8]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov edi, dword [edi + 0x60]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x40], eax
xor eax, eax
test ecx, ecx
jle 0x49a08f
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x49a084
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
push edi
push ecx
mov ecx, dword [ebx + 0x10]
push ecx
mov ecx, dword [eax + 0x20]
push edx
push esi
call ecx
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x1c]
add esp, 0x14
mov ebx, eax
push edx
mov dword [ebp - 0xc], ebx
call fcn.00492bd0
add esp, 4
test ebx, ebx
jne 0x496154
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x28]
push esi
call ecx
mov edx, dword [ebp - 0x28]
add esp, 4
mov byte [edx + 2], bl
test eax, eax
jne 0x4982a3
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x70]
mov ecx, dword [edx + eax*4]
cmp byte [ecx + 2], 0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x49a113
mov eax, esi
call fcn.0048d600
add ebx, 0x14
jmp 0x495e8e
mov eax, dword [ecx + 0x28]
mov edi, dword [eax]
mov edx, dword [edi]
xor eax, eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x204], eax
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x21c], esi
mov ax, word [esi + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
mov word [esi + 8], ax
mov eax, dword [ebx + 8]
push eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x21c]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
add esp, 0xc
push eax
call fcn.00492bd0
mov eax, dword [ebp - 0x208]
add esp, 4
test eax, eax
je 0x49a19f
mov dword [ebp - 0xc], eax
movzx ecx, byte [ebp - 0x35]
mov eax, esi
call fcn.0048ccd0
mov ecx, esi
call fcn.0048d750
test eax, eax
jne 0x49613b
cmp dword [ebp - 0xc], eax
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x70]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
jne case.0x495ea4.74
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov ebx, dword [edi]
mov ecx, dword [ebx + 0x24]
push eax
call ecx
mov edx, dword [ebp + 8]
add esp, 4
push edx
mov dword [ebp - 0xc], eax
call fcn.00492bd0
add esp, 4
cmp dword [ebp - 0xc], 0
jne 0x496154
mov eax, dword [esi + 0x28]
mov ecx, dword [ebx + 0x28]
push eax
call ecx
add esp, 4
test eax, eax
jne 0x49a22f
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx + 8]
mov eax, dword [ebp - 0x30]
lea edx, [ebx + ebx*4]
lea ecx, [eax + edx*4 - 0x14]
mov dword [ebp - 8], ecx
mov esi, dword [ebp - 0x10]
mov edx, dword [esi + 0xf8]
test edx, edx
jne 0x49ab52
mov ebx, dword [ebp - 0x70]
cmp ebx, dword [ebp - 0x9c]
jb 0x4982b6
mov edi, dword [esi + 0x130]
test edi, edi
je 0x4982b6
mov ecx, dword [esi + 0x138]
mov eax, ebx
div ecx
mov eax, dword [esi + 0x134]
push eax
sub ecx, edx
add ecx, ebx
mov dword [ebp - 0x9c], ecx
call edi
add esp, 4
test eax, eax
jne 0x49a81a
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov eax, dword [ebp - 0x14]
mov edi, dword [ecx + 8]
lea edx, [ebx + ebx*4]
lea esi, [eax + edx*8]
mov ecx, 1
mov eax, esi
call fcn.0048ccd0
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
mov edx, dword [esi + 0x10]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x4c]
push edx
push edi
call eax
mov ecx, dword [ebp + 8]
mov esi, eax
push ecx
mov dword [ebp - 0xc], esi
call fcn.00492bd0
mov eax, dword [ebp + 8]
and dword [eax + 0x94], 0xfffffffe
add esp, 0xc
test esi, esi
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x49ab46
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x49ab46
cmp dword [eax + 0x34], 0
mov ecx, dword [ebx + 8]
je case.0x495ea4.74
mov eax, dword [ebp - 0x10]
mov dl, byte [eax + 0x4a]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x60]
mov eax, dword [ebx + 0xc]
mov byte [ebp - 0x31], dl
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x49a34b
nop
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x49a340
mov dl, byte [ebx + 2]
mov esi, dword [ebp - 0x10]
lea eax, [ebp - 0x174]
push eax
push edi
mov edi, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x40]
mov byte [esi + 0x4a], dl
mov edx, dword [ecx + 0x34]
push edi
call edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov al, byte [ebp - 0x31]
push ecx
mov byte [esi + 0x4a], al
call fcn.00492bd0
add esp, 0x14
cmp dword [ebp - 0xc], 0
jne 0x49a39c
cmp dword [ebx + 4], 0
je 0x49a39c
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x170]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
mov ecx, dword [ebp - 0xc]
cmp cl, 0x13
jne 0x49a3da
mov edx, dword [ebx + 0x10]
cmp byte [edx + 0x10], 0
je 0x49a3da
movzx eax, word [ebx + 2]
cmp eax, 4
jne 0x49a3c5
mov dword [ebp - 0xc], 0
add ebx, 0x14
jmp 0x495e8e
cmp eax, 5
jne 0x49a3cf
mov eax, 2
mov edx, dword [ebp + 8]
mov byte [edx + 0x8e], al
jmp 0x49a3e0
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
test ecx, ecx
jne 0x496154
mov ebx, dword [ebp - 8]
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebx, 0x14
jmp 0x495e8e
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.00495dc0
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
xor ecx, ecx
test ebx, ebx
je 0x49a453
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x2c]
cmp ecx, ebx
jae 0x49a453
mov ecx, ebx
mov ebx, ecx
call fcn.00484230
mov ebx, dword [ebp - 8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x495e8e
movzx ebx, word [ebx + 2]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
mov eax, dword [ebp - 0x10]
call fcn.0046fc10
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x49abb5
mov esi, dword [ebp - 8]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [ecx + 4], edx
mov edx, esi
sub edx, dword [ebp - 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 8]
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
add byte [esi], 2
mov byte [esi + 1], 0xf0
mov dword [esi + 0x10], ecx
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x20], eax
cmp dword [edi], eax
je 0x49a506
movzx ecx, byte [edi + 0x1a]
dec ecx
mov dword [edi], eax
js 0x49a506
lea edx, [edi + ecx*4 + 0x1c]
mov edi, edi
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x49a4f0
mov eax, dword [ebp - 0x20]
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [eax + 8], cx
movzx edx, byte [edi + 0x1a]
mov eax, dword [edi + 4]
lea ecx, [edi + 0x1c]
push ecx
push edx
mov byte [edi + 0x19], 0
mov eax, dword [eax + 0xc]
push edi
call eax
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x49a589
cmp dword [edi + 0x14], 0
je 0x49a561
mov ecx, dword [ebp - 0x20]
push 1
push ecx
call fcn.0048dcb0
mov esi, dword [ebp + 8]
push eax
push 0x534fdc
call fcn.0048e1d0
mov edx, dword [edi + 0x14]
add esp, 0x10
mov dword [ebp - 0xc], edx
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
mov edi, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
push ecx
add eax, 0xd8
call fcn.00491060
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x496154
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
test byte [edx + 8], 0x12
je case.0x495ea4.74
mov esi, edx
jmp 0x499ba9
mov esi, dword [ebp - 0x10]
mov cl, byte [esi + 0x4c]
mov edi, dword [ebp + 8]
test cl, 0x81
je 0x49a652
test byte [edi + 0x94], 2
jne 0x49a652
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x49a5d1
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x49a652
push eax
test cl, cl
jns 0x49a601
mov ecx, dword [esi + 0xb8]
push edi
mov dword [ebp - 0x18], ecx
call fcn.004955d0
mov edx, dword [esi + 0xbc]
push eax
push edx
mov dword [ebp - 0x40], eax
call dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
push eax
call fcn.0046f7e0
add esp, 0x14
jmp 0x49a652
cmp dword [esi + 0xa8], 1
jle 0x49a63d
push str.____s
push esi
call fcn.004715d0
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xb8]
add esp, 0xc
push eax
push edi
push ecx
push 1
mov dword [ebp - 0x18], eax
call edx
mov eax, dword [ebp - 0x18]
add esp, 0x10
mov ecx, esi
call fcn.0046f8d0
jmp 0x49a652
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
push edi
push eax
push 1
call ecx
add esp, 0x10
mov edx, dword [ebx + 4]
mov esi, 1
cmp edx, dword [0x56f150]
jl 0x49a696
mov edx, esi
cmp dword [edi + 0x88], esi
jle 0x49a68f
mov ecx, 0x14
mov eax, dword [edi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x49a682
mov dword [eax + ecx + 4], 0
add edx, esi
add ecx, 0x14
cmp edx, dword [edi + 0x88]
jl 0x49a671
mov dword [ebx + 4], 0
add dword [ebx + 4], esi
add dword [edi + 0xb8], esi
jmp 0x4982a6
mov esi, dword [ebp + 8]
push str.cannot_open_savepoint___SQL_statements_in_progress
call fcn.0048e1d0
mov dword [ebp - 0xc], 5
jmp 0x496151
mov esi, dword [ebp + 8]
push str.cannot_release_savepoint___SQL_statements_in_progress
call fcn.0048e1d0
mov dword [ebp - 0xc], 5
jmp 0x496151
mov eax, dword [edi + 0x6c]
mov ecx, esi
call fcn.0046f8d0
mov esi, dword [ebp - 0x10]
mov ebx, str.database_schema_has_changed
mov eax, esi
call fcn.0046fe50
mov edx, dword [ebp - 8]
mov dword [edi + 0x6c], eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x10]
mov ecx, eax
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 0xc]
mov edx, dword [ebp - 0xbc]
cmp dword [ecx], edx
je 0x49a71a
mov edi, dword [ebp - 0x10]
mov esi, eax
call fcn.004ac960
mov edi, dword [ebp + 8]
or dword [edi + 0x94], 1
mov dword [ebp - 0xc], 0x11
jmp 0x496154
mov dword [ebp - 0xc], 7
jmp 0x499381
mov ecx, dword [ebx + 4]
mov dword [edi + 0x28], ecx
mov dl, byte [ebx + 8]
mov byte [edi + 0x8e], dl
mov dword [edi + 0x24], eax
test ecx, ecx
je 0x49a7c6
movzx eax, word [ebx + 2]
mov esi, edi
test ax, ax
je 0x49a795
mov ecx, dword [eax*4 + 0x53c034]
push ecx
push str._s_constraint_failed
call fcn.0048e1d0
mov eax, dword [ebx + 0x10]
add esp, 8
test eax, eax
je 0x49a7a6
mov edx, dword [edi + 0x6c]
push eax
mov eax, dword [ebp - 0x10]
push edx
push str._z:__s
push eax
call fcn.004715d0
add esp, 0x10
mov dword [edi + 0x6c], eax
jmp 0x49a7a6
mov ecx, dword [ebx + 0x10]
push ecx
push 0x534fdc
call fcn.0048e1d0
add esp, 8
mov edx, dword [edi + 0x6c]
mov eax, dword [edi + 0xbc]
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [ebx + 4]
push eax
push ecx
push str.abort_at__d_in___s_:__s
push edx
call fcn.004717e0
add esp, 0x14
mov eax, edi
call fcn.00490b60
mov dword [ebp - 0xc], eax
cmp eax, 5
jne 0x49a7dd
mov dword [edi + 0x28], eax
jmp 0x49aa1f
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0xc], eax
jmp 0x49aa1f
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x130]
test eax, eax
je 0x49a826
mov ecx, dword [ebp - 0x70]
cmp ecx, dword [ebp - 0x9c]
jb 0x49a826
mov edx, dword [esi + 0x134]
push edx
call eax
add esp, 4
test eax, eax
je 0x49a826
mov dword [ebp - 0xc], 9
jmp 0x496154
mov edi, dword [ebp + 8]
push 0
mov eax, edi
call fcn.00490af0
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x496154
lea edx, [eax + 1]
mov eax, edi
call fcn.00490ad0
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 8]
add eax, 2
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea eax, [eax + edx*8]
xor ebx, ebx
mov dword [edi + 0x68], eax
cmp dword [ecx + 8], ebx
jle 0x49a8a3
mov esi, eax
mov ecx, 0x1000
test word [esi + 8], cx
je 0x49a88d
push esi
call fcn.0048ce80
add esp, 4
test eax, eax
jne 0x49abb8
mov eax, esi
call fcn.0048cf90
mov edx, dword [ebp - 8]
inc ebx
add esi, 0x28
cmp ebx, dword [edx + 8]
jl 0x49a871
mov esi, dword [ebp - 0x10]
cmp byte [esi + 0x45], 0
jne 0x49abb8
test byte [esi + 0x4c], 4
je 0x49a8ca
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
push 0
push edi
push eax
push 4
call ecx
add esp, 0x10
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [edi + 0x24], ecx
mov dword [ebp - 0xc], 0x64
jmp 0x49aa1f
mov eax, 0x13e1c
call fcn.004e60d0
mov dword [ebp - 0xc], eax
jmp 0x496154
cmp dword [ebx + 0x4c], 0
jne 0x49a915
lea eax, [ebp - 0x1d4]
call fcn.0048d240
mov eax, 0x13e57
call fcn.004e60d0
mov dword [ebp - 0xc], eax
jmp 0x496154
sub ebx, dword [ebp - 0x30]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], 0
mov dword [ebp - 0xc], 5
mov dword [edi + 0x28], 5
jmp 0x49aa1f
mov esi, dword [ebp - 0x10]
movzx edx, byte [esi + 0x43]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x18], eax
cmp eax, edx
je 0x49aa44
test ecx, ecx
je 0x49a989
push 0x204
mov eax, esi
call fcn.004e40b0
mov edi, dword [ebp + 8]
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x49a9cb
test eax, eax
je 0x49a9af
cmp dword [esi + 0xa4], 0
jle 0x49a9af
mov esi, dword [ebp + 8]
push str.cannot_commit_transaction___SQL_statements_in_progress
call fcn.0048e1d0
mov dword [ebp - 0xc], 5
jmp 0x496151
mov edi, dword [ebp + 8]
push 1
mov eax, edi
call fcn.00490af0
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x49aa1c
mov al, byte [ebp - 0x18]
mov byte [esi + 0x43], al
mov eax, edi
call fcn.00490b60
mov ecx, 5
cmp eax, ecx
jne 0x49aa02
sub ebx, dword [ebp - 0x30]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [ebp - 0x18]
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], dl
mov dword [ebp - 0xc], ecx
mov dword [edi + 0x28], ecx
jmp 0x49aa1f
mov edi, esi
call fcn.004e36c0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0xc], eax
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x70]
add dword [edi + 0xb0], edx
cmp dword [edi + 0x9c], 0
je 0x49aa3a
push edi
call fcn.0048f450
add esp, 4
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x49aa4f
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x49aa5d
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x49aa5d
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [ebp + 8]
push eax
call fcn.0048e1d0
mov dword [ebp - 0xc], 1
jmp 0x496151
mov dword [ebp - 0xc], 8
jmp 0x496154
cmp al, 5
jne 0x496154
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x30]
mov edi, dword [ebp + 8]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0xc]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x28], edx
jmp 0x49aa1f
mov dword [ebp - 0xc], 0x204
jmp 0x496154
mov dword [ebp - 0xc], 6
mov byte [esi + 0x8e], 2
jmp 0x496154
push str.too_many_levels_of_trigger_recursion
mov esi, edi
mov dword [ebp - 0xc], 1
call fcn.0048e1d0
jmp 0x496151
push 1
push esi
call fcn.0048dcb0
mov esi, dword [ebp + 8]
push eax
push 0x534fdc
call fcn.0048e1d0
add esp, 0x10
jmp 0x496154
mov dword [ebp - 0xc], 1
mov eax, str.into
cmp edi, 5
je 0x49ab19
mov eax, str.out_of
mov esi, dword [ebp + 8]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.0048e1d0
add esp, 8
jmp 0x496154
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp 0x49abb8
mov dword [ebp - 0xc], 6
jmp 0x496154
xor eax, eax
cmp byte [esi + 0x45], al
mov esi, dword [ebp + 8]
sete al
mov ecx, str.unknown_error
lea eax, [eax + eax + 7]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x28], eax
cmp eax, 0x204
je 0x49ab9d
and eax, 0xff
cmp eax, 0x1a
ja 0x49aba2
mov eax, dword [eax*4 + 0x53f0d0]
test eax, eax
je 0x49aba2
mov ecx, eax
push ecx
push 0x534fdc
call fcn.0048e1d0
add esp, 8
jmp 0x496154
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x534fdc
call fcn.0048e1d0
add esp, 8
jmp 0x496154
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x45], 0
jne 0x49abe4
cmp byte [eax + 0x46], 0
jne 0x49abe4
cmp dword [eax + 0xa8], 0
mov byte [eax + 0x45], 1
jle 0x49abde
mov dword [eax + 0xf8], 1
inc dword [eax + 0x100]
push str.out_of_memory
mov esi, edi
call fcn.0048e1d0
mov dword [ebp - 0xc], 7
jmp 0x496151
mov ecx, str.abort_due_to_ROLLBACK
mov esi, dword [ebp + 8]
push ecx
push 0x534fdc
call fcn.0048e1d0
add esp, 8
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
mov dword [edi + 0x28], esi
cmp esi, 0xc0a
je 0x49ac56
mov eax, esi
and eax, 0xff
cmp eax, 0xe
je 0x49ac34
cmp eax, 0xa
jne 0x49ac56
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x49ac4f
push 0
push 0
push eax
call ecx
add esp, 0xc
mov dword [ebx + 0x3c], eax
jmp 0x49ac59
xor eax, eax
mov dword [ebx + 0x3c], eax
jmp 0x49ac59
mov ebx, dword [ebp - 0x10]
mov ecx, dword [edi + 0x6c]
mov edx, dword [edi + 0xbc]
push ecx
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x30]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.004717e0
add esp, 0x14
mov eax, edi
call fcn.00490b60
cmp esi, 0xc0a
jne 0x49acc2
cmp byte [ebx + 0x45], 0
jne 0x49acc2
cmp byte [ebx + 0x46], 0
jne 0x49acc2
cmp dword [ebx + 0xa8], 0
mov byte [ebx + 0x45], 1
jle 0x49acbc
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
mov al, byte [ebp - 0x45]
mov dword [ebp - 0xc], 1
test al, al
je 0x49aa1c
mov edx, dword [ebp - 0x10]
movzx esi, al
mov eax, dword [edx + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 0xc]
push ecx
call fcn.004b3380
add esp, 4
cmp esi, 1
je 0x49aa1c
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.004b3380
add esp, 4
jmp 0x49aa1f