Function at 0x4bd00d
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
mov eax, dword [0x566f9c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
push edi
mov dword [ebp - 0x108], edi
mov dword [ebp - 0xd4], ecx
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov ebx, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xcc], esi
mov al, byte [esi + 0x42]
mov byte [ebp - 0x11c], al
mov eax, dword [edi + 8]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 0x24]
mov byte [ebp - 0x11d], cl
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x154], eax
call fcn.004bcf95
pop ecx
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x50], ecx
je 0x4bebea
xor ecx, ecx
mov dword [edi + 0x50], ecx
mov dword [edi + 0x90], ecx
mov dword [edi + 0x94], ecx
mov dword [edi + 0x14], ecx
mov dword [esi + 0x184], ecx
cmp dword [esi + 0xf8], ecx
jne 0x4c2030
cmp dword [esi + 0x130], ecx
je 0x4bd0e8
mov ecx, dword [esi + 0x138]
xor edx, edx
mov eax, dword [edi + 0x84]
div ecx
xor eax, eax
sub ecx, edx
inc eax
mov dword [ebp - 0x14c], ecx
imul ebx, dword [edi + 0x4c], 0x14
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x1a8], 0x17
movsd qword [ebp - 0x1c4], xmm0
add ebx, dword [ebp - 0x118]
mov cl, byte [ebx]
inc edx
mov dword [ebp - 0xd0], edx
movzx edx, cl
mov dword [ebp - 0x110], ebx
mov byte [ebp - 0xd9], cl
mov dword [ebp - 0xe4], edx
cmp edx, 0x9d
ja case.0x4bd139.110
jmp dword [edx*4 + 0x4c211d]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [ebp - 0xd8]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 0x118]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4c1c2a
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [ebp - 0xd8]
imul ebx, dword [eax], 0x14
mov word [eax + 8], cx
add ebx, dword [ebp - 0x118]
xor eax, eax
inc eax
mov edx, dword [ebp - 0xd0]
push 0x14
pop ecx
add ebx, ecx
jmp 0x4bd113
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0xd8]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebx + 8], 0
jne 0x4c1c2a
jmp 0x4bd186
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x118]
add ecx, dword [ebp - 0xd8]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x4bd186
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [ebp - 0x118]
push 4
pop eax
push 0x14
add esi, dword [ebp - 0xd8]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi + 4], edx
add ebx, dword [ebp - 0x118]
mov dword [esi], eax
mov esi, dword [ebp - 0xcc]
jmp 0x4bd186
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x4bd186
mov eax, ebx
sub eax, dword [ebp - 0x118]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebx + 4]
mov esi, eax
test ecx, ecx
jne 0x4c1c3e
mov edx, dword [edi + 0xb8]
test edx, edx
je 0x4c1c3e
mov eax, dword [edx + 4]
mov esi, dword [ebp - 0xcc]
dec dword [edi + 0xc0]
mov dword [edi + 0xb8], eax
mov eax, dword [edi + 0x64]
add dword [esi + 0x58], eax
push edx
mov dword [esi + 0x54], eax
call fcn.004c2721
mov edx, dword [edi + 4]
pop ecx
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x150], ecx
mov ecx, dword [esi + 0x24]
push 4
mov dword [ebp - 0x154], ecx
pop ecx
mov dword [ebp - 0x118], edx
cmp dword [ebx + 8], ecx
jne 0x4bd2b1
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov ecx, dword [edi + 8]
imul ebx, eax, 0x14
mov dword [ebp - 0xd8], ecx
add ebx, edx
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 0x10]
pop ecx
pop ecx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
pop ecx
pop ecx
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
push dword [ebx + 0x10]
mov esi, eax
mov byte [ebx], 0x4c
call fcn.004ba176
mov dword [ebx + 4], eax
add esp, 0xc
xor eax, eax
inc eax
cmp byte [ebp - 0x11c], al
je 0x4bd39c
push 0
push eax
push 0xffffffffffffffff
push dword [ebx + 0x10]
push esi
call fcn.004c39f9
movzx ecx, byte [ebp - 0x11c]
push ecx
push esi
mov dword [ebp - 0xd4], eax
call fcn.004bcae3
add esp, 0x1c
test eax, eax
jne 0x4bebe4
and dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x4bd38c
push dword [ebx + 0x10]
push dword [ebp - 0xcc]
call fcn.004a8ba2
pop ecx
pop ecx
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 0x5c]
jg 0x4bdc6c
push ebx
push edi
call fcn.0049c048
mov esi, eax
mov eax, 0xa02
pop ecx
pop ecx
mov word [esi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x11c]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4bd218
mov edi, dword [ebp - 0xd8]
imul ecx, eax, 0x28
movzx eax, byte [ebx + 3]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [ebp - 0x108]
jne 0x4bd218
mov eax, dword [ebp - 0xd8]
cmp dword [ecx + eax + 4], edx
mov edx, dword [ebp - 0xd0]
jne 0x4bd41a
mov eax, 0xa10
mov word [esi + 8], ax
mov esi, dword [ebp - 0xcc]
xor eax, eax
inc eax
jmp 0x4bd18f
push ebx
push edi
call fcn.0049c048
mov esi, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xe8], 0x101
inc ecx
mov dword [ebp - 0xfc], eax
cmp dword [ebx + 4], 0
cmovne ecx, dword [ebp - 0xe8]
sub esi, edx
movzx ecx, cx
mov dword [ebp - 0xe8], ecx
mov word [eax + 8], cx
test esi, esi
jle 0x4bd218
mov edi, eax
mov ebx, ecx
add edi, 0x28
push edi
call fcn.004c3961
dec esi
mov word [edi + 8], bx
pop ecx
test esi, esi
jg 0x4bd470
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
jmp 0x4bd218
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff7f
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x4bd1e2
push ebx
push edi
call fcn.0049c048
push 0
push 0
push dword [ebx + 4]
mov esi, eax
push dword [ebx + 0x10]
push esi
call fcn.004c39f9
add esp, 0x1c
mov al, byte [ebp - 0x11c]
mov byte [esi + 0xa], al
jmp 0x4bd218
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x3c]
add ecx, 0xffffffd8
add esi, ecx
push esi
call fcn.004c3c6a
pop ecx
test eax, eax
jne 0x4bdc6c
push ebx
push edi
call fcn.0049c048
mov ecx, 0x800
push ecx
push esi
push eax
call fcn.004c3b81
add esp, 0x14
jmp 0x4bd218
mov eax, dword [ebx + 0xc]
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0xf0], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], eax
push eax
push esi
call fcn.004c37eb
mov eax, 0x1000
pop ecx
pop ecx
test word [esi + 8], ax
je 0x4bd55c
push esi
call fcn.004c3768
pop ecx
test eax, eax
jne 0x4bebe4
mov eax, dword [ebp - 0xf4]
add esi, 0x28
add eax, 0x28
sub dword [ebp - 0xf0], 1
mov dword [ebp - 0xf4], eax
jne 0x4bd539
jmp 0x4bd218
mov eax, dword [ebx + 0xc]
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0xf4], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
push 0x1000
push eax
push esi
mov dword [ebp - 0xf0], eax
call fcn.004c3b81
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x4bd5c8
push esi
call fcn.004c3768
pop ecx
test eax, eax
jne 0x4bebe4
mov ecx, dword [ebp - 0xf4]
mov eax, ecx
dec ecx
mov dword [ebp - 0xf4], ecx
test eax, eax
je 0x4bd218
mov eax, dword [ebp - 0xf0]
add esi, 0x28
add eax, 0x28
jmp 0x4bd599
mov eax, 0x1000
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
push eax
call fcn.004c3b81
add esp, 0xc
jmp 0x4bd186
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
push dword [eax + ecx + 4]
push dword [eax + ecx]
imul eax, dword [ebx + 8], 0x28
add eax, ecx
push eax
call fcn.004c392b
jmp 0x4bd60e
imul edx, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0xd8]
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 0xc], 0x28
add edx, eax
mov dword [ebp - 0xf0], edx
add ecx, eax
add esi, eax
mov dword [ebp - 0xe4], ecx
movzx eax, word [edx + 8]
mov dword [ebp - 0xe8], eax
mov al, byte [ecx + 8]
or al, byte [ebp - 0xe8]
test al, 1
je 0x4bd67c
push esi
call fcn.004c3961
pop ecx
jmp 0x4bd218
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x4bd696
push edx
call fcn.004c349a
pop ecx
mov ecx, dword [ebp - 0xe4]
jmp 0x4bd698
xor eax, eax
test eax, eax
jne 0x4bebe4
mov eax, 0x4000
test word [ecx + 8], ax
je 0x4bd6b4
push ecx
call fcn.004c349a
pop ecx
jmp 0x4bd6b6
xor eax, eax
test eax, eax
jne 0x4bebe4
mov eax, dword [ebp - 0xf0]
test byte [eax + 8], 0x12
jne 0x4bd6e3
push 0
push dword [ebp - 0x11c]
push eax
call fcn.004c3bd7
add esp, 0xc
test eax, eax
jne 0x4bebe4
mov edx, dword [ebp - 0xe4]
test byte [edx + 8], 0x12
jne 0x4bd70e
push 0
push dword [ebp - 0x11c]
push edx
call fcn.004c3bd7
add esp, 0xc
test eax, eax
jne 0x4bebe4
mov edx, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xc]
add ecx, dword [edx + 0xc]
mov dword [ebp - 0xe8], ecx
cmp ecx, dword [eax + 0x5c]
jg 0x4bdc6c
xor eax, eax
cmp esi, edx
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.004c35d1
add esp, 0xc
test eax, eax
jne 0x4bebe4
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
push 2
pop ecx
or ax, cx
mov word [esi + 8], ax
mov eax, dword [ebp - 0xe4]
cmp esi, eax
je 0x4bd77d
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe4]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [ecx + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0xe8]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov dword [esi + 0xc], ecx
jmp 0x4bd4d1
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.0049bac3
movzx eax, ax
mov dword [ebp - 0xf4], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xf8], eax
call fcn.0049bac3
pop ecx
pop ecx
movzx ecx, ax
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xe0], ecx
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xf8]
mov al, byte [eax + 8]
or al, byte [esi + 8]
test al, 1
jne 0x4bdab2
mov al, cl
and al, byte [ebp - 0xf4]
push 4
pop ecx
test cl, al
je 0x4bd956
mov eax, dword [ebp - 0xf8]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [ebp - 0xd9], 1
mov edi, dword [eax]
mov dword [ebp - 0xe4], edi
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x164], eax
movzx eax, byte [ebx]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0x160], edi
mov edi, dword [ebp - 0x108]
sub eax, 0x2f
je 0x4bd90f
sub eax, 1
je 0x4bd8ff
sub eax, 1
je 0x4bd8ef
sub eax, 1
mov eax, ecx
je 0x4bd8b8
or eax, edx
je 0x4bdab2
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4bd8a3
xor ecx, ecx
inc ecx
xor edx, edx
push edx
push ecx
push dword [ebp - 0xf0]
push dword [ebp - 0xe4]
call fcn.004d6800
jmp 0x4bd930
or eax, edx
je 0x4bdab2
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xe4]
jne 0x4bd8df
test eax, eax
jne 0x4bd8df
cmp dword [ebp - 0xf0], 0x80000000
je 0x4bd95d
push edx
push ecx
push dword [ebp - 0xf0]
push eax
call fcn.004d6440
jmp 0x4bd930
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.004b1d26
jmp 0x4bd91d
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.004ba193
jmp 0x4bd91d
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.004a2c4b
add esp, 0xc
test eax, eax
jne 0x4bd95d
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x114]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 8]
mov edx, 0x3e00
push 4
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x4bd218
mov byte [ebp - 0xd9], 0
push esi
call fcn.004c41a6
push dword [ebp - 0xf8]
fstp qword [ebp - 0xec]
call fcn.004c41a6
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x12c]
pop ecx
sub eax, 0x2f
je 0x4bda43
sub eax, 1
je 0x4bda31
sub eax, 1
je 0x4bda1f
movsd xmm0, qword [ebp - 0xec]
sub eax, 1
je 0x4bd9ff
call fcn.004d6c1f
movsd xmm0, qword [ebp - 0x12c]
mov esi, eax
mov dword [ebp - 0xe8], edx
call fcn.004d6c1f
mov dword [ebp - 0xfc], eax
mov ecx, esi
mov eax, dword [ebp - 0xe8]
or ecx, eax
je 0x4bdab2
mov ecx, esi
and ecx, eax
cmp ecx, 0xffffffff
jne 0x4bd9e5
xor esi, esi
inc esi
xor eax, eax
push eax
push esi
push edx
push dword [ebp - 0xfc]
call fcn.004d6800
mov ecx, eax
call fcn.004d6d70
movaps xmm1, xmm0
jmp 0x4bda53
ucomisd xmm0, qword [ebp - 0x1c4]
lahf
test ah, 0x44
jnp 0x4bdab2
movsd xmm1, qword [ebp - 0x12c]
divsd xmm1, xmm0
jmp 0x4bda53
movsd xmm1, qword [ebp - 0x12c]
mulsd xmm1, qword [ebp - 0xec]
jmp 0x4bda53
movsd xmm1, qword [ebp - 0x12c]
subsd xmm1, qword [ebp - 0xec]
jmp 0x4bda53
movsd xmm1, qword [ebp - 0x12c]
addsd xmm1, qword [ebp - 0xec]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.004b0d3f
add esp, 8
test eax, eax
jne 0x4bdab2
mov ecx, dword [ebp - 0x114]
mov edx, 0x3e00
push 8
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xe0]
or al, byte [ebp - 0xf4]
test dl, al
jne 0x4bd218
cmp byte [ebp - 0xd9], 0
jne 0x4bd218
push ecx
call fcn.004c2d2a
jmp 0x4bd676
mov ecx, dword [ebp - 0x114]
push ecx
jmp 0x4bd671
mov eax, dword [ebx + 4]
test eax, eax
je 0x4bd186
imul eax, eax, 0x28
push 0
push 0
add eax, dword [ebp - 0xd8]
jmp 0x4bd62d
mov al, byte [ebx + 3]
mov byte [ebp - 0xd9], al
movzx eax, al
push 7
cdq
pop ecx
add eax, ecx
adc edx, 0
shld edx, eax, 2
push edx
shl eax, 2
push eax
push esi
call fcn.004a8c17
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4bebe4
and dword [esi], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x118]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov al, byte [ebp - 0xd9]
mov byte [esi + 0x1a], al
mov word [ebx], 0xeb58
mov dword [ebx + 0x10], esi
imul eax, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add eax, dword [ebp - 0xd8]
mov edx, dword [esi]
mov dword [ebp - 0xe8], eax
cmp edx, eax
je 0x4bdb8a
movzx ecx, byte [esi + 0x1a]
mov edx, eax
sub ecx, 1
mov dword [esi], eax
js 0x4bdb8a
mov edi, dword [ebp - 0xd8]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, edi
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x4bdb6c
mov edi, dword [ebp - 0x108]
mov edx, dword [esi]
mov ax, word [edx + 8]
mov ecx, 0x3e00
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov ecx, dword [ebp - 0x150]
mov word [edx + 8], ax
mov eax, dword [ebp - 0xcc]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x154]
mov dword [eax + 0x24], ecx
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
call dword [ecx + 0xc]
mov eax, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x154], eax
je 0x4bdc3b
cmp dword [esi + 0x14], 0
je 0x4bdc12
push dword [esi]
call fcn.0048902b
push eax
push 0x501914
push edi
call fcn.004bcfe5
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd4], eax
push dword [ebx + 4]
lea eax, [edi + 0xd4]
push dword [esi + 0x10]
push eax
push dword [ebp - 0xcc]
call fcn.004bcee2
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0xe8]
test byte [eax + 8], 0x12
je 0x4bd218
movzx eax, byte [ebp - 0x11c]
push eax
push dword [esi]
call fcn.004bcae3
push dword [esi]
call fcn.004c3c6a
add esp, 0xc
test eax, eax
je 0x4bd218
push str.string_or_blob_too_big
push edi
call fcn.004bcfe5
pop ecx
pop ecx
push 0x12
jmp 0x4bdeba
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0xd8]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0xe0], edx
test al, 1
je 0x4bdcae
push edx
jmp 0x4bd671
push ecx
call fcn.004c2cca
push esi
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
call fcn.004c2cca
pop ecx
pop ecx
mov cl, byte [ebx]
mov esi, eax
mov byte [ebp - 0xd9], cl
cmp cl, 0x2b
jne 0x4bdce8
and dword [ebp - 0x13c], esi
and dword [ebp - 0x138], edx
jmp 0x4bde3e
cmp cl, 0x2c
jne 0x4bdcfe
or dword [ebp - 0x13c], esi
or dword [ebp - 0x138], edx
jmp 0x4bde3e
mov eax, esi
or eax, edx
je 0x4bde3e
test edx, edx
jg 0x4bdd31
jl 0x4bdd12
test esi, esi
jae 0x4bdd31
mov al, 0x5b
sub al, cl
mov cl, al
mov byte [ebp - 0xd9], cl
cmp edx, 0xffffffff
jl 0x4bdd5e
jg 0x4bdd2a
cmp esi, 0xffffffc0
jbe 0x4bdd5e
neg esi
adc edx, 0
neg edx
push 0x40
pop eax
test edx, edx
jl 0x4bdd8f
jg 0x4bdd3e
cmp esi, eax
jb 0x4bdd8f
cmp dword [ebp - 0x138], 0
jg 0x4bdd67
jl 0x4bdd52
cmp dword [ebp - 0x13c], 0
jae 0x4bdd67
cmp cl, 0x2d
je 0x4bdd67
or eax, 0xffffffff
or ecx, eax
jmp 0x4bdd7e
push 0x40
pop eax
mov esi, eax
xor edx, edx
jmp 0x4bdd34
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], ecx
jmp 0x4bde3e
push 8
pop eax
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x15c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x15c]
add esp, 0xc
cmp byte [ebp - 0xd9], 0x2d
mov ecx, esi
mov edx, dword [ebp - 0x158]
jne 0x4bddc7
call fcn.004d68c0
jmp 0x4bde18
call fcn.004d6f70
cmp dword [ebp - 0x138], 0
mov ecx, edx
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], ecx
jg 0x4bde24
jl 0x4bddfa
cmp dword [ebp - 0x13c], 0
jae 0x4bde24
push 0x40
pop eax
mov ecx, eax
or edx, 0xffffffff
sub ecx, esi
or eax, 0xffffffff
call fcn.004d68c0
or eax, dword [ebp - 0xe8]
or edx, dword [ebp - 0xfc]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x15c], eax
push 8
pop eax
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x13c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x13c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x138]
mov dword [ecx + 4], eax
jmp 0x4bd93b
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.004c373c
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp 0x4bd218
imul esi, dword [ebx + 4], 0x28
push 4
pop edx
add esi, dword [ebp - 0xd8]
movzx eax, word [esi + 8]
mov ecx, eax
test dl, al
jne 0x4bdec0
push dword [ebp - 0x11c]
push 0x43
push esi
call fcn.0048dc1a
movzx eax, word [esi + 8]
add esp, 0xc
mov ecx, eax
push 4
pop edx
test dl, al
jne 0x4bdec0
cmp dword [ebx + 8], 0
jne 0x4c1c2a
push 0x14
pop eax
jmp 0x4c2066
mov eax, 0x3e00
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x4bd218
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0xd8]
test byte [eax + 8], cl
je 0x4bd186
push eax
call fcn.004c38b0
pop ecx
jmp 0x4bd186
imul esi, dword [ebx + 4], 0x28
mov eax, 0x4000
add esi, dword [ebp - 0xd8]
test word [esi + 8], ax
je 0x4bdf1b
push esi
call fcn.004c349a
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x4bdf22
and dword [ebp - 0xd4], 0
push dword [ebp - 0x11c]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.004c3361
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x4c206c
jmp 0x4bd186
imul eax, dword [ebx + 0xc], 0x28
imul ecx, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0xe4], eax
movzx esi, word [eax + 8]
movzx edx, word [ecx + 8]
mov ecx, esi
mov al, byte [ebx + 3]
or ecx, edx
mov dword [ebp - 0x110], edx
mov dword [ebp - 0x100], esi
test cl, 1
je 0x4bdfeb
test al, al
jns 0x4bdfb9
mov eax, esi
xor ecx, ecx
and eax, edx
bt ax, cx
jae 0x4bdfab
test esi, 0x100
jne 0x4bdfab
xor edx, edx
jmp 0x4bdfae
xor edx, edx
inc edx
mov esi, dword [ebp - 0xe4]
jmp 0x4be135
test al, 0x20
je 0x4bdfdb
imul ecx, dword [ebx + 8], 0x28
mov edx, 0x3e00
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
jmp 0x4bd94a
push 0x10
pop ecx
test cl, al
jne 0x4c1c2a
jmp 0x4bd218
and al, 0x47
cmp al, 0x43
jb 0x4be03f
push 2
pop edx
test dl, cl
je 0x4be0d7
mov al, byte [ebp - 0x110]
and al, 0xe
cmp al, dl
jne 0x4be01b
mov ecx, dword [ebp - 0x10c]
push 0
push ecx
call fcn.0048dc84
pop ecx
pop ecx
push 2
pop edx
mov al, byte [ebp - 0x100]
and al, 0xe
cmp al, dl
jne 0x4be0d7
push 0
push dword [ebp - 0xe4]
call fcn.0048dc84
pop ecx
pop ecx
jmp 0x4be0d7
cmp al, 0x42
jne 0x4be0d7
mov al, byte [ebp - 0x110]
push 2
pop edx
test dl, al
jne 0x4be092
test al, 0xc
je 0x4be092
mov ecx, dword [ebp - 0x10c]
push 1
push dword [ebp - 0x11c]
push ecx
call fcn.004c3bd7
mov eax, dword [ebp - 0x10c]
add esp, 0xc
mov ecx, 0x7e00
mov ax, word [eax + 8]
xor ax, word [ebp - 0x110]
and ax, cx
xor word [ebp - 0x110], ax
push 2
pop edx
mov al, byte [ebp - 0x100]
test dl, al
jne 0x4be0d7
test al, 0xc
je 0x4be0d7
mov esi, dword [ebp - 0xe4]
push 1
push dword [ebp - 0x11c]
push esi
call fcn.004c3bd7
mov ax, word [esi + 8]
mov ecx, 0x7e00
xor ax, word [ebp - 0x100]
add esp, 0xc
and ax, cx
xor word [ebp - 0x100], ax
mov esi, dword [ebp - 0x100]
mov eax, 0x4000
test dword [ebp - 0x110], eax
je 0x4be0ff
push dword [ebp - 0x10c]
call fcn.004c349a
and dword [ebp - 0x110], 0xbfff
mov eax, 0x4000
pop ecx
test eax, esi
je 0x4be11b
push dword [ebp - 0xe4]
call fcn.004c349a
and esi, 0xbfff
pop ecx
mov dword [ebp - 0x100], esi
push dword [ebx + 0x10]
mov esi, dword [ebp - 0xe4]
push dword [ebp - 0x10c]
push esi
call fcn.004b1bfc
add esp, 0xc
mov edx, eax
movzx eax, byte [ebx]
sub eax, 0x24
je 0x4be173
sub eax, 1
je 0x4be16a
sub eax, 1
je 0x4be161
sub eax, 1
je 0x4be158
sub eax, 1
je 0x4be153
not edx
shr edx, 0x1f
jmp 0x4be17c
xor eax, eax
test edx, edx
setle al
jmp 0x4be17a
xor eax, eax
test edx, edx
setg al
jmp 0x4be17a
xor eax, eax
test edx, edx
sete al
jmp 0x4be17a
xor eax, eax
test edx, edx
setne al
mov edx, eax
mov ecx, dword [ebp - 0x10c]
mov ax, word [ebp - 0x110]
mov word [ecx + 8], ax
mov ax, word [ebp - 0x100]
mov word [esi + 8], ax
test byte [ebx + 3], 0x20
je 0x4be1cb
imul ecx, dword [ebx + 8], 0x28
mov esi, 0x3e00
push 4
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, si
pop esi
or ax, si
mov word [ecx + 8], ax
mov eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4bd218
test edx, edx
jmp 0x4bdfe0
mov ecx, dword [ebx + 0x10]
push 4
pop edx
add ecx, edx
mov dword [ebp - 0x180], ecx
jmp case.0x4bd139.110
test byte [ebx + 3], al
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
push 0
mov dword [ebp - 0xfc], esi
mov esi, dword [ebx + 8]
pop eax
cmovne eax, dword [ebp - 0x180]
mov dword [ebp - 0xe8], esi
xor esi, esi
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xf4], edx
test ecx, ecx
jle 0x4be29b
test eax, eax
je 0x4be22b
mov ecx, dword [eax + esi*4]
jmp 0x4be22d
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov al, byte [esi + eax]
mov byte [ebp - 0xd9], al
mov eax, dword [ebp - 0xe8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0xfc]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
push eax
call fcn.004b1bfc
add esp, 0xc
mov dword [ebp - 0x17c], eax
test eax, eax
jne 0x4be28a
mov eax, dword [ebp - 0x104]
inc esi
mov edx, dword [ebp - 0xf4]
cmp esi, dword [ebp - 0xe0]
jl 0x4be222
jmp 0x4be29b
cmp byte [ebp - 0xd9], 0
je 0x4be29b
neg eax
mov dword [ebp - 0x17c], eax
and dword [ebp - 0x180], 0
jmp 0x4bd218
mov eax, dword [ebp - 0x17c]
test eax, eax
jns 0x4be2b6
mov eax, dword [ebx + 4]
jmp 0x4be2c0
jne 0x4be2bd
mov eax, dword [ebx + 8]
jmp 0x4be2c0
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x118]
imul eax, eax, 0x14
add ebx, 0xffffffec
add ebx, eax
jmp 0x4bd186
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x4be2e7
push 6
jmp 0x4be2f4
push eax
call fcn.004c2cca
or eax, edx
pop ecx
je 0x4be2f7
push 3
pop esi
jmp 0x4be2f9
xor esi, esi
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x4be315
mov eax, 0x4ff132
mov ecx, 0x4ff096
jmp 0x4be336
push eax
call fcn.004c2cca
or eax, edx
pop ecx
je 0x4be32c
mov eax, 0x4ff131
mov ecx, 0x4ff095
jmp 0x4be336
mov eax, 0x4ff130
mov ecx, 0x4ff094
cmp byte [ebx], 0x1c
push 2
cmove eax, ecx
imul ecx, dword [ebx + 0xc], 0x28
mov dl, byte [eax + esi]
mov esi, 0x3e00
add ecx, dword [ebp - 0xd8]
mov ax, word [ecx + 8]
and ax, si
movzx esi, ax
pop eax
cmp dl, al
jne 0x4be364
xor eax, eax
inc eax
jmp 0x4be370
movzx eax, dl
cdq
push 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
pop eax
or esi, eax
mov word [ecx + 8], si
jmp 0x4bd218
imul esi, dword [ebx + 8], 0x28
imul eax, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
push esi
mov dword [ebp - 0xe8], eax
call fcn.004c3961
mov eax, dword [ebp - 0xe8]
pop ecx
test byte [eax + 8], 1
jne 0x4bd218
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.004c2cca
or eax, edx
pop ecx
jne 0x4be3c3
inc eax
xor ecx, ecx
jmp 0x4be3da
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
mov dword [esi + 4], ecx
jmp 0x4bd216
imul esi, dword [ebx + 8], 0x28
imul eax, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
push esi
mov dword [ebp - 0xe8], eax
call fcn.004c3961
mov eax, dword [ebp - 0xe8]
pop ecx
test byte [eax + 8], 1
jne 0x4bd218
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.004c2cca
pop ecx
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4bd218
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x4c1c2a
mov byte [eax + ecx], 1
jmp 0x4bd186
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x4be460
mov eax, dword [ebx + 0xc]
jmp 0x4be492
push eax
call fcn.004c41a6
fstp qword [ebp - 0x144]
movsd xmm0, qword [ebp - 0x144]
ucomisd xmm0, qword [ebp - 0x1c4]
pop ecx
lahf
test ah, 0x44
jnp 0x4be488
xor eax, eax
inc eax
jmp 0x4be48a
xor eax, eax
cmp byte [ebx], 0x16
jne 0x4be492
xor eax, 1
test eax, eax
jmp 0x4bd1b8
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
jmp 0x4bd1b8
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x4c1c2a
jmp 0x4bd186
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.004bce42
mov esi, dword [ebp - 0xf4]
imul edx, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xd4], eax
pop ecx
mov eax, dword [esi + 0x54]
pop ecx
add edx, dword [ebp - 0xd8]
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x124], edx
mov dword [ebp - 0xf0], ecx
test eax, eax
jne 0x4c2066
mov eax, dword [esi + 0x40]
cmp eax, dword [edi + 0x48]
je 0x4be67a
cmp byte [esi + 2], 0
je 0x4be56e
cmp byte [esi], 3
jne 0x4bdca8
imul eax, ecx, 0x28
add eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xf8], ecx
mov dword [esi + 0x50], eax
jmp 0x4be603
cmp byte [esi + 4], 0
jne 0x4be5b0
lea eax, [ebp - 0x224]
push eax
push ecx
call fcn.004a5cfd
mov edx, dword [ebp - 0xf0]
pop ecx
pop ecx
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
movzx edx, word [edx + 0x20]
mov eax, dword [eax + 0x3c]
sub eax, ecx
mov dword [esi + 0x50], ecx
cmp edx, eax
cmovae edx, eax
mov eax, dword [ebp - 0x224]
mov dword [esi + 0x44], eax
jmp 0x4be5df
push ecx
call fcn.00498757
mov edx, dword [ebp - 0xf0]
pop ecx
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x44], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
movzx edx, word [edx + 0x20]
mov eax, dword [eax + 0x3c]
sub eax, ecx
mov dword [esi + 0x50], ecx
cmp edx, eax
cmovae edx, eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xf8], edx
cmp eax, edx
ja 0x4be5f1
mov dword [esi + 0x48], eax
jmp 0x4be603
mov ecx, dword [ebp - 0xcc]
cmp eax, dword [ecx + 0x5c]
ja 0x4bdc6c
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0x48]
mov edx, 0x80
mov dword [esi + 0x40], eax
mov ecx, dword [esi + 0x50]
mov al, byte [ecx]
cmp al, dl
jae 0x4be624
movzx ecx, al
mov al, 1
mov dword [ebp - 0x18c], ecx
jmp 0x4be639
lea eax, [ebp - 0x18c]
push eax
push ecx
call fcn.004af513
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18c]
movzx eax, al
mov dword [esi + 0x4c], eax
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [ebp - 0x100]
mov dword [eax], ecx
cmp dword [ebp - 0xf8], ecx
jae 0x4be692
and dword [esi + 0x50], 0
and dword [esi + 0x48], 0
cmp ecx, 0x18003
ja 0x4be66a
cmp ecx, dword [esi + 0x44]
jbe 0x4be692
push 0x13538
call fcn.004a7b21
pop ecx
jmp 0x4c2066
movzx eax, word [esi + 0x12]
mov ecx, dword [ebp - 0x10c]
cmp eax, ecx
jg 0x4be8de
mov eax, dword [ebp - 0x100]
mov ecx, dword [esi + 0x4c]
mov eax, dword [eax]
cmp ecx, eax
jae 0x4be89b
mov edx, dword [esi + 0x50]
mov dword [ebp - 0x114], edx
test edx, edx
jne 0x4be708
push 0x28
push edx
lea eax, [ebp - 0x2bc]
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [ebp - 0x2bc]
push eax
xor eax, eax
cmp byte [esi + 4], al
sete al
push eax
mov eax, dword [ebp - 0x100]
push dword [eax]
push 0
push dword [ebp - 0xf0]
call fcn.004c3573
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax]
movzx edx, word [esi + 0x12]
mov ebx, dword [ebp - 0x100]
add eax, dword [ebp - 0x114]
mov edi, dword [ebp - 0x114]
mov dword [ebp - 0x134], edx
add edi, ecx
mov edx, dword [ebx + edx*4]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0xf8], edx
xor edx, edx
add eax, 0x16
lea eax, [esi + eax*4]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xe8]
movzx ecx, byte [edi]
mov esi, eax
mov eax, 0x80
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x104], ecx
cmp ecx, eax
jae 0x4be78c
movzx eax, cl
mov dword [ebp - 0xf8], 1
movzx eax, byte [eax + 0x4ff0a0]
cdq
jmp 0x4be7b9
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.004af513
mov ecx, dword [ebp - 0x104]
movzx eax, al
push ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xe4], ecx
call fcn.004c4ac9
add esp, 0xc
xor edx, edx
add eax, esi
mov dword [ebx], ecx
mov esi, dword [ebp - 0x134]
adc edx, dword [ebp - 0xe8]
add edi, dword [ebp - 0xf8]
inc esi
mov dword [ebp - 0x104], edi
push 4
pop edi
add ebx, edi
mov dword [ebp - 0x134], esi
mov edi, dword [ebp - 0x100]
mov dword [edi + esi*4], eax
mov edi, dword [ebp - 0x104]
cmp esi, dword [ebp - 0x10c]
jg 0x4be804
cmp edi, dword [ebp - 0xe0]
jb 0x4be755
mov esi, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x110]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x134]
mov word [esi + 0x12], ax
mov eax, edi
sub eax, dword [ebp - 0x114]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 0xe0]
cmp edi, eax
mov edi, dword [ebp - 0x108]
jb 0x4be86f
cmp dword [ebp - 0x104], eax
ja 0x4be852
mov eax, dword [ebp - 0xf8]
cmp eax, dword [esi + 0x44]
jne 0x4be852
test edx, edx
je 0x4be875
cmp dword [esi + 0x50], 0
jne 0x4be865
lea eax, [ebp - 0x2bc]
push eax
call fcn.004c38d9
pop ecx
push 0x13575
jmp 0x4be66f
mov eax, dword [ebp - 0xf8]
test edx, edx
ja 0x4be852
jb 0x4be880
cmp eax, dword [esi + 0x44]
ja 0x4be852
cmp dword [esi + 0x50], 0
jne 0x4be8a3
lea eax, [ebp - 0x2bc]
push eax
call fcn.004c38d9
pop ecx
mov ecx, dword [ebp - 0xe4]
jmp 0x4be8a3
xor ecx, ecx
mov dword [ebp - 0xe4], ecx
movzx eax, word [esi + 0x12]
cmp eax, dword [ebp - 0x10c]
jg 0x4be8ea
cmp byte [ebx + 1], 0xf8
jne 0x4be8d2
mov eax, 0x800
push eax
push dword [ebx + 0x10]
mov eax, dword [ebp - 0x124]
push eax
call fcn.004c3b81
add esp, 0xc
jmp 0x4bd218
mov eax, dword [ebp - 0x124]
push eax
jmp 0x4bd671
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0xe4], ecx
jmp 0x4be8f0
mov edx, dword [ebp - 0x124]
mov eax, 0x2460
test word [edx + 8], ax
je 0x4be90e
push edx
call fcn.004c3961
mov edx, dword [ebp - 0x124]
pop ecx
mov ecx, dword [ebp - 0xe4]
mov al, byte [ebp - 0x11c]
mov edi, dword [ebp - 0x100]
mov byte [edx + 0xa], al
mov edx, dword [ebp - 0x10c]
mov eax, dword [esi + 0x48]
cmp eax, dword [edi + edx*4 + 4]
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0x124]
jb 0x4be9e3
mov eax, dword [esi + 0x50]
mov edi, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x100]
add eax, dword [esi + edi*4]
mov edi, dword [ebp - 0x108]
mov dword [ebp - 0xe8], eax
cmp ecx, 0xc
jae 0x4be96c
push edx
push ecx
push eax
call fcn.004c47b3
jmp 0x4be8ca
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edx + 0xc], esi
lea eax, [esi + 2]
cmp dword [edx + 0x18], eax
jge 0x4be9a2
push 0
xor ecx, ecx
push eax
inc ecx
push edx
mov word [edx + 8], cx
call fcn.004c35d1
add esp, 0xc
test eax, eax
jne 0x4bebe4
mov eax, dword [ebp - 0x124]
mov eax, dword [eax + 0x10]
jmp 0x4be9a8
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
push esi
push dword [ebp - 0xe8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x124]
add esp, 0xc
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + esi + 1], 0
mov eax, dword [ebp - 0xe4]
and eax, 1
mov ax, word [eax*2 + 0x4ff13c]
jmp 0x4bd94d
mov al, byte [ebx + 3]
test al, 0xc0
je 0x4be9f8
cmp ecx, 0xc
jb 0x4be9f4
test cl, 1
je 0x4bea0b
test al, al
js 0x4bea0b
push ecx
call fcn.004c4ac9
add esp, 4
mov dword [ebp - 0xe8], eax
test eax, eax
jne 0x4bea17
push edx
push ecx
push 0x56d118
jmp 0x4be962
mov ecx, dword [ebp - 0x10c]
xor eax, eax
cmp byte [esi + 4], al
push edx
sete al
push eax
mov eax, dword [ebp - 0x100]
push dword [ebp - 0xe8]
push dword [eax + ecx*4]
push dword [ebp - 0xf0]
call fcn.004c3573
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0xe4]
push esi
push eax
push dword [esi + 0x10]
call fcn.004c47b3
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x4bd218
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov dword [ebp - 0xe8], eax
mov al, byte [eax]
mov byte [ebp - 0x184], al
add esi, dword [ebp - 0xd8]
test al, al
je 0x4bd218
mov edi, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x11c]
push ebx
push dword [ebp - 0x184]
inc edi
push esi
call fcn.0048dc1a
mov al, byte [edi]
add esp, 0xc
add esi, 0x28
mov byte [ebp - 0x184], al
test al, al
jne 0x4beaa8
jmp 0x4bd483
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
movzx edx, byte [edi + 0x5c]
xorps xmm0, xmm0
mov esi, dword [ebx + 0x10]
mov edi, dword [ebp - 0x108]
mov dword [ebp - 0x100], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0xd8]
movlpd qword [ebp - 0x144], xmm0
movlpd qword [ebp - 0x170], xmm0
mov dword [ebp - 0xf4], ecx
add eax, 0xffffffd8
mov dword [ebp - 0x104], edx
add eax, ecx
mov dword [ebp - 0x134], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x10c], eax
test esi, esi
je 0x4beb70
mov al, byte [esi]
mov edi, ecx
mov ebx, dword [ebp - 0x11c]
mov byte [ebp - 0x188], al
push ebx
push dword [ebp - 0x188]
push edi
call fcn.0048dc1a
add esp, 0xc
add edi, 0x28
inc esi
mov al, byte [esi]
mov byte [ebp - 0x188], al
test al, al
jne 0x4beb3e
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x140]
mov esi, dword [ebp - 0x134]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x178]
push eax
push edx
push esi
call fcn.004c49ba
mov ecx, 0x4000
mov dword [ebp - 0xe0], eax
add esp, 0xc
mov dword [esi + 0x1c], eax
test word [esi + 8], cx
je 0x4bec23
mov ecx, dword [ebp - 0xe4]
or ecx, dword [ebp - 0xf0]
je 0x4bec06
push esi
call fcn.004c349a
pop ecx
test eax, eax
je 0x4bec1d
mov esi, dword [ebp - 0xcc]
push esi
call fcn.004b1f5f
mov dword [esp], str.out_of_memory
push edi
call fcn.004bcfe5
pop ecx
pop ecx
push 7
jmp 0x4c1cfd
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0xf8], eax
adc dword [ebp - 0x114], edx
sub dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
add ecx, dword [ebp - 0x178]
mov dword [ebp - 0xe4], ecx
adc dword [ebp - 0xf0], 0
cmp eax, 0x7f
ja 0x4bec46
xor ecx, ecx
inc ecx
jmp 0x4bec52
push 0
push eax
call fcn.004bc820
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x100]
add eax, ecx
mov dword [ebp - 0x100], eax
cmp esi, dword [ebp - 0xf4]
je 0x4bec76
mov edx, dword [ebp - 0x104]
sub esi, 0x28
jmp 0x4beba6
cmp eax, 0x7e
jle 0x4beca8
cdq
push edx
push eax
call fcn.004bc820
mov esi, eax
mov eax, dword [ebp - 0x100]
add eax, esi
mov dword [ebp - 0x100], eax
cdq
push edx
push eax
call fcn.004bc820
add esp, 0x10
cmp esi, eax
mov eax, dword [ebp - 0x100]
jge 0x4becaf
inc eax
mov dword [ebp - 0x100], eax
mov esi, dword [ebp - 0xf0]
cdq
mov ecx, edx
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xe4]
add edx, eax
mov dword [ebp - 0xe8], ecx
mov eax, dword [ebp - 0xcc]
adc esi, ecx
mov dword [ebp - 0xe4], edx
mov ecx, edx
add ecx, dword [ebp - 0xf8]
mov eax, dword [eax + 0x5c]
adc esi, dword [ebp - 0x114]
cdq
cmp esi, edx
jg 0x4bdc6c
jl 0x4becfe
cmp ecx, eax
ja 0x4bdc6c
push dword [ebp - 0xe4]
mov esi, dword [ebp - 0x10c]
push esi
call fcn.004c3404
pop ecx
pop ecx
test eax, eax
jne 0x4bebe4
mov ecx, dword [ebp - 0x100]
mov edx, 0x80
mov esi, dword [esi + 0x10]
cmp ecx, edx
jae 0x4bed31
mov byte [esi], cl
inc eax
jmp 0x4bed4b
push dword [ebp - 0xe8]
push dword [ebp - 0xfc]
push esi
call fcn.004b67f6
add esp, 0xc
mov edx, 0x80
mov ebx, dword [ebp - 0xf4]
movzx edi, al
mov eax, dword [ebx + 0x1c]
lea ecx, [edi + esi]
mov dword [ebp - 0xe8], eax
cmp eax, edx
jae 0x4bed6b
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x4bed77
push 0
push eax
push ecx
call fcn.004b67f6
add esp, 0xc
push dword [ebp - 0xe8]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x100]
add eax, esi
push ebx
push eax
call fcn.004c493b
add dword [ebp - 0x100], eax
add ebx, 0x28
add esp, 0xc
mov edx, 0x80
cmp ebx, dword [ebp - 0x134]
jbe 0x4bed54
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
mov dword [ecx + 0xc], eax
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x114]
je 0x4bede7
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
xor eax, eax
inc eax
mov byte [ecx + 0xa], al
mov esi, dword [ebp - 0xcc]
jmp case.0x4bd139.110
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x38]
movlpd qword [ebp - 0x144], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x144]
push ecx
push dword [eax + 0x14]
call fcn.004a521d
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c206c
push ebx
push edi
call fcn.0049c048
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x140]
jmp 0x4bd2f0
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xf4], eax
test ecx, ecx
jne 0x4bef37
cmp dword [esi + 0xa0], ecx
jg 0x4c1cee
push eax
call fcn.004ba176
mov esi, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe8], esi
mov ecx, dword [eax + 0x1b4]
add ecx, dword [eax + 0x1b0]
push ecx
push 0
push eax
call fcn.004c5b97
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
lea eax, [esi + 0x21]
push 0
push eax
push dword [ebp - 0xcc]
call fcn.004a8c17
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4bd218
mov ecx, dword [ebp - 0xe8]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0xf4]
push edx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [ecx + 0x43], 0
je 0x4beef7
mov byte [ecx + 0x43], 0
mov byte [ecx + 0x4b], 1
jmp 0x4beefd
inc dword [ecx + 0x1b0]
mov eax, dword [ecx + 0x1a8]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1b8]
mov dword [ecx + 0x1a8], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1c4]
mov dword [esi + 0x14], eax
mov esi, ecx
jmp 0x4bd186
and dword [ebp - 0x10c], 0
mov esi, dword [esi + 0x1a8]
test esi, esi
je 0x4c1d43
mov edi, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x10c]
push edi
push dword [esi]
call fcn.004ba108
pop ecx
pop ecx
test eax, eax
je 0x4bef6e
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x4bef58
mov edi, dword [ebp - 0x108]
mov dword [ebp - 0x10c], ebx
mov ebx, dword [ebp - 0x110]
test esi, esi
je 0x4c1d3d
mov ecx, dword [ebp - 0xcc]
xor eax, eax
mov edx, dword [ebp - 0xe4]
inc eax
cmp dword [ecx + 0xa0], 0
jle 0x4befa8
cmp edx, eax
je 0x4c1d03
cmp dword [esi + 0x18], 0
jne 0x4bf009
cmp byte [ecx + 0x4b], 0
je 0x4bf009
mov dword [ebp - 0xf0], eax
cmp edx, eax
jne 0x4bf010
push eax
push edi
call fcn.004bcbda
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c1d78
mov eax, dword [ebp - 0xcc]
push edi
mov byte [eax + 0x43], 1
call fcn.004c28ab
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x4c1d17
mov edx, dword [ebp - 0xcc]
mov byte [edx + 0x4b], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xd4], eax
jmp 0x4bf16d
and dword [ebp - 0xf0], 0
mov eax, dword [ecx + 0x1b0]
sub eax, dword [ebp - 0x10c]
dec eax
mov dword [ebp - 0x10c], eax
mov eax, dword [ecx + 0x14]
cmp edx, 2
jne 0x4bf0c7
mov ecx, dword [ecx + 0x18]
and dword [ebp - 0xe0], 0
shr ecx, 1
and ecx, 1
mov dword [ebp - 0xf4], ecx
test eax, eax
jle 0x4bf0cf
mov edx, ecx
xor edx, 1
xor ecx, ecx
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x104], ecx
mov eax, dword [ebp - 0xcc]
push edx
push 0x204
mov eax, dword [eax + 0x10]
push dword [ecx + eax + 4]
call fcn.004a6bee
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xe0]
push 0x10
pop eax
add ecx, eax
inc edx
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0x104], ecx
mov eax, dword [eax + 0x14]
cmp edx, eax
mov edx, dword [ebp - 0xe8]
jl 0x4bf05f
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xe4]
jmp 0x4bf0cf
xor ecx, ecx
mov dword [ebp - 0xf4], ecx
and dword [ebp - 0xe0], 0
test eax, eax
jle 0x4bf141
xor ecx, ecx
mov dword [ebp - 0x104], ecx
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x10c]
push edx
mov eax, dword [eax + 0x10]
push dword [ecx + eax + 4]
call fcn.004a68dc
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xe0]
push 0x10
pop edx
add ecx, edx
inc eax
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x104], ecx
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0xe4]
jl 0x4bf0e2
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x4bf167
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.004aa343
push ecx
call fcn.004b6e45
mov edx, dword [ebp - 0xcc]
pop ecx
pop ecx
push 2
pop eax
or dword [edx + 0x18], eax
jmp 0x4bf16d
mov edx, dword [ebp - 0xcc]
cmp dword [edx + 0x1a8], esi
je 0x4bf1ad
mov edi, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x1a8]
push ecx
push edi
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1a8], eax
call fcn.004a8ba2
dec dword [edi + 0x1b0]
pop ecx
pop ecx
cmp dword [edi + 0x1a8], esi
jne 0x4bf17b
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xe4]
cmp ecx, 1
jne 0x4bf1eb
mov eax, dword [esi + 0x18]
push esi
mov esi, dword [ebp - 0xcc]
push esi
mov dword [edx + 0x1a8], eax
call fcn.004a8ba2
cmp dword [ebp - 0xf0], 0
pop ecx
pop ecx
jne 0x4bf4ac
dec dword [esi + 0x1b0]
mov ecx, dword [ebp - 0xe4]
jmp 0x4bf229
cmp dword [ebp - 0xf0], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0xcc]
mov dword [esi + 0x1c4], eax
je 0x4bf229
push 2
pop eax
cmp ecx, eax
jne 0x4bf4ac
push dword [ebp - 0x10c]
push ecx
push esi
call fcn.004c5b97
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c206c
jmp 0x4bdf42
cmp dword [ebx + 8], 0
je 0x4bf25f
test dword [esi + 0x18], 0x4000000
jne 0x4c1d5a
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xe0], esi
test esi, esi
je 0x4bf395
push dword [ebx + 8]
push esi
call fcn.004a4cb2
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
cmp al, 5
je 0x4c1d5e
test eax, eax
jne 0x4c2066
cmp dword [ebx + 8], eax
je 0x4bf366
push 0x10
pop eax
test byte [edi + 0x60], al
je 0x4bf366
mov edx, dword [ebp - 0xcc]
cmp byte [edx + 0x43], 0
je 0x4bf2c8
cmp dword [edx + 0x9c], 1
jle 0x4bf366
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x4bf2e4
mov eax, dword [edx + 0x1b0]
inc dword [edx + 0x1b4]
add eax, dword [edx + 0x1b4]
mov dword [edi + 0x70], eax
dec eax
push eax
push 0
push edx
call fcn.004c5b97
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4bf330
mov eax, dword [ebp - 0xe0]
mov esi, dword [edi + 0x70]
push eax
mov edi, dword [eax + 4]
call fcn.004a564a
push esi
push dword [edi]
call fcn.004b32b0
mov esi, dword [ebp - 0xe0]
push esi
mov dword [ebp - 0xd4], eax
call fcn.004a5d76
mov edi, dword [ebp - 0x108]
add esp, 0x10
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x1b8]
mov dword [edi + 0xa0], eax
mov eax, dword [ecx + 0x1bc]
mov dword [edi + 0xa4], eax
mov eax, dword [ecx + 0x1c0]
mov dword [edi + 0xa8], eax
mov eax, dword [ecx + 0x1c4]
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x198]
push eax
push 1
push esi
call fcn.004a56e7
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x198]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x4bf3a5
mov edx, dword [ebp - 0xcc]
xor esi, esi
mov dword [ebp - 0x198], esi
xor eax, eax
cmp byte [ebx + 3], 0
je 0x4bdf36
cmp esi, dword [ebx + 0xc]
jne 0x4bf3bd
cmp eax, dword [ebx + 0x10]
je 0x4bdf36
push dword [edi + 0x2c]
push edx
call fcn.004a8ba2
push str.database_schema_has_changed
push dword [ebp - 0xcc]
call fcn.004a8dd0
mov edx, dword [ebp - 0xcc]
add esp, 0x10
mov dword [edi + 0x2c], eax
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4bf3fd
push dword [ebx + 4]
push edx
call fcn.004b6e97
pop ecx
pop ecx
or dword [edi + 0x58], 1
push 0x11
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x4bdf3c
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x19c]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.004a56e7
push ebx
push edi
call fcn.0049c048
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0x19c]
jmp 0x4bd2d2
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
shl esi, 4
add esi, dword [eax + 0x10]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.004a6ca0
add esp, 0xc
mov dword [ebp - 0xd4], eax
xor edx, edx
inc edx
push 2
cmp dword [ebx + 8], edx
jne 0x4bf485
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0xcc]
mov dword [ecx], eax
pop eax
or dword [esi + 0x18], eax
jmp 0x4bf49a
pop eax
cmp dword [ebx + 8], eax
jne 0x4bf494
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0xcc]
cmp dword [ebx + 4], edx
jne 0x4bf4ac
push esi
call fcn.004aa343
add esp, 4
and dword [edi + 0x58], 0xfffffffe
mov eax, dword [ebp - 0xd4]
jmp 0x4bdf42
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4bf4d0
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 8]
je 0x4bf604
mov esi, dword [ebp - 0xcc]
mov cl, byte [ebp - 0xd9]
test byte [edi + 0x58], 1
jne 0x4c1db8
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
and dword [ebp - 0xfc], 0
and dword [ebp - 0xf0], 0
mov dword [ebp - 0xf4], edx
mov edx, dword [ebp - 0xcc]
shl eax, 4
mov dword [ebp - 0xe8], esi
add eax, dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [ebp - 0x104], edx
mov edx, dword [ebp - 0xf4]
cmp cl, 0x67
jne 0x4bf548
mov eax, dword [eax + 0xc]
movzx ecx, byte [ebx + 3]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0xe0], ecx
cmp al, byte [edi + 0x5c]
jae 0x4bf54f
mov byte [edi + 0x5c], al
jmp 0x4bf54f
and dword [ebp - 0xe0], 0
push 0x10
pop eax
test byte [ebx + 3], al
je 0x4bf575
imul esi, edx, 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.004c373c
mov eax, dword [esi]
mov esi, dword [ebp - 0xe8]
pop ecx
mov dword [ebp - 0xf4], eax
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x4bf591
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf0], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x4bf5a0
cmp al, 0xf2
jne 0x4bf59a
mov ecx, dword [ebx + 0x10]
jmp 0x4bf5a0
mov ecx, dword [ebp - 0xfc]
push 0
push esi
push ecx
push dword [ebx + 4]
push edi
call fcn.0048cfaf
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4bebe4
push 4
pop eax
push dword [esi + 0x14]
or dword [esi + 8], eax
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf4]
push dword [ebp - 0xe0]
mov byte [esi + 2], 1
push eax
push dword [ebp - 0x104]
mov dword [esi + 0xc], eax
call fcn.004a5348
mov dword [ebp - 0xd4], eax
add esp, 0x14
mov eax, dword [ebp - 0xf0]
mov dword [esi + 0x1c], eax
cmp byte [ebx + 1], 0xfa
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 3]
mov eax, dword [esi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x4bdf36
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0048cfaf
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4bebe4
xor ecx, ecx
lea eax, [esi + 8]
inc ecx
mov dword [ebp - 0xfc], eax
or dword [eax], ecx
mov byte [esi + 2], cl
lea ecx, [esi + 0x18]
movzx eax, byte [ebx + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0xcc]
push ecx
push eax
push 0
push dword [eax]
call fcn.004a61f2
add esp, 0x18
test eax, eax
jne 0x4c2066
push 1
push dword [esi + 0x18]
call fcn.004a4cb2
pop ecx
pop ecx
test eax, eax
jne 0x4c2066
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x4bf6e2
movzx eax, byte [ebx + 3]
push 2
pop ecx
or eax, ecx
push eax
lea eax, [ebp - 0x1a0]
push eax
push dword [esi + 0x18]
call fcn.004a531c
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4bf6de
push dword [esi + 0x14]
mov eax, dword [ebp - 0xe8]
push eax
push 4
mov dword [esi + 0x1c], eax
pop eax
push eax
push dword [ebp - 0x1a0]
push dword [esi + 0x18]
call fcn.004a5348
add esp, 0x14
mov dword [ebp - 0xd4], eax
xor cl, cl
jmp 0x4bf700
push dword [esi + 0x14]
push 0
push 4
pop eax
push eax
push 1
push dword [esi + 0x18]
call fcn.004a5348
add esp, 0x14
mov dword [ebp - 0xd4], eax
mov cl, 1
mov byte [esi + 4], cl
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x4c206c
mov edx, dword [ebp - 0xfc]
xor ecx, ecx
cmp byte [ebx + 3], 8
push 4
pop eax
cmovne ecx, eax
mov eax, dword [edx]
and eax, 0xfffffffb
or ecx, eax
mov dword [edx], ecx
jmp 0x4bd186
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0048cfaf
add esp, 0x14
test eax, eax
je 0x4bebea
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x1c], ecx
push dword [ebx + 0xc]
push esi
call fcn.004c4c6e
add esp, 0xc
mov dword [ebp - 0xd4], eax
jmp 0x4bdf42
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0x108]
mov dword [edx + 0x2c], eax
je 0x4c1c2a
jmp 0x4bd218
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.0048cfaf
add esp, 0x14
test eax, eax
je 0x4bebea
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], dl
jmp 0x4bd186
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
push dword [eax + ecx*4]
push edi
call fcn.004c27aa
mov eax, dword [edi + 0x38]
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
and dword [eax + ecx*4], 0
jmp 0x4bd186
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov byte [esi + 2], cl
cmp byte [esi + 4], cl
je 0x4bf8f2
imul ecx, dword [ebx + 0xc], 0x28
push 2
pop edx
add ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], ecx
mov al, byte [ecx + 8]
and al, 0xe
cmp al, dl
jne 0x4bf833
push 0
push ecx
call fcn.0048dc84
pop ecx
pop ecx
mov ecx, dword [ebp - 0xf4]
push ecx
call fcn.004c2cca
pop ecx
mov ecx, dword [ebp - 0xf4]
push 4
mov dword [ebp - 0xf8], eax
pop eax
movzx ecx, word [ecx + 8]
mov dword [ebp - 0x114], edx
test al, cl
jne 0x4bf8ab
test cl, 8
je 0x4c1c2a
mov ecx, dword [ebp - 0xf8]
call fcn.004d6d70
mov eax, dword [ebp - 0xf4]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x4bf894
mov ecx, dword [ebp - 0xe4]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0xe4], ecx
jmp 0x4bf8ab
comisd xmm1, xmm0
jbe 0x4bf8ab
mov eax, dword [ebp - 0xe4]
test al, 1
je 0x4bf8ab
inc eax
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x130]
push eax
push 0
push dword [ebp - 0x114]
push dword [ebp - 0xf8]
push 0
push dword [esi + 0x14]
call fcn.004a5e14
mov ecx, dword [ebp - 0xf8]
add esp, 0x18
mov dword [esi + 0x30], ecx
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0xd4], eax
mov dword [esi + 0x34], ecx
test eax, eax
jne 0x4c2066
jmp 0x4bf9a8
mov eax, dword [esi + 0x14]
push 0
mov al, byte [eax + 0x43]
and al, 2
mov byte [ebp - 0xd9], al
pop eax
setne al
mov dword [ebp - 0xf0], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x1bc], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1b4], ax
lea eax, [edx - 1]
and al, 1
mov edx, 0x4000
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0x1b2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1b8], eax
test word [eax + 8], dx
je 0x4bf957
push eax
call fcn.004c349a
pop ecx
xor ecx, ecx
lea eax, [ebp - 0x130]
mov byte [ebp - 0x1ae], cl
push eax
push ecx
push ecx
push ecx
lea eax, [ebp - 0x1bc]
push eax
push dword [esi + 0x14]
call fcn.004a5e14
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp byte [ebp - 0xd9], al
je 0x4bf9a8
cmp byte [ebp - 0x1ae], 0
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xf0], eax
je 0x4bfa34
and dword [esi + 0x40], 0
mov eax, dword [ebp - 0xe4]
mov byte [esi + 3], 0
mov ecx, dword [ebp - 0x130]
cmp eax, 0x19
jl 0x4bf9ed
test ecx, ecx
js 0x4bf9d5
jne 0x4bf9cc
cmp eax, 0x1a
je 0x4bf9d5
and dword [ebp - 0x130], 0
jmp 0x4bfa41
and dword [ebp - 0x130], 0
lea eax, [ebp - 0x130]
push eax
push dword [esi + 0x14]
call fcn.004a6187
jmp 0x4bfa24
test ecx, ecx
jg 0x4bfa0e
jne 0x4bf9fa
push 0x17
pop ecx
cmp eax, ecx
je 0x4bfa0e
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x130], ecx
jmp 0x4bfa34
and dword [ebp - 0x130], 0
lea eax, [ebp - 0x130]
push eax
push dword [esi + 0x14]
call fcn.004a6780
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c2066
cmp dword [ebp - 0x130], 0
jne 0x4c1c2a
cmp dword [ebp - 0xf0], 0
lea eax, [ebx + 0x14]
cmove eax, ebx
mov ebx, eax
jmp 0x4bd218
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
and dword [ebp - 0x134], 0
add esi, dword [ebp - 0xd8]
cmp dword [ebx + 0x10], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x104], eax
jle 0x4bfaf9
mov eax, dword [eax + 0x1c]
xor edx, edx
movzx ecx, word [ebx + 0x10]
mov dword [ebp - 0x1fc], eax
xor eax, eax
mov word [ebp - 0x1f4], cx
mov dword [ebp - 0x1f8], esi
mov dword [ebp - 0xe0], edx
cmp ax, cx
jae 0x4bfaeb
xor edi, edi
mov ebx, 0x4000
lea eax, [edi + esi]
test word [eax + 8], bx
je 0x4bface
push eax
call fcn.004c349a
mov esi, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0xe0]
pop ecx
mov cx, word [ebp - 0x1f4]
inc edx
movzx eax, cx
add edi, 0x28
mov dword [ebp - 0xe0], edx
cmp edx, eax
jl 0x4bfaab
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
mov esi, dword [ebp - 0x104]
lea eax, [ebp - 0x1fc]
jmp 0x4bfb5b
lea ecx, [ebp - 0x134]
push ecx
push 0xb7
lea ecx, [ebp - 0xbc]
push ecx
push dword [eax + 0x1c]
call fcn.004bca82
add esp, 0x10
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x4bebe4
mov ecx, 0x4000
test word [esi + 8], cx
je 0x4bfb3d
push esi
call fcn.004c349a
mov eax, dword [ebp - 0xe0]
pop ecx
push eax
push dword [esi + 0x10]
push dword [esi + 0xc]
mov esi, dword [ebp - 0x104]
push dword [esi + 0x1c]
call fcn.004c45e9
mov eax, dword [ebp - 0xe0]
add esp, 0x10
and dword [ebp - 0xe0], 0
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1d
jne 0x4bfb9e
movzx ecx, word [eax + 8]
xor edx, edx
mov dword [ebp - 0xe8], ecx
test ecx, ecx
je 0x4bfb9e
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x4bfb94
inc edx
add ecx, 0x28
cmp edx, dword [ebp - 0xe8]
jl 0x4bfb81
jmp 0x4bfb9e
mov dword [ebp - 0xe0], 1
lea ecx, [ebp - 0x1a4]
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
push dword [esi + 0x14]
call fcn.004a5e14
push dword [ebp - 0x134]
mov dword [ebp - 0xd4], eax
push dword [ebp - 0xcc]
call fcn.004a8ba2
mov eax, dword [ebp - 0xd4]
add esp, 0x20
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0x1a4]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov byte [esi + 3], 0
sete cl
test eax, eax
setne al
and dword [esi + 0x40], 0
mov byte [esi + 2], al
cmp byte [ebx], 0x1f
jne 0x4bfc07
test ecx, ecx
jmp 0x4bdfe0
cmp dword [ebp - 0xe0], 0
jne 0x4c1c2a
test ecx, ecx
jmp 0x4bf790
mov eax, dword [edi + 0x38]
xor edx, edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xe0], edx
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0xd8]
imul eax, dword [eax + 0xc], 0x28
mov esi, dword [eax + ecx]
mov edi, dword [eax + ecx + 4]
lea eax, [ebp - 0xe0]
push eax
push edx
push edi
push esi
push edx
push dword [ebx + 0x14]
call fcn.004a5e14
mov dword [ebp - 0xd4], eax
add esp, 0x18
xor eax, eax
mov dword [ebx + 0x30], esi
mov word [ebx + 2], ax
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebx + 0x34], edi
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp - 0x110]
test eax, eax
je 0x4bfc9e
cmp dword [ebx + 8], 0
jne 0x4c1c24
push 0x13b6c
call fcn.004a7b21
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x4bfca4
mov eax, dword [ebp - 0xd4]
mov edi, dword [ebp - 0x108]
jmp 0x4bdf3c
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x4bd186
and dword [ebp - 0xf0], 0
xorps xmm0, xmm0
push ebx
push edi
movlpd qword [ebp - 0x12c], xmm0
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
push 2
mov dword [ebp - 0xfc], eax
pop eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x10c], ecx
test byte [ecx + 8], al
jne 0x4bfdaa
lea eax, [ebp - 0xf0]
push eax
push dword [ecx + 0x14]
call fcn.004a5d1e
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c206c
cmp dword [ebp - 0xf0], eax
je 0x4bfd56
inc eax
xor esi, esi
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], esi
jmp 0x4bfdb6
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x10c]
push dword [eax + 0x14]
call fcn.004a5cfd
mov esi, dword [ebp - 0x128]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xe4], eax
pop ecx
pop ecx
cmp esi, 0x7fffffff
jl 0x4bfda2
jg 0x4bfd94
cmp eax, 0xffffffff
jb 0x4bfda2
mov ecx, dword [ebp - 0x10c]
push 2
pop edx
or dword [ecx + 8], edx
jmp 0x4bfdbc
add eax, 1
adc esi, 0
jmp 0x4bfd48
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4bfe69
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x4bfe4c
imul eax, edx, 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.004c373c
pop ecx
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x4bfe02
cmp eax, 0x7fffffff
je 0x4bff02
mov edi, dword [ebp - 0x10c]
test byte [edi + 8], 2
mov edi, dword [ebp - 0x108]
jne 0x4bff02
add edx, 1
adc eax, 0
mov dword [ebp - 0xe8], eax
cmp esi, eax
jg 0x4bfe5e
jl 0x4bfe34
mov eax, dword [ebp - 0xe4]
cmp eax, edx
jae 0x4bfe64
mov esi, dword [ebp - 0xe8]
mov eax, edx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], esi
jmp 0x4bfe64
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4bfe4a
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x4bfdda
mov eax, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov ecx, dword [ebp - 0x10c]
push 2
pop edx
test byte [ecx + 8], dl
je 0x4bff15
and dword [ebp - 0xe0], 0
lea eax, [ebp - 0x12c]
push eax
push 8
pop eax
push eax
call fcn.00487a16
mov esi, dword [ebp - 0x128]
lea ecx, [ebp - 0xf0]
mov eax, dword [ebp - 0x12c]
and esi, 0x3fffffff
push 0
pop edx
add eax, 1
push ecx
push edx
adc esi, edx
mov dword [ebp - 0xe4], eax
push esi
push eax
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x10c]
push edx
mov dword [ebp - 0x128], esi
push dword [eax + 0x14]
call fcn.004a5e14
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp dword [ebp - 0xf0], eax
jne 0x4bff09
mov eax, dword [ebp - 0xe0]
inc eax
mov dword [ebp - 0xe0], eax
cmp eax, 0x64
jl 0x4bfe82
push 0xd
jmp 0x4bdeba
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x10c]
and dword [ecx + 0x40], 0
mov byte [ecx + 3], 0
mov ecx, dword [ebp - 0xfc]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp 0x4bd218
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov edx, dword [ebp - 0xd8]
and dword [ebp - 0x104], 0
add esi, edx
cmp byte [ebp - 0xd9], 0x71
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe0], ecx
jne 0x4bff7d
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0xd8]
mov edx, dword [eax + edx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x108]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf0], eax
jmp 0x4bff8f
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0xf0], edx
mov edx, eax
mov dword [ebp - 0xf8], eax
cmp byte [ebx + 1], 0xec
jne 0x4bffd9
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x4bffd9
movsx ecx, byte [ecx + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 4
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x114], eax
mov eax, dword [ebx + 0x10]
pop ecx
mov dword [ebp - 0xf4], eax
mov al, byte [ebx + 3]
test cl, al
push 0x12
pop ecx
cmovne ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x104], ecx
jmp 0x4bffea
and dword [ebp - 0xf4], 0
and dword [ebp - 0x114], 0
mov al, byte [ebx + 3]
test al, 1
je 0x4bfff4
inc dword [edi + 0x64]
mov al, byte [ebx + 3]
push 2
pop ecx
test cl, al
je 0x4c0019
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x154], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
movzx ecx, word [esi + 8]
test cl, 1
je 0x4c002a
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
mov dl, byte [ebx + 3]
push 0x10
pop eax
test al, dl
je 0x4c003f
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x20]
jmp 0x4c0041
xor eax, eax
test ecx, 0x4000
je 0x4c004d
mov ecx, dword [esi]
jmp 0x4c004f
xor ecx, ecx
push eax
movzx eax, dl
shr eax, 3
and eax, 1
push eax
push ecx
push dword [esi + 0xc]
push dword [esi + 0x10]
mov esi, dword [ebp - 0xe0]
push dword [ebp - 0xf0]
push dword [ebp - 0xf8]
push 0
push dword [esi + 0x14]
call fcn.004a57fb
and dword [esi + 0x40], 0
add esp, 0x24
mov byte [esi + 3], 0
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c206c
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x4bd186
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x4bd186
push dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf4]
push dword [ebp - 0xf8]
push dword [edx]
push dword [ebp - 0x114]
push ecx
push dword [esi + 0xd4]
call eax
add esp, 0x18
jmp 0x4bd186
cmp byte [ebx + 1], 0xec
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xe8], eax
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
jne 0x4c0143
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x4c0143
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x104], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe0], eax
pop eax
test byte [ebx + 3], al
je 0x4c0151
cmp byte [esi + 4], 0
je 0x4c0151
lea eax, [esi + 0x30]
push eax
push dword [esi + 0x14]
call fcn.004a5cfd
pop ecx
pop ecx
jmp 0x4c0151
and dword [ebp - 0x104], 0
and dword [ebp - 0xe0], 0
movzx eax, byte [ebx + 3]
push eax
push dword [esi + 0x14]
call fcn.004a53cb
and dword [esi + 0x40], 0
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c2066
inc eax
test byte [ebp - 0xe8], al
je 0x4beded
mov eax, dword [ebp - 0xcc]
inc dword [edi + 0x64]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x4bd218
mov ecx, dword [ebp - 0xe0]
test byte [ecx + 0x2a], 0x20
jne 0x4bd218
push dword [esi + 0x34]
push dword [esi + 0x30]
mov esi, dword [ebp - 0xcc]
push dword [ecx]
push dword [ebp - 0x104]
push 9
jmp 0x4c00d3
mov eax, dword [edi + 0x64]
add dword [esi + 0x58], eax
mov dword [esi + 0x54], eax
and dword [edi + 0x64], 0
jmp 0x4bd186
mov eax, dword [edi + 0x38]
lea edx, [ebp - 0xe4]
mov ecx, dword [ebx + 4]
and dword [ebp - 0xe4], 0
push edx
push dword [ebx + 0x10]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
push eax
push ecx
call fcn.004c4bd0
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c206c
cmp dword [ebp - 0xe4], eax
jmp 0x4bd1b8
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add edx, dword [ebp - 0xd8]
push edx
push dword [eax + ecx*4]
call fcn.004c4fc3
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c206c
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
jmp 0x4bd186
imul eax, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xe8], eax
cmp byte [eax + 4], 0
mov esi, dword [eax + 0x14]
mov dword [ebp - 0xe0], esi
jne 0x4c02b4
lea eax, [ebp - 0x1cc]
push eax
push esi
call fcn.004a5cfd
mov eax, dword [ebp - 0xcc]
pop ecx
pop ecx
mov eax, dword [eax + 0x5c]
cdq
cmp dword [ebp - 0x1c8], edx
jg 0x4bdc6c
mov esi, dword [ebp - 0x1cc]
jl 0x4c02cd
cmp esi, eax
jmp 0x4c02c7
push esi
call fcn.00498757
mov eax, dword [ebp - 0xcc]
mov esi, dword [esi + 0x1c]
pop ecx
cmp esi, dword [eax + 0x5c]
ja 0x4bdc6c
push 0x20
pop eax
cmp esi, eax
cmova eax, esi
push eax
mov eax, dword [ebp - 0xf4]
push eax
call fcn.004c3404
pop ecx
pop ecx
test eax, eax
jne 0x4bebe4
mov ecx, dword [ebp - 0xf4]
mov edx, 0x3e00
push 0x10
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 0xc], esi
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0xe8]
cmp byte [ecx + 4], 0
jne 0x4c0330
push 0
push eax
push esi
push 0
push dword [ebp - 0xe0]
call fcn.0048c4f8
add esp, 0x14
jmp 0x4c0342
push eax
push esi
push 0
push dword [ebp - 0xe0]
call fcn.004a538f
add esp, 0x10
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c206c
mov eax, dword [ebp - 0xf4]
mov byte [eax + 0xa], 1
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0xe0], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x4c038f
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x4bd218
cmp byte [esi + 3], 0
je 0x4c03ac
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x194], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x190], eax
jmp 0x4c0433
push 2
pop eax
cmp byte [esi], al
jne 0x4c03e5
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x194]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004c59cd
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x4c2066
jmp 0x4c0433
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x4c03f7
push esi
call fcn.00498b2a
pop ecx
jmp 0x4c03f9
xor eax, eax
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp byte [esi + 2], al
je 0x4c041c
mov ecx, dword [ebp - 0xe0]
inc eax
mov word [ecx + 8], ax
jmp 0x4beded
lea eax, [ebp - 0x194]
push eax
push dword [esi + 0x14]
call fcn.004a5cfd
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x194]
mov dword [ecx], eax
mov eax, dword [ebp - 0x190]
mov dword [ecx + 4], eax
jmp 0x4bd218
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
cmp byte [eax], 0
mov byte [eax + 2], 1
jne 0x4bd186
push dword [eax + 0x14]
call fcn.004a4ea2
jmp 0x4bdef1
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
and dword [ebp - 0x124], 0
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x124]
push eax
push dword [esi + 0x14]
call fcn.004a5d1e
and dword [esi + 0x40], 0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0xd4], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x4c2066
cmp dword [ebx + 8], eax
jle 0x4bd218
jmp 0x4bfc00
inc dword [edi + 0x7c]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x110], eax
cmp byte [esi], cl
jne 0x4c050e
lea eax, [ebp - 0x110]
push eax
push esi
call fcn.004c4f60
pop ecx
pop ecx
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0xd4], eax
jmp 0x4c0554
mov eax, dword [esi + 0x14]
push eax
mov dword [ebp - 0xe8], eax
call fcn.0049aa09
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x4c0546
mov ecx, dword [ebp - 0xe8]
cmp byte [ecx + 0x42], al
je 0x4c0546
push ecx
mov dword [ebp - 0xe0], eax
call fcn.0049a93a
pop ecx
mov dword [ebp - 0xd4], eax
and dword [esi + 0x40], 0
mov ecx, dword [ebp - 0xe0]
mov byte [esi + 3], 0
test eax, eax
jne 0x4c2066
mov byte [esi + 2], cl
jmp 0x4bfc00
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x168]
and dword [ebp - 0x168], 0
push eax
push esi
push dword [ebp - 0xcc]
call fcn.004c4e0a
add esp, 0xc
jmp 0x4c05bd
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4bd186
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x168]
push eax
push dword [esi + 0x14]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
and dword [esi + 0x40], 0
test eax, eax
jne 0x4c2066
cmp dword [ebp - 0x168], eax
jne 0x4c05e7
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x74]
jmp 0x4c19a5
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x4c0cd0
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add esi, dword [ebp - 0xd8]
test byte [ebx + 3], 1
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe0], ecx
je 0x4c0614
inc dword [edi + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4c062e
push esi
call fcn.004c349a
pop ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x4c0630
xor eax, eax
test eax, eax
jne 0x4c2066
cmp byte [ebx], 0x7b
jne 0x4c064b
push esi
push ecx
call fcn.004c501f
pop ecx
pop ecx
jmp 0x4bf404
push 0x10
pop eax
test byte [ebx + 3], al
je 0x4c0658
mov eax, dword [ecx + 0x20]
jmp 0x4c065a
xor eax, eax
push eax
push dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x4ebbbc
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [ecx + 0x14]
call fcn.004a57fb
mov ecx, dword [ebp - 0xe0]
add esp, 0x24
and dword [ecx + 0x40], 0
jmp 0x4bf404
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x20c], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x204], ax
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0xe8], ecx
mov byte [ebp - 0x202], dl
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x208], eax
lea eax, [ebp - 0x1ac]
push eax
push edx
push edx
push edx
lea eax, [ebp - 0x20c]
push eax
push ecx
call fcn.004a5e14
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp dword [ebp - 0x1ac], eax
jne 0x4c0717
push 4
pop eax
push eax
push dword [ebp - 0xe8]
call fcn.004a53cb
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c2066
and dword [esi + 0x40], 0
jmp 0x4bd218
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x4c073b
push esi
call fcn.00498b2a
pop ecx
jmp 0x4c073d
xor eax, eax
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp byte [esi + 2], al
jne 0x4c07db
lea eax, [ebp - 0x170]
xorps xmm0, xmm0
push eax
push dword [esi + 0x14]
movlpd qword [ebp - 0x170], xmm0
push dword [ebp - 0xcc]
call fcn.004c2bd3
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
cmp byte [ebx], 0x7e
jne 0x4c07b9
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x170]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x16c]
mov word [ecx + 2], 0x100
mov dword [ecx + 0x34], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], esi
jmp 0x4bd218
push ebx
push edi
call fcn.0049c048
pop ecx
pop ecx
mov ecx, dword [ebp - 0x170]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x16c]
push 4
mov dword [eax + 4], ecx
pop ecx
jmp 0x4c0386
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
jmp 0x4be8d8
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0xd9], 0x3a
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x21c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x214], ax
sbb al, al
and dword [ebp - 0x114], 0
mov byte [ebp - 0x212], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x21c]
push eax
push ecx
push esi
call fcn.004c2b3a
mov ecx, dword [ebp - 0x114]
add esp, 0x10
test byte [ebx], 1
mov dword [ebp - 0xd4], eax
jne 0x4c085a
neg ecx
jmp 0x4c0861
mov eax, dword [ebp - 0xd4]
inc ecx
test eax, eax
jne 0x4c206c
test ecx, ecx
jg 0x4c1c2a
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xe8], eax
inc ecx
mov word [eax + 8], cx
mov ecx, dword [esi + 0xa8]
inc ecx
cmp dword [esi + 0x9c], ecx
jg 0x4c1dc2
mov eax, dword [ebx + 0xc]
mov ecx, eax
and dword [ebp - 0x100], 0
mov esi, dword [ebx + 4]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xcc]
shl ecx, 4
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax + 0x10]
mov edi, dword [ecx + eax + 4]
push edi
call fcn.004a564a
lea eax, [ebp - 0x100]
push eax
push esi
push edi
call fcn.0048fc40
push edi
mov dword [ebp - 0xd4], eax
call fcn.004a5d76
mov ecx, dword [ebp - 0xe8]
add esp, 0x14
mov edi, dword [ebp - 0x100]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, edi
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 4], edx
test eax, eax
jne 0x4c2060
test edi, edi
je 0x4bd489
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax + 0x10]
mov ecx, dword [edx + esi + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4c0962
mov edx, dword [ebp - 0x104]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], edi
jne 0x4c0952
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x4c0947
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + esi + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4c0986
mov ebx, dword [ebp - 0x104]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], edi
jne 0x4c097a
mov dword [ecx + 0x2c], ebx
mov eax, dword [eax]
test eax, eax
jne 0x4c096f
mov ebx, dword [ebp - 0x110]
mov al, byte [ebp - 0xfc]
inc al
mov byte [ebp - 0x11d], al
jmp 0x4bd489
and dword [ebp - 0xfc], 0
lea eax, [ebp - 0xfc]
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 4]
push dword [eax + ecx*8 + 4]
call fcn.004a4ebd
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0xc], 0
je 0x4bdf42
mov edx, dword [ebp - 0xfc]
add dword [edi + 0x64], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x4bdf42
mov esi, dword [ebp - 0xd8]
mov eax, edx
imul ecx, ecx, 0x28
cdq
add dword [ecx + esi], eax
mov eax, esi
adc dword [ecx + eax + 4], edx
jmp 0x4bdf36
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x4c0a21
push dword [eax + 0x14]
push esi
call fcn.004c4e80
pop ecx
jmp 0x4bdef1
mov eax, dword [eax + 0x14]
push 0
push dword [eax + 0x34]
push dword [eax]
call fcn.004a4ebd
jmp 0x4bf75b
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
and dword [ebp - 0xe8], 0
shl edx, 4
add edx, dword [eax + 0x10]
lea eax, [ebp - 0xe8]
cmp byte [ebx], 0x84
setne cl
inc ecx
push ecx
push eax
push dword [edx + 4]
call fcn.004a531c
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0xe8]
cdq
jmp 0x4be425
mov ecx, dword [ebx + 4]
lea eax, [edi + 0x2c]
push dword [ebx + 0x10]
mov dword [ebp - 0x1e8], eax
cmp ecx, 1
mov edx, str.sqlite_temp_master
mov dword [ebp - 0x1e4], ecx
mov eax, str.sqlite_master
mov dword [ebp - 0x1ec], esi
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.004b18ef
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4c1dd0
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x1ec]
and dword [ebp - 0x1e0], 0
push 0
push ecx
push fcn.004afb07
push esi
push eax
mov byte [eax + 0x95], 1
call fcn.00486e0b
test eax, eax
push esi
cmove eax, dword [ebp - 0x1e0]
mov esi, dword [ebp - 0xcc]
push esi
mov dword [ebp - 0xd4], eax
call fcn.004a8ba2
add esp, 0x1c
mov byte [esi + 0x95], 0
cmp dword [ebp - 0xd4], 0
jne 0x4c1ddf
jmp 0x4bd186
push dword [ebx + 4]
push esi
call fcn.004a36c3
pop ecx
pop ecx
jmp 0x4bf75e
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [esi + 0x10]
push 0
push dword [ebx + 0x10]
mov eax, dword [eax + 0xc]
push 8
pop ecx
add eax, ecx
push eax
call fcn.004af646
push eax
push esi
call fcn.004a97ef
add esp, 0x14
push 2
pop eax
or dword [esi + 0x18], eax
jmp 0x4bd186
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.004ba877
jmp 0x4bd60e
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.004ba8e5
jmp 0x4bd60e
imul eax, dword [ebx + 4], 0x28
imul esi, dword [ebx + 0xc], 0x28
movzx ecx, byte [ebx + 3]
add ecx, ecx
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0x148]
push eax
mov eax, dword [ebp - 0xcc]
push dword [esi]
push dword [ebx + 8]
mov eax, dword [eax + 0x10]
push dword [ebx + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004a59f4
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x148]
cdq
sub dword [esi], eax
sbb dword [esi + 4], edx
mov esi, dword [ebp - 0xe8]
push esi
call fcn.004c3961
add esp, 0x18
cmp dword [ebp - 0x148], 0
je 0x4c0c26
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4bebe4
push fcn.00487919
push 1
push 0xffffffffffffffff
push eax
push esi
call fcn.004c39f9
add esp, 0x14
movzx eax, byte [ebp - 0x11c]
push eax
push esi
call fcn.004bcae3
pop ecx
jmp 0x4bd676
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], eax
test byte [esi + 8], 0x20
jne 0x4c0c71
push esi
call fcn.004c3984
test byte [esi + 8], 0x20
pop ecx
je 0x4bebe4
mov eax, dword [ebp - 0xe8]
push dword [eax + 4]
push dword [eax]
push dword [esi]
call fcn.004b7337
jmp 0x4be8ca
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
test byte [esi + 8], 0x20
je 0x4c0d45
lea eax, [ebp - 0x1d4]
push eax
push dword [esi]
call fcn.004b7383
pop ecx
pop ecx
test eax, eax
je 0x4c0d45
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
add eax, dword [ebp - 0xd8]
push eax
call fcn.004c392b
add esp, 0xc
xor eax, eax
inc eax
mov esi, dword [ebp - 0xcc]
cmp dword [esi + 0xf8], 0
jne 0x4c2030
mov ecx, dword [esi + 0x130]
mov edx, dword [ebp - 0xd0]
test ecx, ecx
je 0x4bd18f
cmp edx, dword [ebp - 0x14c]
jb 0x4bd18f
mov eax, dword [esi + 0x138]
mov dword [ebp - 0x14c], eax
mov eax, edx
xor edx, edx
div dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
push dword [esi + 0x134]
sub eax, edx
add eax, dword [ebp - 0xd0]
mov dword [ebp - 0x14c], eax
call ecx
pop ecx
test eax, eax
je 0x4bd186
push 9
jmp 0x4c1cfd
push esi
call fcn.004c3961
pop ecx
jmp 0x4c19a5
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xe8], ecx
add esi, dword [ebp - 0xd8]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xfc], eax
test byte [esi + 8], 0x20
jne 0x4c0d97
push esi
call fcn.004c3984
test byte [esi + 8], 0x20
pop ecx
je 0x4bebe4
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
je 0x4c0dbb
push dword [eax + 4]
push dword [eax]
push ecx
push dword [esi]
call fcn.004b73e3
add esp, 0x10
test eax, eax
jne 0x4c1c2a
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
js 0x4bd218
mov eax, dword [ebp - 0xfc]
jmp 0x4c0c71
imul eax, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xf8], esi
add eax, dword [ebp - 0xd8]
cmp byte [ebx + 3], 0
mov dword [ebp - 0xf0], eax
je 0x4c0e12
mov eax, dword [edi + 0xb8]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4c0e0c
cmp dword [eax + 0x1c], ecx
je 0x4c0e04
mov eax, dword [eax + 4]
test eax, eax
jne 0x4c0df8
test eax, eax
jne 0x4bd218
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edi + 0xc0]
cmp ecx, dword [edx + 0x84]
jge 0x4c1dfc
test byte [eax + 8], 0x40
jne 0x4c0f34
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [ebp - 0xe8], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 0x10]
add ecx, edx
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push dword [ebp - 0xcc]
call fcn.004a8cc7
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4bebe4
push dword [ebp - 0xf0]
call fcn.004c38d9
mov eax, dword [ebp - 0xf0]
sub ebx, dword [ebp - 0x118]
pop ecx
push 0x40
mov dword [eax], esi
pop ecx
mov word [eax + 8], cx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xe8]
mov dword [esi + 0x40], ecx
mov dword [esi], edi
mov eax, dword [eax + 0xc]
mov dword [esi + 0x44], eax
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov ebx, dword [ebp - 0xf8]
mov dword [esi + 0x30], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x20]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0xd0]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xcc]
mov dword [esi + 0x3c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x4c0f2c
mov edx, dword [ebp - 0xcc]
mov edi, 0x80
mov word [eax + 8], di
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x4c0f12
mov edi, dword [ebp - 0x108]
mov ebx, dword [ebp - 0xf8]
mov ecx, dword [edi + 0xc0]
jmp 0x4c0f3c
mov esi, dword [eax]
mov ebx, dword [ebp - 0xf8]
lea eax, [ecx + 1]
mov dword [edi + 0xc0], eax
lea ecx, [esi + 0x50]
mov eax, dword [edi + 0xb8]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x150]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [edi]
mov dword [ebp - 0xd8], ecx
mov eax, dword [eax + 0x54]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0xd4]
mov dword [esi + 0x28], eax
and dword [edi + 0xd4], 0
and dword [edi + 0x64], 0
mov dword [edi + 8], ecx
mov dword [edi + 0xb8], esi
mov eax, dword [esi + 0x40]
mov dword [edi + 0x1c], eax
movzx edx, word [esi + 0x44]
imul eax, eax, 0x28
mov dword [edi + 0x24], edx
add ecx, eax
mov dword [edi + 0x38], ecx
mov esi, dword [ebx]
mov dword [edi + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [ecx + edx*4]
mov dword [edi + 0x20], eax
mov dword [edi + 0xd0], ecx
mov eax, dword [ebx + 0x10]
lea ebx, [esi - 0x14]
push eax
push 0
push ecx
mov dword [ebp - 0x118], esi
mov dword [edi + 0xcc], eax
call sub.VCRUNTIME140.dll_memset
jmp 0x4be8ca
push ebx
push edi
call fcn.0049c048
mov esi, dword [edi + 0xb8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [esi + 0x10]
push ecx
jmp 0x4bd508
test dword [esi + 0x18], 0x2000000
mov eax, dword [ebx + 8]
cdq
je 0x4c1028
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x4bd186
cmp dword [ebx + 4], 0
je 0x4c103f
add dword [esi + 0x1b8], eax
adc dword [esi + 0x1bc], edx
jmp 0x4bd186
add dword [edi + 0x98], eax
adc dword [edi + 0x9c], edx
jmp 0x4bd186
cmp dword [ebx + 4], 0
je 0x4c1079
mov eax, dword [esi + 0x1b8]
or eax, dword [esi + 0x1bc]
jne 0x4bd186
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jmp 0x4be4bc
mov eax, dword [edi + 0x98]
or eax, dword [edi + 0x9c]
jmp 0x4c1062
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x4c10e3
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe8], eax
call fcn.004c373c
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.004c373c
mov eax, dword [ebp - 0xe8]
mov edx, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x4bd218
jl 0x4c10d7
cmp dword [eax], ecx
jae 0x4bd218
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4bd218
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4c10e1
imul eax, dword [ebx + 4], 0x28
add eax, dword [ecx + 0x10]
jmp 0x4c109b
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
test eax, eax
jl 0x4bd218
jg 0x4c1114
test esi, esi
je 0x4bd218
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], esi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x4c1c2a
imul eax, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
push ebx
push edi
add eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], eax
call fcn.0049c048
cmp dword [esi + 4], 0
mov edx, eax
pop ecx
pop ecx
jg 0x4c1162
jl 0x4c115b
cmp dword [esi], 0
ja 0x4c1162
or eax, 0xffffffff
or ecx, eax
jmp 0x4c1193
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test ecx, ecx
jl 0x4c1177
jg 0x4c118e
test eax, eax
jne 0x4c118e
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4bd218
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov esi, dword [ecx]
mov eax, esi
or eax, dword [ecx + 4]
jmp 0x4c110e
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
add dword [ecx], 0xffffffff
mov eax, dword [ecx]
adc dword [ecx + 4], 0xffffffff
or eax, dword [ecx + 4]
jmp 0x4be4bc
mov al, byte [ebx + 3]
mov byte [ebp - 0xd9], al
movzx eax, al
push 7
cdq
pop ecx
add eax, ecx
adc edx, 0
shld edx, eax, 2
push edx
shl eax, 2
push eax
push esi
call fcn.004a8c17
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4bebe4
and dword [esi + 8], 0
mov eax, ebx
mov ecx, dword [ebx + 0x10]
sub eax, dword [ebp - 0x118]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov al, byte [ebp - 0xd9]
mov byte [esi + 0x1a], al
mov word [ebx], 0xeb92
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], edx
cmp dword [esi + 8], edx
je 0x4c127e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x4c127e
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xd8]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x4c125b
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0xe8]
inc dword [edx + 0xc]
xor eax, eax
inc eax
xor ecx, ecx
mov word [ebp - 0x264], ax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x254], ecx
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
mov word [esi + 0x18], cx
mov ecx, dword [esi + 4]
push eax
push esi
call dword [ecx + 0xc]
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4c130b
cmp dword [esi + 0x14], 0
je 0x4c12f0
lea eax, [ebp - 0x26c]
push 1
push eax
call fcn.004bc7e1
push eax
push 0x501914
push edi
call fcn.004bcfe5
mov eax, dword [esi + 0x14]
add esp, 0x14
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x26c]
push eax
call fcn.004c38d9
mov eax, dword [ebp - 0xd4]
pop ecx
test eax, eax
jne 0x4c2066
cmp byte [esi + 0x18], 0
je 0x4bd218
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x4bd218
imul eax, eax, 0x28
push 0
push 1
add eax, dword [ebp - 0xd8]
push eax
call fcn.004c392b
jmp 0x4be8ca
imul esi, dword [ebx + 4], 0x28
push dword [ebx + 0x10]
add esi, dword [ebp - 0xd8]
push esi
call fcn.004c34f3
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c1e1e
movzx eax, byte [ebp - 0x11c]
push eax
push esi
call fcn.004bcae3
push esi
jmp 0x4bdc5c
and dword [ebp - 0xc8], 0
lea eax, [ebp - 0xc0]
or dword [ebp - 0xc0], 0xffffffff
or dword [ebp - 0xc4], 0xffffffff
push eax
lea eax, [ebp - 0xc4]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push esi
call fcn.004a6d96
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x4c13c6
cmp eax, 5
jne 0x4c206c
xor eax, eax
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xd4], eax
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0xd8]
xor edi, edi
mov eax, dword [ebp + edi*4 - 0xc8]
cdq
push edx
push eax
push esi
call fcn.004c392b
add esp, 0xc
add esi, 0x28
inc edi
cmp edi, 3
jl 0x4c13d2
jmp 0x4bd489
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
add edx, edx
mov dword [ebp - 0xe0], eax
cmp dword [ebx + 0xc], 0xffffffff
pop ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0xfc], eax
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [ebp - 0xe4], ecx
movzx edx, byte [ecx + 5]
mov eax, edx
mov dword [ebp - 0xf4], edx
cmovne eax, dword [ebx + 0xc]
cmp byte [ecx + 0x11], 3
mov dword [ebp - 0xe8], eax
jb 0x4c1443
xor eax, eax
jmp 0x4c145c
mov eax, dword [ecx + 0x44]
cmp dword [eax], 0
je 0x4c1459
cmp dword [ecx + 0x54], 0
jl 0x4c1459
jg 0x4c143f
cmp dword [ecx + 0x50], 0
ja 0x4c143f
xor eax, eax
inc eax
test eax, eax
mov esi, edx
mov eax, 0x4ebbbc
cmovne esi, dword [ebp - 0xe8]
cmp byte [ecx + 0x10], 0
jne 0x4c1478
mov eax, dword [ecx + 0xb0]
cmp esi, 5
jne 0x4c14ae
push eax
call fcn.004ba176
pop ecx
test eax, eax
je 0x4c1498
push dword [ebp - 0xe4]
call fcn.004b39dd
pop ecx
test eax, eax
jne 0x4c14a2
mov edx, dword [ebp - 0xf4]
mov esi, edx
jmp 0x4c14a8
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe4]
cmp esi, edx
je 0x4c153f
cmp edx, 5
je 0x4c14c0
cmp esi, 5
jne 0x4c153f
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x43], 0
je 0x4c1e35
cmp dword [eax + 0x9c], 1
jg 0x4c1e35
cmp edx, 5
jne 0x4c1503
push ecx
call fcn.004b26a6
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x4c1547
push esi
push dword [ebp - 0xe4]
call fcn.004b3531
pop ecx
pop ecx
jmp 0x4c1520
push 4
pop eax
cmp edx, eax
jne 0x4c1516
push 2
pop eax
push eax
push ecx
call fcn.004b3531
pop ecx
pop ecx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x4c1547
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0xfc]
call fcn.004a6b6e
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x4c1545
mov eax, dword [ebp - 0xd4]
test eax, eax
mov eax, dword [ebp - 0xf4]
cmove eax, esi
push eax
push dword [ebp - 0xe4]
call fcn.004b3531
mov esi, dword [ebp - 0xe0]
pop ecx
pop ecx
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x4c1576
xor eax, eax
jmp 0x4c157d
mov eax, dword [eax*4 + 0x4ff198]
push eax
mov dword [esi + 0x10], eax
call fcn.004ba176
mov dword [esi + 0xc], eax
movzx eax, byte [ebp - 0x11c]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.004bcae3
jmp 0x4bdf33
lea eax, [edi + 0x2c]
push esi
push eax
call fcn.004b781a
jmp 0x4c0b40
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.004a5730
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x4bd186
cmp eax, 0x65
jne 0x4c206c
and dword [ebp - 0xd4], 0
jmp 0x4c1c2a
cmp dword [ebx + 4], 0
jne 0x4c15f8
push esi
call fcn.004aa343
add esp, 4
jmp 0x4bd186
or dword [edi + 0x58], eax
jmp case.0x4bd139.110
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x174], al
test al, al
jne 0x4c161b
mov eax, 0x4000
test dword [esi + 0x18], eax
jne 0x4bd186
mov ecx, dword [ebx + 4]
push dword [ebp - 0x174]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.004a5dc3
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x4bd186
cmp al, 6
jne 0x4c206c
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.004bcfe5
add esp, 0xc
mov eax, dword [ebp - 0xd4]
jmp 0x4c206c
mov esi, dword [ebx + 0x10]
push esi
push dword [ebp - 0xcc]
call fcn.004c539c
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test esi, esi
je 0x4bdf3c
push dword [esi + 8]
push edi
call fcn.004c59cd
pop ecx
pop ecx
jmp 0x4bdf36
push 0x28
lea eax, [ebp - 0x294]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0x274], esi
add eax, dword [ebp - 0xd8]
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.004c342f
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x294]
push 1
push eax
call fcn.004bc7e1
add esp, 0x1c
test eax, eax
je 0x4c16f8
lea ecx, [edi + 0x2c]
push ecx
push eax
push dword [ebx + 4]
push esi
call fcn.004c558f
add esp, 0x10
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x294]
push eax
call fcn.004c38d9
pop ecx
jmp 0x4bf4ac
inc dword [esi + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.004c5647
add esp, 0xc
mov dword [ebp - 0xd4], eax
dec dword [esi + 0xa8]
jmp 0x4bdf42
mov eax, dword [ebx + 0x10]
and dword [ebp - 0xf8], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x4c1e75
mov eax, dword [esi]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x4c1e75
lea ecx, [ebp - 0xf8]
push ecx
push esi
call dword [eax + 0x18]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004c59cd
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0xf8]
push 2
mov dword [eax], esi
pop eax
push eax
push 0xffffffffffffffff
push 0
push dword [ebx + 4]
push edi
call fcn.0048cfaf
add esp, 0x14
test eax, eax
je 0x4c1e60
mov ecx, dword [ebp - 0xf8]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x4bd218
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xf4], eax
add edx, dword [ebp - 0xd8]
mov esi, dword [eax + 0x14]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x104], eax
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
mov eax, dword [edx]
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe8], eax
xor eax, eax
test ecx, ecx
jle 0x4c1813
mov edi, dword [ebp - 0xe8]
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x4c1802
mov edi, dword [ebp - 0x108]
push dword [ebp - 0xe8]
mov eax, dword [ebp - 0xfc]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0xe0]
push esi
call dword [eax + 0x20]
push dword [ebp - 0x104]
mov dword [ebp - 0xd4], eax
push edi
call fcn.004c59cd
mov eax, dword [ebp - 0xd4]
add esp, 0x1c
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0xfc]
push esi
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0xf4]
test eax, eax
mov byte [ecx + 2], 0
jmp 0x4bdfe0
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xfc], ecx
add eax, dword [ebp - 0xd8]
cmp byte [ecx + 2], 0
mov dword [ebp - 0xe8], eax
je 0x4c189c
push eax
call fcn.004c3961
jmp 0x4bdef1
mov eax, dword [ecx + 0x14]
push 0x20
push 0
mov edi, dword [eax]
lea eax, [ebp - 0x244]
push eax
mov esi, dword [edi]
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0xe8]
mov edx, 0x3e00
mov dword [ebp - 0x244], ecx
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
lea eax, [ebp - 0x244]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0xfc]
push dword [eax + 0x14]
call dword [esi + 0x2c]
push edi
mov edi, dword [ebp - 0x108]
push edi
mov dword [ebp - 0xd4], eax
call fcn.004c59cd
cmp dword [ebp - 0x230], 0
mov eax, dword [ebp - 0xd4]
cmovne eax, dword [ebp - 0x230]
mov esi, dword [ebp - 0xe8]
mov dword [ebp - 0xd4], eax
movzx eax, byte [ebp - 0x11c]
push eax
push esi
call fcn.004bcae3
push esi
call fcn.004c3c6a
add esp, 0x2c
test eax, eax
jne 0x4bdc6c
jmp 0x4bdf36
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xe8], eax
cmp byte [eax + 2], 0
jne 0x4bd186
mov eax, dword [eax + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0xfc], ecx
call dword [ecx + 0x24]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.004c59cd
mov eax, dword [ebp - 0xd4]
add esp, 0xc
test eax, eax
jne 0x4c2066
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xfc]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x4c0ccd
mov esi, dword [ebp - 0xcc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x118]
add ebx, 0xffffffec
add ebx, eax
xor eax, eax
inc eax
jmp 0x4c0cd6
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0x10]
push 1
add esi, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
push esi
mov dword [ebp - 0xe8], eax
call fcn.004bcae3
pop ecx
pop ecx
test eax, eax
jne 0x4c2066
mov ecx, dword [ebp - 0xe8]
push dword [esi + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
push dword [ebp - 0xe8]
mov dword [ebp - 0xd4], eax
push edi
call fcn.004c59cd
add esp, 0x10
and dword [edi + 0x58], 0xfffffffe
jmp 0x4bdf36
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4c1e75
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x4c1e75
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je 0x4bd218
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
mov al, byte [eax + 0x4a]
mov byte [ebp - 0xd9], al
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe8], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xd8]
test edx, edx
jle 0x4c1a81
mov edi, dword [ebp - 0xe8]
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x4c1a70
mov edi, dword [ebp - 0x108]
mov ecx, dword [ebp - 0xcc]
mov al, byte [ebx + 3]
mov byte [ecx + 0x4a], al
lea eax, [ebp - 0x1dc]
push eax
push dword [ebp - 0xe8]
mov eax, dword [ebp - 0xfc]
push edx
push esi
call dword [eax + 0x34]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0xd9]
push esi
push edi
mov byte [ecx + 0x4a], al
call fcn.004c59cd
mov eax, dword [ebp - 0xd4]
add esp, 0x18
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x4c1af7
cmp dword [ebx + 4], eax
je 0x4c1af7
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x154], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
cmp al, 0x13
jne 0x4c1b2f
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x4c1b2f
mov cl, byte [ebx + 3]
push 4
pop eax
cmp cl, al
jne 0x4c1b1b
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x4bd186
movzx eax, cl
cmp cl, 5
push 2
pop ecx
cmove eax, ecx
mov byte [edi + 0x56], al
jmp 0x4bf4ac
inc dword [edi + 0x64]
jmp 0x4bf4ac
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [esi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
and dword [eax + 4], 0
mov dword [eax], ecx
jmp 0x4bd186
push ebx
push edi
call fcn.0049c048
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [esi + 0x10]
add edx, edx
xor esi, esi
mov dword [ebp - 0xfc], eax
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xe8], ecx
test edx, edx
je 0x4c1b92
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x2c]
cmp esi, edx
cmovb esi, edx
push ecx
call fcn.004a564a
pop ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test esi, esi
jle 0x4c1bb0
mov dword [eax + 0xa4], esi
jmp 0x4c1bb6
mov esi, dword [eax + 0xa4]
push ecx
call fcn.004a5d76
pop ecx
mov ecx, dword [ebp - 0xfc]
mov eax, esi
jmp 0x4be1c0
cmp dword [esi + 0xb4], 0
je 0x4c1c18
push 2
pop eax
test byte [edi + 0x58], al
jne 0x4c1c18
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x4c1bec
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x4c1c18
push eax
push edi
call fcn.004c2395
mov esi, eax
mov eax, dword [ebp - 0xcc]
push esi
push dword [eax + 0xb8]
call dword [eax + 0xb4]
push esi
mov esi, dword [ebp - 0xcc]
push esi
call fcn.004a8ba2
add esp, 0x18
cmp dword [ebx + 8], 0
je 0x4bd186
jmp 0x4c1c2a
mov edi, dword [ebp - 0x108]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x118]
add ebx, 0xffffffec
add ebx, eax
jmp 0x4bd218
mov dword [edi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x4c1cbc
mov al, byte [ebx + 3]
test al, al
je 0x4c1c91
movzx eax, al
push dword [eax*4 + 0x4ff11c]
push str._s_constraint_failed
push edi
call fcn.004bcfe5
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x4c1ca2
push dword [ebx + 0x10]
push dword [edi + 0x2c]
push str._z:__s
push dword [ebp - 0xcc]
call fcn.004b18ef
add esp, 0x10
mov dword [edi + 0x2c], eax
jmp 0x4c1ca2
push dword [ebx + 0x10]
push 0x501914
push edi
call fcn.004bcfe5
add esp, 0xc
push dword [edi + 0x2c]
push dword [edi + 0xb0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0048b223
add esp, 0x14
push edi
call fcn.004c28ab
mov esi, dword [ebp - 0xcc]
pop ecx
push 5
pop ecx
mov dword [ebp - 0xd4], eax
cmp eax, ecx
je 0x4c1d38
cmp dword [edi + 0x50], 0
push 0x65
pop eax
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
jmp 0x4c1d7e
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.004bcfe5
pop ecx
pop ecx
push 5
pop eax
jmp 0x4c206c
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.004bcfe5
pop ecx
pop ecx
push 5
jmp 0x4bdeba
sub ebx, dword [ebp - 0x118]
mov eax, ebx
mov esi, dword [ebp - 0xcc]
push 0x14
cdq
pop ebx
idiv ebx
mov dword [edi + 0x4c], eax
mov byte [esi + 0x43], 0
mov dword [ebp - 0xd4], ecx
mov dword [edi + 0x50], ecx
jmp 0x4c1d7e
mov eax, dword [ebp - 0xf4]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.004bcfe5
add esp, 0xc
xor eax, eax
inc eax
jmp 0x4c2066
push 8
jmp 0x4c1cfd
sub ebx, dword [ebp - 0x118]
mov eax, ebx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x4c], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x50], eax
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x150]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xd0]
add dword [edi + 0x84], eax
push edi
call fcn.004c2db9
mov eax, dword [ebp - 0xd4]
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d62a0
leave
ret
mov eax, 0x204
jmp 0x4c206c
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x56], cl
jmp 0x4c206c
mov esi, dword [ebp - 0xcc]
push 7
pop eax
mov dword [ebp - 0xd4], eax
push esi
call fcn.004b6e45
mov eax, dword [ebp - 0xd4]
pop ecx
push 7
pop ecx
cmp eax, ecx
je 0x4bebea
jmp 0x4c206f
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0xd4], 1
call fcn.004bcfe5
pop ecx
pop ecx
mov eax, dword [ebp - 0xd4]
jmp 0x4c2066
push esi
call fcn.0048902b
push eax
push 0x501914
push edi
call fcn.004bcfe5
add esp, 0x10
jmp 0x4c1e13
mov ecx, str.out_of
mov dword [ebp - 0xd4], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.004bcfe5
add esp, 0xc
jmp 0x4c1e13
mov eax, dword [ebp - 0xe8]
push dword [ebp - 0xf8]
call dword [eax + 0x1c]
pop ecx
jmp 0x4bebe4
push 6
jmp 0x4bdeba
mov eax, dword [esi + 0x130]
test eax, eax
je 0x4c1ea5
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0x14c]
jb 0x4c1ea5
push dword [esi + 0x134]
call eax
pop ecx
test eax, eax
jne 0x4c0d3e
push 0
push edi
call fcn.004bcbda
pop ecx
pop ecx
test eax, eax
jne 0x4c206c
push 1
push edi
call fcn.004bccf1
mov eax, dword [edi + 0x48]
and dword [ebp - 0x148], 0
pop ecx
pop ecx
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x48], eax
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
mov dword [edi + 0x14], esi
cmp dword [ebx + 8], 0
jle 0x4c1f1f
mov eax, 0x1000
test word [esi + 8], ax
je 0x4c1f03
push esi
call fcn.004c3768
pop ecx
test eax, eax
jne 0x4bebe4
push esi
call fcn.004c3816
mov eax, dword [ebp - 0x148]
add esi, 0x28
inc eax
pop ecx
mov dword [ebp - 0x148], eax
cmp eax, dword [ebx + 8]
jl 0x4c1ee9
mov esi, dword [ebp - 0xcc]
cmp byte [esi + 0x45], 0
jne 0x4bebea
sub ebx, dword [ebp - 0x118]
mov eax, ebx
mov dword [ebp - 0xd4], 0x64
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x4c], eax
jmp 0x4c1d7e
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x148], edx
movzx eax, byte [eax + 0x43]
cmp edx, eax
je 0x4c2009
test esi, esi
mov esi, dword [ebp - 0xcc]
je 0x4c1f89
push 0x204
push esi
call fcn.004b71f8
pop ecx
pop ecx
mov al, 1
jmp 0x4c1fca
test edx, edx
je 0x4c1fa0
cmp dword [esi + 0xa0], 0
jle 0x4c1fa0
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4c1cf3
push 1
push edi
mov dword [ebp - 0x174], edx
call fcn.004bcbda
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4c1d7e
mov eax, dword [ebp - 0x174]
mov byte [ebp - 0x148], al
push edi
mov byte [esi + 0x43], al
call fcn.004c28ab
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x4c1ffd
sub ebx, dword [ebp - 0x118]
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov dword [edi + 0x4c], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x148]
mov byte [esi + 0x43], al
jmp 0x4c1d32
push esi
call fcn.004a6f57
pop ecx
jmp 0x4c1cd6
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.004bcfe5
pop ecx
pop ecx
jmp 0x4c1d52
cmp byte [esi + 0x45], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
push eax
mov dword [ebp - 0xd4], eax
mov dword [edi + 0x50], eax
call fcn.004aa20d
push eax
push 0x501914
push edi
call fcn.004bcfe5
add esp, 0x10
jmp 0x4c165f
mov edi, dword [ebp - 0x108]
mov esi, dword [ebp - 0xcc]
push 7
pop ecx
cmp byte [esi + 0x45], 0
cmovne eax, ecx
cmp dword [edi + 0x2c], 0
mov dword [ebp - 0xd4], eax
jne 0x4c20a4
cmp eax, 0xc0a
je 0x4c20a4
push eax
call fcn.004aa20d
push eax
push 0x501914
push edi
call fcn.004bcfe5
mov eax, dword [ebp - 0xd4]
add esp, 0x10
push eax
push esi
mov dword [edi + 0x50], eax
call fcn.004ba1e6
push dword [edi + 0x2c]
sub ebx, dword [ebp - 0x118]
push dword [edi + 0xb0]
mov eax, ebx
mov ebx, dword [ebp - 0xd4]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.0048b223
push edi
call fcn.004c28ab
add esp, 0x20
cmp ebx, 0xc0a
jne 0x4c20f1
push esi
call fcn.004b1f5f
add esp, 4
mov al, byte [ebp - 0x11d]
mov dword [ebp - 0xd4], 1
test al, al
je 0x4c1d7e
movzx eax, al
dec eax
push eax
push esi
call fcn.004b6e97
pop ecx
pop ecx
jmp 0x4c1d7e