Function at 0x45f3a7
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 [0x4dbf24]
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.0045f32f
pop ecx
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x50], ecx
je 0x460f84
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 0x4643ca
cmp dword [esi + 0x130], ecx
je 0x45f482
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.0x45f4d3.110
jmp dword [edx*4 + 0x4644b7]
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 0x463fc4
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 0x45f4ad
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 0x463fc4
jmp 0x45f520
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 0x45f520
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 0x45f520
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x45f520
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 0x463fd8
mov edx, dword [edi + 0xb8]
test edx, edx
je 0x463fd8
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.00464abb
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 0x45f64b
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 0x45f520
push ebx
push edi
call fcn.0043e3e2
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x45f520
push ebx
push edi
call fcn.0043e3e2
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 0x45f520
push ebx
push edi
call fcn.0043e3e2
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 0x45f520
push ebx
push edi
call fcn.0043e3e2
push dword [ebx + 0x10]
mov esi, eax
mov byte [ebx], 0x4c
call fcn.0045c510
mov dword [ebx + 4], eax
add esp, 0xc
xor eax, eax
inc eax
cmp byte [ebp - 0x11c], al
je 0x45f736
push 0
push eax
push 0xffffffffffffffff
push dword [ebx + 0x10]
push esi
call fcn.00465d93
movzx ecx, byte [ebp - 0x11c]
push ecx
push esi
mov dword [ebp - 0xd4], eax
call fcn.0045ee7d
add esp, 0x1c
test eax, eax
jne 0x460f7e
and dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x45f726
push dword [ebx + 0x10]
push dword [ebp - 0xcc]
call fcn.0044af3c
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 0x460006
push ebx
push edi
call fcn.0043e3e2
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 0x45f5b2
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 0x45f5b2
mov eax, dword [ebp - 0xd8]
cmp dword [ecx + eax + 4], edx
mov edx, dword [ebp - 0xd0]
jne 0x45f7b4
mov eax, 0xa10
mov word [esi + 8], ax
mov esi, dword [ebp - 0xcc]
xor eax, eax
inc eax
jmp 0x45f529
push ebx
push edi
call fcn.0043e3e2
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 0x45f5b2
mov edi, eax
mov ebx, ecx
add edi, 0x28
push edi
call fcn.00465cfb
dec esi
mov word [edi + 8], bx
pop ecx
test esi, esi
jg 0x45f80a
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
jmp 0x45f5b2
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 0x45f57c
push ebx
push edi
call fcn.0043e3e2
push 0
push 0
push dword [ebx + 4]
mov esi, eax
push dword [ebx + 0x10]
push esi
call fcn.00465d93
add esp, 0x1c
mov al, byte [ebp - 0x11c]
mov byte [esi + 0xa], al
jmp 0x45f5b2
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x3c]
add ecx, 0xffffffd8
add esi, ecx
push esi
call fcn.00466004
pop ecx
test eax, eax
jne 0x460006
push ebx
push edi
call fcn.0043e3e2
mov ecx, 0x800
push ecx
push esi
push eax
call fcn.00465f1b
add esp, 0x14
jmp 0x45f5b2
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.00465b85
mov eax, 0x1000
pop ecx
pop ecx
test word [esi + 8], ax
je 0x45f8f6
push esi
call fcn.00465b02
pop ecx
test eax, eax
jne 0x460f7e
mov eax, dword [ebp - 0xf4]
add esi, 0x28
add eax, 0x28
sub dword [ebp - 0xf0], 1
mov dword [ebp - 0xf4], eax
jne 0x45f8d3
jmp 0x45f5b2
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.00465f1b
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x45f962
push esi
call fcn.00465b02
pop ecx
test eax, eax
jne 0x460f7e
mov ecx, dword [ebp - 0xf4]
mov eax, ecx
dec ecx
mov dword [ebp - 0xf4], ecx
test eax, eax
je 0x45f5b2
mov eax, dword [ebp - 0xf0]
add esi, 0x28
add eax, 0x28
jmp 0x45f933
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.00465f1b
add esp, 0xc
jmp 0x45f520
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.00465cc5
jmp 0x45f9a8
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 0x45fa16
push esi
call fcn.00465cfb
pop ecx
jmp 0x45f5b2
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x45fa30
push edx
call fcn.00465834
pop ecx
mov ecx, dword [ebp - 0xe4]
jmp 0x45fa32
xor eax, eax
test eax, eax
jne 0x460f7e
mov eax, 0x4000
test word [ecx + 8], ax
je 0x45fa4e
push ecx
call fcn.00465834
pop ecx
jmp 0x45fa50
xor eax, eax
test eax, eax
jne 0x460f7e
mov eax, dword [ebp - 0xf0]
test byte [eax + 8], 0x12
jne 0x45fa7d
push 0
push dword [ebp - 0x11c]
push eax
call fcn.00465f71
add esp, 0xc
test eax, eax
jne 0x460f7e
mov edx, dword [ebp - 0xe4]
test byte [edx + 8], 0x12
jne 0x45faa8
push 0
push dword [ebp - 0x11c]
push edx
call fcn.00465f71
add esp, 0xc
test eax, eax
jne 0x460f7e
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 0x460006
xor eax, eax
cmp esi, edx
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.0046596b
add esp, 0xc
test eax, eax
jne 0x460f7e
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 0x45fb17
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 0x45f86b
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.0043de5c
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.0043de5c
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 0x45fe4c
mov al, cl
and al, byte [ebp - 0xf4]
push 4
pop ecx
test cl, al
je 0x45fcf0
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 0x45fca9
sub eax, 1
je 0x45fc99
sub eax, 1
je 0x45fc89
sub eax, 1
mov eax, ecx
je 0x45fc52
or eax, edx
je 0x45fe4c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x45fc3d
xor ecx, ecx
inc ecx
xor edx, edx
push edx
push ecx
push dword [ebp - 0xf0]
push dword [ebp - 0xe4]
call fcn.00478910
jmp 0x45fcca
or eax, edx
je 0x45fe4c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xe4]
jne 0x45fc79
test eax, eax
jne 0x45fc79
cmp dword [ebp - 0xf0], 0x80000000
je 0x45fcf7
push edx
push ecx
push dword [ebp - 0xf0]
push eax
call fcn.00478550
jmp 0x45fcca
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.004540c0
jmp 0x45fcb7
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.0045c52d
jmp 0x45fcb7
push edx
push ecx
lea eax, [ebp - 0x164]
push eax
call fcn.00444fe5
add esp, 0xc
test eax, eax
jne 0x45fcf7
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 0x45f5b2
mov byte [ebp - 0xd9], 0
push esi
call fcn.00466540
push dword [ebp - 0xf8]
fstp qword [ebp - 0xec]
call fcn.00466540
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x12c]
pop ecx
sub eax, 0x2f
je 0x45fddd
sub eax, 1
je 0x45fdcb
sub eax, 1
je 0x45fdb9
movsd xmm0, qword [ebp - 0xec]
sub eax, 1
je 0x45fd99
call fcn.00478cdf
movsd xmm0, qword [ebp - 0x12c]
mov esi, eax
mov dword [ebp - 0xe8], edx
call fcn.00478cdf
mov dword [ebp - 0xfc], eax
mov ecx, esi
mov eax, dword [ebp - 0xe8]
or ecx, eax
je 0x45fe4c
mov ecx, esi
and ecx, eax
cmp ecx, 0xffffffff
jne 0x45fd7f
xor esi, esi
inc esi
xor eax, eax
push eax
push esi
push edx
push dword [ebp - 0xfc]
call fcn.00478910
mov ecx, eax
call fcn.00478e30
movaps xmm1, xmm0
jmp 0x45fded
ucomisd xmm0, qword [ebp - 0x1c4]
lahf
test ah, 0x44
jnp 0x45fe4c
movsd xmm1, qword [ebp - 0x12c]
divsd xmm1, xmm0
jmp 0x45fded
movsd xmm1, qword [ebp - 0x12c]
mulsd xmm1, qword [ebp - 0xec]
jmp 0x45fded
movsd xmm1, qword [ebp - 0x12c]
subsd xmm1, qword [ebp - 0xec]
jmp 0x45fded
movsd xmm1, qword [ebp - 0x12c]
addsd xmm1, qword [ebp - 0xec]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.004530d9
add esp, 8
test eax, eax
jne 0x45fe4c
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 0x45f5b2
cmp byte [ebp - 0xd9], 0
jne 0x45f5b2
push ecx
call fcn.004650c4
jmp 0x45fa10
mov ecx, dword [ebp - 0x114]
push ecx
jmp 0x45fa0b
mov eax, dword [ebx + 4]
test eax, eax
je 0x45f520
imul eax, eax, 0x28
push 0
push 0
add eax, dword [ebp - 0xd8]
jmp 0x45f9c7
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.0044afb1
mov esi, eax
add esp, 0xc
test esi, esi
je 0x460f7e
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 0x45ff24
movzx ecx, byte [esi + 0x1a]
mov edx, eax
sub ecx, 1
mov dword [esi], eax
js 0x45ff24
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 0x45ff06
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 0x45ffd5
cmp dword [esi + 0x14], 0
je 0x45ffac
push dword [esi]
call fcn.0042b3c4
push eax
push 0x488a84
push edi
call fcn.0045f37f
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.0045f27c
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x464400
mov eax, dword [ebp - 0xe8]
test byte [eax + 8], 0x12
je 0x45f5b2
movzx eax, byte [ebp - 0x11c]
push eax
push dword [esi]
call fcn.0045ee7d
push dword [esi]
call fcn.00466004
add esp, 0xc
test eax, eax
je 0x45f5b2
push str.string_or_blob_too_big
push edi
call fcn.0045f37f
pop ecx
pop ecx
push 0x12
jmp 0x460254
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 0x460048
push edx
jmp 0x45fa0b
push ecx
call fcn.00465064
push esi
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
call fcn.00465064
pop ecx
pop ecx
mov cl, byte [ebx]
mov esi, eax
mov byte [ebp - 0xd9], cl
cmp cl, 0x2b
jne 0x460082
and dword [ebp - 0x13c], esi
and dword [ebp - 0x138], edx
jmp 0x4601d8
cmp cl, 0x2c
jne 0x460098
or dword [ebp - 0x13c], esi
or dword [ebp - 0x138], edx
jmp 0x4601d8
mov eax, esi
or eax, edx
je 0x4601d8
test edx, edx
jg 0x4600cb
jl 0x4600ac
test esi, esi
jae 0x4600cb
mov al, 0x5b
sub al, cl
mov cl, al
mov byte [ebp - 0xd9], cl
cmp edx, 0xffffffff
jl 0x4600f8
jg 0x4600c4
cmp esi, 0xffffffc0
jbe 0x4600f8
neg esi
adc edx, 0
neg edx
push 0x40
pop eax
test edx, edx
jl 0x460129
jg 0x4600d8
cmp esi, eax
jb 0x460129
cmp dword [ebp - 0x138], 0
jg 0x460101
jl 0x4600ec
cmp dword [ebp - 0x13c], 0
jae 0x460101
cmp cl, 0x2d
je 0x460101
or eax, 0xffffffff
or ecx, eax
jmp 0x460118
push 0x40
pop eax
mov esi, eax
xor edx, edx
jmp 0x4600ce
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 0x4601d8
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 0x460161
call fcn.00478f40
jmp 0x4601b2
call fcn.00479050
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 0x4601be
jl 0x460194
cmp dword [ebp - 0x13c], 0
jae 0x4601be
push 0x40
pop eax
mov ecx, eax
or edx, 0xffffffff
sub ecx, esi
or eax, 0xffffffff
call fcn.00478f40
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 0x45fcd5
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00465ad6
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp 0x45f5b2
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 0x46025a
push dword [ebp - 0x11c]
push 0x43
push esi
call fcn.0042ffb3
movzx eax, word [esi + 8]
add esp, 0xc
mov ecx, eax
push 4
pop edx
test dl, al
jne 0x46025a
cmp dword [ebx + 8], 0
jne 0x463fc4
push 0x14
pop eax
jmp 0x464400
mov eax, 0x3e00
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x45f5b2
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0xd8]
test byte [eax + 8], cl
je 0x45f520
push eax
call fcn.00465c4a
pop ecx
jmp 0x45f520
imul esi, dword [ebx + 4], 0x28
mov eax, 0x4000
add esi, dword [ebp - 0xd8]
test word [esi + 8], ax
je 0x4602b5
push esi
call fcn.00465834
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x4602bc
and dword [ebp - 0xd4], 0
push dword [ebp - 0x11c]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.004656fb
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x464406
jmp 0x45f520
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 0x460385
test al, al
jns 0x460353
mov eax, esi
xor ecx, ecx
and eax, edx
bt ax, cx
jae 0x460345
test esi, 0x100
jne 0x460345
xor edx, edx
jmp 0x460348
xor edx, edx
inc edx
mov esi, dword [ebp - 0xe4]
jmp 0x4604cf
test al, 0x20
je 0x460375
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 0x45fce4
push 0x10
pop ecx
test cl, al
jne 0x463fc4
jmp 0x45f5b2
and al, 0x47
cmp al, 0x43
jb 0x4603d9
push 2
pop edx
test dl, cl
je 0x460471
mov al, byte [ebp - 0x110]
and al, 0xe
cmp al, dl
jne 0x4603b5
mov ecx, dword [ebp - 0x10c]
push 0
push ecx
call fcn.0043001d
pop ecx
pop ecx
push 2
pop edx
mov al, byte [ebp - 0x100]
and al, 0xe
cmp al, dl
jne 0x460471
push 0
push dword [ebp - 0xe4]
call fcn.0043001d
pop ecx
pop ecx
jmp 0x460471
cmp al, 0x42
jne 0x460471
mov al, byte [ebp - 0x110]
push 2
pop edx
test dl, al
jne 0x46042c
test al, 0xc
je 0x46042c
mov ecx, dword [ebp - 0x10c]
push 1
push dword [ebp - 0x11c]
push ecx
call fcn.00465f71
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 0x460471
test al, 0xc
je 0x460471
mov esi, dword [ebp - 0xe4]
push 1
push dword [ebp - 0x11c]
push esi
call fcn.00465f71
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 0x460499
push dword [ebp - 0x10c]
call fcn.00465834
and dword [ebp - 0x110], 0xbfff
mov eax, 0x4000
pop ecx
test eax, esi
je 0x4604b5
push dword [ebp - 0xe4]
call fcn.00465834
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.00453f96
add esp, 0xc
mov edx, eax
movzx eax, byte [ebx]
sub eax, 0x24
je 0x46050d
sub eax, 1
je 0x460504
sub eax, 1
je 0x4604fb
sub eax, 1
je 0x4604f2
sub eax, 1
je 0x4604ed
not edx
shr edx, 0x1f
jmp 0x460516
xor eax, eax
test edx, edx
setle al
jmp 0x460514
xor eax, eax
test edx, edx
setg al
jmp 0x460514
xor eax, eax
test edx, edx
sete al
jmp 0x460514
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 0x460565
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 0x45f5b2
test edx, edx
jmp 0x46037a
mov ecx, dword [ebx + 0x10]
push 4
pop edx
add ecx, edx
mov dword [ebp - 0x180], ecx
jmp case.0x45f4d3.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 0x460635
test eax, eax
je 0x4605c5
mov ecx, dword [eax + esi*4]
jmp 0x4605c7
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.00453f96
add esp, 0xc
mov dword [ebp - 0x17c], eax
test eax, eax
jne 0x460624
mov eax, dword [ebp - 0x104]
inc esi
mov edx, dword [ebp - 0xf4]
cmp esi, dword [ebp - 0xe0]
jl 0x4605bc
jmp 0x460635
cmp byte [ebp - 0xd9], 0
je 0x460635
neg eax
mov dword [ebp - 0x17c], eax
and dword [ebp - 0x180], 0
jmp 0x45f5b2
mov eax, dword [ebp - 0x17c]
test eax, eax
jns 0x460650
mov eax, dword [ebx + 4]
jmp 0x46065a
jne 0x460657
mov eax, dword [ebx + 8]
jmp 0x46065a
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x118]
imul eax, eax, 0x14
add ebx, 0xffffffec
add ebx, eax
jmp 0x45f520
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x460681
push 6
jmp 0x46068e
push eax
call fcn.00465064
or eax, edx
pop ecx
je 0x460691
push 3
pop esi
jmp 0x460693
xor esi, esi
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x4606af
mov eax, 0x48629a
mov ecx, 0x4861fe
jmp 0x4606d0
push eax
call fcn.00465064
or eax, edx
pop ecx
je 0x4606c6
mov eax, 0x486299
mov ecx, 0x4861fd
jmp 0x4606d0
mov eax, 0x486298
mov ecx, 0x4861fc
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 0x4606fe
xor eax, eax
inc eax
jmp 0x46070a
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 0x45f5b2
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.00465cfb
mov eax, dword [ebp - 0xe8]
pop ecx
test byte [eax + 8], 1
jne 0x45f5b2
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.00465064
or eax, edx
pop ecx
jne 0x46075d
inc eax
xor ecx, ecx
jmp 0x460774
xorps xmm0, xmm0
movlpd qword [ebp - 0x144], xmm0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x144]
mov dword [esi + 4], ecx
jmp 0x45f5b0
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.00465cfb
mov eax, dword [ebp - 0xe8]
pop ecx
test byte [eax + 8], 1
jne 0x45f5b2
push 4
pop ecx
push eax
mov word [esi + 8], cx
call fcn.00465064
pop ecx
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x45f5b2
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x463fc4
mov byte [eax + ecx], 1
jmp 0x45f520
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
test byte [eax + 8], 1
je 0x4607fa
mov eax, dword [ebx + 0xc]
jmp 0x46082c
push eax
call fcn.00466540
fstp qword [ebp - 0x144]
movsd xmm0, qword [ebp - 0x144]
ucomisd xmm0, qword [ebp - 0x1c4]
pop ecx
lahf
test ah, 0x44
jnp 0x460822
xor eax, eax
inc eax
jmp 0x460824
xor eax, eax
cmp byte [ebx], 0x16
jne 0x46082c
xor eax, 1
test eax, eax
jmp 0x45f552
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
jmp 0x45f552
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0xd8]
test byte [eax + ecx + 8], 1
je 0x463fc4
jmp 0x45f520
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.0045f1dc
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 0x464400
mov eax, dword [esi + 0x40]
cmp eax, dword [edi + 0x48]
je 0x460a14
cmp byte [esi + 2], 0
je 0x460908
cmp byte [esi], 3
jne 0x460042
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 0x46099d
cmp byte [esi + 4], 0
jne 0x46094a
lea eax, [ebp - 0x224]
push eax
push ecx
call fcn.00448097
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 0x460979
push ecx
call fcn.0043aaf0
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 0x46098b
mov dword [esi + 0x48], eax
jmp 0x46099d
mov ecx, dword [ebp - 0xcc]
cmp eax, dword [ecx + 0x5c]
ja 0x460006
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 0x4609be
movzx ecx, al
mov al, 1
mov dword [ebp - 0x18c], ecx
jmp 0x4609d3
lea eax, [ebp - 0x18c]
push eax
push ecx
call fcn.004518ad
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 0x460a2c
and dword [esi + 0x50], 0
and dword [esi + 0x48], 0
cmp ecx, 0x18003
ja 0x460a04
cmp ecx, dword [esi + 0x44]
jbe 0x460a2c
push 0x13538
call fcn.00449ebb
pop ecx
jmp 0x464400
movzx eax, word [esi + 0x12]
mov ecx, dword [ebp - 0x10c]
cmp eax, ecx
jg 0x460c78
mov eax, dword [ebp - 0x100]
mov ecx, dword [esi + 0x4c]
mov eax, dword [eax]
cmp ecx, eax
jae 0x460c35
mov edx, dword [esi + 0x50]
mov dword [ebp - 0x114], edx
test edx, edx
jne 0x460aa2
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.0046590d
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
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 0x460b26
movzx eax, cl
mov dword [ebp - 0xf8], 1
movzx eax, byte [eax + 0x486208]
cdq
jmp 0x460b53
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.004518ad
mov ecx, dword [ebp - 0x104]
movzx eax, al
push ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xe4], ecx
call fcn.00466e63
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 0x460b9e
cmp edi, dword [ebp - 0xe0]
jb 0x460aef
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 0x460c09
cmp dword [ebp - 0x104], eax
ja 0x460bec
mov eax, dword [ebp - 0xf8]
cmp eax, dword [esi + 0x44]
jne 0x460bec
test edx, edx
je 0x460c0f
cmp dword [esi + 0x50], 0
jne 0x460bff
lea eax, [ebp - 0x2bc]
push eax
call fcn.00465c73
pop ecx
push 0x13575
jmp 0x460a09
mov eax, dword [ebp - 0xf8]
test edx, edx
ja 0x460bec
jb 0x460c1a
cmp eax, dword [esi + 0x44]
ja 0x460bec
cmp dword [esi + 0x50], 0
jne 0x460c3d
lea eax, [ebp - 0x2bc]
push eax
call fcn.00465c73
pop ecx
mov ecx, dword [ebp - 0xe4]
jmp 0x460c3d
xor ecx, ecx
mov dword [ebp - 0xe4], ecx
movzx eax, word [esi + 0x12]
cmp eax, dword [ebp - 0x10c]
jg 0x460c84
cmp byte [ebx + 1], 0xf8
jne 0x460c6c
mov eax, 0x800
push eax
push dword [ebx + 0x10]
mov eax, dword [ebp - 0x124]
push eax
call fcn.00465f1b
add esp, 0xc
jmp 0x45f5b2
mov eax, dword [ebp - 0x124]
push eax
jmp 0x45fa0b
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0xe4], ecx
jmp 0x460c8a
mov edx, dword [ebp - 0x124]
mov eax, 0x2460
test word [edx + 8], ax
je 0x460ca8
push edx
call fcn.00465cfb
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 0x460d7d
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 0x460d06
push edx
push ecx
push eax
call fcn.00466b4d
jmp 0x460c64
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edx + 0xc], esi
lea eax, [esi + 2]
cmp dword [edx + 0x18], eax
jge 0x460d3c
push 0
xor ecx, ecx
push eax
inc ecx
push edx
mov word [edx + 8], cx
call fcn.0046596b
add esp, 0xc
test eax, eax
jne 0x460f7e
mov eax, dword [ebp - 0x124]
mov eax, dword [eax + 0x10]
jmp 0x460d42
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 + 0x4862a4]
jmp 0x45fce7
mov al, byte [ebx + 3]
test al, 0xc0
je 0x460d92
cmp ecx, 0xc
jb 0x460d8e
test cl, 1
je 0x460da5
test al, al
js 0x460da5
push ecx
call fcn.00466e63
add esp, 4
mov dword [ebp - 0xe8], eax
test eax, eax
jne 0x460db1
push edx
push ecx
push 0x4e02d0
jmp 0x460cfc
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.0046590d
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0xe4]
push esi
push eax
push dword [esi + 0x10]
call fcn.00466b4d
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x45f5b2
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 0x45f5b2
mov edi, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x11c]
push ebx
push dword [ebp - 0x184]
inc edi
push esi
call fcn.0042ffb3
mov al, byte [edi]
add esp, 0xc
add esi, 0x28
mov byte [ebp - 0x184], al
test al, al
jne 0x460e42
jmp 0x45f81d
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 0x460f0a
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.0042ffb3
add esp, 0xc
add edi, 0x28
inc esi
mov al, byte [esi]
mov byte [ebp - 0x188], al
test al, al
jne 0x460ed8
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.00466d54
mov ecx, 0x4000
mov dword [ebp - 0xe0], eax
add esp, 0xc
mov dword [esi + 0x1c], eax
test word [esi + 8], cx
je 0x460fbd
mov ecx, dword [ebp - 0xe4]
or ecx, dword [ebp - 0xf0]
je 0x460fa0
push esi
call fcn.00465834
pop ecx
test eax, eax
je 0x460fb7
mov esi, dword [ebp - 0xcc]
push esi
call fcn.004542f9
mov dword [esp], str.out_of_memory
push edi
call fcn.0045f37f
pop ecx
pop ecx
push 7
jmp 0x464097
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 0x460fe0
xor ecx, ecx
inc ecx
jmp 0x460fec
push 0
push eax
call fcn.0045ebba
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 0x461010
mov edx, dword [ebp - 0x104]
sub esi, 0x28
jmp 0x460f40
cmp eax, 0x7e
jle 0x461042
cdq
push edx
push eax
call fcn.0045ebba
mov esi, eax
mov eax, dword [ebp - 0x100]
add eax, esi
mov dword [ebp - 0x100], eax
cdq
push edx
push eax
call fcn.0045ebba
add esp, 0x10
cmp esi, eax
mov eax, dword [ebp - 0x100]
jge 0x461049
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 0x460006
jl 0x461098
cmp ecx, eax
ja 0x460006
push dword [ebp - 0xe4]
mov esi, dword [ebp - 0x10c]
push esi
call fcn.0046579e
pop ecx
pop ecx
test eax, eax
jne 0x460f7e
mov ecx, dword [ebp - 0x100]
mov edx, 0x80
mov esi, dword [esi + 0x10]
cmp ecx, edx
jae 0x4610cb
mov byte [esi], cl
inc eax
jmp 0x4610e5
push dword [ebp - 0xe8]
push dword [ebp - 0xfc]
push esi
call fcn.00458b90
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 0x461105
mov byte [ecx], al
xor eax, eax
inc eax
jmp 0x461111
push 0
push eax
push ecx
call fcn.00458b90
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.00466cd5
add dword [ebp - 0x100], eax
add ebx, 0x28
add esp, 0xc
mov edx, 0x80
cmp ebx, dword [ebp - 0x134]
jbe 0x4610ee
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 0x461181
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.0x45f4d3.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.004475b7
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464406
push ebx
push edi
call fcn.0043e3e2
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x140]
jmp 0x45f68a
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xf4], eax
test ecx, ecx
jne 0x4612d1
cmp dword [esi + 0xa0], ecx
jg 0x464088
push eax
call fcn.0045c510
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.00467f31
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
lea eax, [esi + 0x21]
push 0
push eax
push dword [ebp - 0xcc]
call fcn.0044afb1
mov esi, eax
add esp, 0xc
test esi, esi
je 0x45f5b2
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 0x461291
mov byte [ecx + 0x43], 0
mov byte [ecx + 0x4b], 1
jmp 0x461297
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 0x45f520
and dword [ebp - 0x10c], 0
mov esi, dword [esi + 0x1a8]
test esi, esi
je 0x4640dd
mov edi, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x10c]
push edi
push dword [esi]
call fcn.0045c4a2
pop ecx
pop ecx
test eax, eax
je 0x461308
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x4612f2
mov edi, dword [ebp - 0x108]
mov dword [ebp - 0x10c], ebx
mov ebx, dword [ebp - 0x110]
test esi, esi
je 0x4640d7
mov ecx, dword [ebp - 0xcc]
xor eax, eax
mov edx, dword [ebp - 0xe4]
inc eax
cmp dword [ecx + 0xa0], 0
jle 0x461342
cmp edx, eax
je 0x46409d
cmp dword [esi + 0x18], 0
jne 0x4613a3
cmp byte [ecx + 0x4b], 0
je 0x4613a3
mov dword [ebp - 0xf0], eax
cmp edx, eax
jne 0x4613aa
push eax
push edi
call fcn.0045ef74
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464112
mov eax, dword [ebp - 0xcc]
push edi
mov byte [eax + 0x43], 1
call fcn.00464c45
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x4640b1
mov edx, dword [ebp - 0xcc]
mov byte [edx + 0x4b], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xd4], eax
jmp 0x461507
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 0x461461
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 0x461469
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.00448f88
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
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 0x4613f9
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xe4]
jmp 0x461469
xor ecx, ecx
mov dword [ebp - 0xf4], ecx
and dword [ebp - 0xe0], 0
test eax, eax
jle 0x4614db
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.00448c76
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
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 0x46147c
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x461501
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0044c6dd
push ecx
call fcn.004591df
mov edx, dword [ebp - 0xcc]
pop ecx
pop ecx
push 2
pop eax
or dword [edx + 0x18], eax
jmp 0x461507
mov edx, dword [ebp - 0xcc]
cmp dword [edx + 0x1a8], esi
je 0x461547
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.0044af3c
dec dword [edi + 0x1b0]
pop ecx
pop ecx
cmp dword [edi + 0x1a8], esi
jne 0x461515
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xe4]
cmp ecx, 1
jne 0x461585
mov eax, dword [esi + 0x18]
push esi
mov esi, dword [ebp - 0xcc]
push esi
mov dword [edx + 0x1a8], eax
call fcn.0044af3c
cmp dword [ebp - 0xf0], 0
pop ecx
pop ecx
jne 0x461846
dec dword [esi + 0x1b0]
mov ecx, dword [ebp - 0xe4]
jmp 0x4615c3
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 0x4615c3
push 2
pop eax
cmp ecx, eax
jne 0x461846
push dword [ebp - 0x10c]
push ecx
push esi
call fcn.00467f31
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464406
jmp 0x4602dc
cmp dword [ebx + 8], 0
je 0x4615f9
test dword [esi + 0x18], 0x4000000
jne 0x4640f4
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 0x46172f
push dword [ebx + 8]
push esi
call fcn.0044704c
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
cmp al, 5
je 0x4640f8
test eax, eax
jne 0x464400
cmp dword [ebx + 8], eax
je 0x461700
push 0x10
pop eax
test byte [edi + 0x60], al
je 0x461700
mov edx, dword [ebp - 0xcc]
cmp byte [edx + 0x43], 0
je 0x461662
cmp dword [edx + 0x9c], 1
jle 0x461700
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x46167e
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.00467f31
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4616ca
mov eax, dword [ebp - 0xe0]
mov esi, dword [edi + 0x70]
push eax
mov edi, dword [eax + 4]
call fcn.004479e4
push esi
push dword [edi]
call fcn.0045564a
mov esi, dword [ebp - 0xe0]
push esi
mov dword [ebp - 0xd4], eax
call fcn.00448110
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.00447a81
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 0x46173f
mov edx, dword [ebp - 0xcc]
xor esi, esi
mov dword [ebp - 0x198], esi
xor eax, eax
cmp byte [ebx + 3], 0
je 0x4602d0
cmp esi, dword [ebx + 0xc]
jne 0x461757
cmp eax, dword [ebx + 0x10]
je 0x4602d0
push dword [edi + 0x2c]
push edx
call fcn.0044af3c
push str.database_schema_has_changed
push dword [ebp - 0xcc]
call fcn.0044b16a
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 0x461797
push dword [ebx + 4]
push edx
call fcn.00459231
pop ecx
pop ecx
or dword [edi + 0x58], 1
push 0x11
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x4602d6
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.00447a81
push ebx
push edi
call fcn.0043e3e2
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0x19c]
jmp 0x45f66c
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.0044903a
add esp, 0xc
mov dword [ebp - 0xd4], eax
xor edx, edx
inc edx
push 2
cmp dword [ebx + 8], edx
jne 0x46181f
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 0x461834
pop eax
cmp dword [ebx + 8], eax
jne 0x46182e
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 0x461846
push esi
call fcn.0044c6dd
add esp, 4
and dword [edi + 0x58], 0xfffffffe
mov eax, dword [ebp - 0xd4]
jmp 0x4602dc
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x46186a
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 8]
je 0x46199e
mov esi, dword [ebp - 0xcc]
mov cl, byte [ebp - 0xd9]
test byte [edi + 0x58], 1
jne 0x464152
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 0x4618e2
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 0x4618e9
mov byte [edi + 0x5c], al
jmp 0x4618e9
and dword [ebp - 0xe0], 0
push 0x10
pop eax
test byte [ebx + 3], al
je 0x46190f
imul esi, edx, 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00465ad6
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 0x46192b
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf0], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x46193a
cmp al, 0xf2
jne 0x461934
mov ecx, dword [ebx + 0x10]
jmp 0x46193a
mov ecx, dword [ebp - 0xfc]
push 0
push esi
push ecx
push dword [ebx + 4]
push edi
call fcn.0042f348
mov esi, eax
add esp, 0x14
test esi, esi
je 0x460f7e
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.004476e2
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 0x4602d0
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0042f348
mov esi, eax
add esp, 0x14
test esi, esi
je 0x460f7e
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.0044858c
add esp, 0x18
test eax, eax
jne 0x464400
push 1
push dword [esi + 0x18]
call fcn.0044704c
pop ecx
pop ecx
test eax, eax
jne 0x464400
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x461a7c
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.004476b6
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x461a78
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.004476e2
add esp, 0x14
mov dword [ebp - 0xd4], eax
xor cl, cl
jmp 0x461a9a
push dword [esi + 0x14]
push 0
push 4
pop eax
push eax
push 1
push dword [esi + 0x18]
call fcn.004476e2
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 0x464406
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 0x45f520
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0042f348
add esp, 0x14
test eax, eax
je 0x460f84
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x1c], ecx
push dword [ebx + 0xc]
push esi
call fcn.00467008
add esp, 0xc
mov dword [ebp - 0xd4], eax
jmp 0x4602dc
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 0x463fc4
jmp 0x45f5b2
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.0042f348
add esp, 0x14
test eax, eax
je 0x460f84
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 0x45f520
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
push dword [eax + ecx*4]
push edi
call fcn.00464b44
mov eax, dword [edi + 0x38]
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
and dword [eax + ecx*4], 0
jmp 0x45f520
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 0x461c8c
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 0x461bcd
push 0
push ecx
call fcn.0043001d
pop ecx
pop ecx
mov ecx, dword [ebp - 0xf4]
push ecx
call fcn.00465064
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 0x461c45
test cl, 8
je 0x463fc4
mov ecx, dword [ebp - 0xf8]
call fcn.00478e30
mov eax, dword [ebp - 0xf4]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x461c2e
mov ecx, dword [ebp - 0xe4]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0xe4], ecx
jmp 0x461c45
comisd xmm1, xmm0
jbe 0x461c45
mov eax, dword [ebp - 0xe4]
test al, 1
je 0x461c45
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.004481ae
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 0x464400
jmp 0x461d42
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 0x461cf1
push eax
call fcn.00465834
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.004481ae
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp byte [ebp - 0xd9], al
je 0x461d42
cmp byte [ebp - 0x1ae], 0
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xf0], eax
je 0x461dce
and dword [esi + 0x40], 0
mov eax, dword [ebp - 0xe4]
mov byte [esi + 3], 0
mov ecx, dword [ebp - 0x130]
cmp eax, 0x19
jl 0x461d87
test ecx, ecx
js 0x461d6f
jne 0x461d66
cmp eax, 0x1a
je 0x461d6f
and dword [ebp - 0x130], 0
jmp 0x461ddb
and dword [ebp - 0x130], 0
lea eax, [ebp - 0x130]
push eax
push dword [esi + 0x14]
call fcn.00448521
jmp 0x461dbe
test ecx, ecx
jg 0x461da8
jne 0x461d94
push 0x17
pop ecx
cmp eax, ecx
je 0x461da8
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x130], ecx
jmp 0x461dce
and dword [ebp - 0x130], 0
lea eax, [ebp - 0x130]
push eax
push dword [esi + 0x14]
call fcn.00448b1a
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464400
cmp dword [ebp - 0x130], 0
jne 0x463fc4
cmp dword [ebp - 0xf0], 0
lea eax, [ebx + 0x14]
cmove eax, ebx
mov ebx, eax
jmp 0x45f5b2
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 0x461e93
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 0x461e85
xor edi, edi
mov ebx, 0x4000
lea eax, [edi + esi]
test word [eax + 8], bx
je 0x461e68
push eax
call fcn.00465834
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 0x461e45
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x108]
mov esi, dword [ebp - 0x104]
lea eax, [ebp - 0x1fc]
jmp 0x461ef5
lea ecx, [ebp - 0x134]
push ecx
push 0xb7
lea ecx, [ebp - 0xbc]
push ecx
push dword [eax + 0x1c]
call fcn.0045ee1c
add esp, 0x10
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x460f7e
mov ecx, 0x4000
test word [esi + 8], cx
je 0x461ed7
push esi
call fcn.00465834
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.00466983
mov eax, dword [ebp - 0xe0]
add esp, 0x10
and dword [ebp - 0xe0], 0
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1d
jne 0x461f38
movzx ecx, word [eax + 8]
xor edx, edx
mov dword [ebp - 0xe8], ecx
test ecx, ecx
je 0x461f38
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x461f2e
inc edx
add ecx, 0x28
cmp edx, dword [ebp - 0xe8]
jl 0x461f1b
jmp 0x461f38
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.004481ae
push dword [ebp - 0x134]
mov dword [ebp - 0xd4], eax
push dword [ebp - 0xcc]
call fcn.0044af3c
mov eax, dword [ebp - 0xd4]
add esp, 0x20
test eax, eax
jne 0x464400
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 0x461fa1
test ecx, ecx
jmp 0x46037a
cmp dword [ebp - 0xe0], 0
jne 0x463fc4
test ecx, ecx
jmp 0x461b2a
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.004481ae
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 0x462038
cmp dword [ebx + 8], 0
jne 0x463fbe
push 0x13b6c
call fcn.00449ebb
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x46203e
mov eax, dword [ebp - 0xd4]
mov edi, dword [ebp - 0x108]
jmp 0x4602d6
push ebx
push edi
call fcn.0043e3e2
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 0x45f520
and dword [ebp - 0xf0], 0
xorps xmm0, xmm0
push ebx
push edi
movlpd qword [ebp - 0x12c], xmm0
call fcn.0043e3e2
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 0x462144
lea eax, [ebp - 0xf0]
push eax
push dword [ecx + 0x14]
call fcn.004480b8
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464406
cmp dword [ebp - 0xf0], eax
je 0x4620f0
inc eax
xor esi, esi
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], esi
jmp 0x462150
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x10c]
push dword [eax + 0x14]
call fcn.00448097
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 0x46213c
jg 0x46212e
cmp eax, 0xffffffff
jb 0x46213c
mov ecx, dword [ebp - 0x10c]
push 2
pop edx
or dword [ecx + 8], edx
jmp 0x462156
add eax, 1
adc esi, 0
jmp 0x4620e2
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x462203
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x4621e6
imul eax, edx, 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00465ad6
pop ecx
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x46219c
cmp eax, 0x7fffffff
je 0x46229c
mov edi, dword [ebp - 0x10c]
test byte [edi + 8], 2
mov edi, dword [ebp - 0x108]
jne 0x46229c
add edx, 1
adc eax, 0
mov dword [ebp - 0xe8], eax
cmp esi, eax
jg 0x4621f8
jl 0x4621ce
mov eax, dword [ebp - 0xe4]
cmp eax, edx
jae 0x4621fe
mov esi, dword [ebp - 0xe8]
mov eax, edx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], esi
jmp 0x4621fe
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4621e4
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x462174
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 0x4622af
and dword [ebp - 0xe0], 0
lea eax, [ebp - 0x12c]
push eax
push 8
pop eax
push eax
call fcn.00429daf
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.004481ae
add esp, 0x20
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp dword [ebp - 0xf0], eax
jne 0x4622a3
mov eax, dword [ebp - 0xe0]
inc eax
mov dword [ebp - 0xe0], eax
cmp eax, 0x64
jl 0x46221c
push 0xd
jmp 0x460254
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 0x45f5b2
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 0x462317
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 0x462329
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 0x462373
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x462373
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 0x462384
and dword [ebp - 0xf4], 0
and dword [ebp - 0x114], 0
mov al, byte [ebx + 3]
test al, 1
je 0x46238e
inc dword [edi + 0x64]
mov al, byte [ebx + 3]
push 2
pop ecx
test cl, al
je 0x4623b3
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 0x4623c4
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
mov dl, byte [ebx + 3]
push 0x10
pop eax
test al, dl
je 0x4623d9
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x20]
jmp 0x4623db
xor eax, eax
test ecx, 0x4000
je 0x4623e7
mov ecx, dword [esi]
jmp 0x4623e9
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.00447b95
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 0x464406
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x45f520
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x45f520
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 0x45f520
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 0x4624dd
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0xd8], 0
je 0x4624dd
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 0x4624eb
cmp byte [esi + 4], 0
je 0x4624eb
lea eax, [esi + 0x30]
push eax
push dword [esi + 0x14]
call fcn.00448097
pop ecx
pop ecx
jmp 0x4624eb
and dword [ebp - 0x104], 0
and dword [ebp - 0xe0], 0
movzx eax, byte [ebx + 3]
push eax
push dword [esi + 0x14]
call fcn.00447765
and dword [esi + 0x40], 0
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464400
inc eax
test byte [ebp - 0xe8], al
je 0x461187
mov eax, dword [ebp - 0xcc]
inc dword [edi + 0x64]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x45f5b2
mov ecx, dword [ebp - 0xe0]
test byte [ecx + 0x2a], 0x20
jne 0x45f5b2
push dword [esi + 0x34]
push dword [esi + 0x30]
mov esi, dword [ebp - 0xcc]
push dword [ecx]
push dword [ebp - 0x104]
push 9
jmp 0x46246d
mov eax, dword [edi + 0x64]
add dword [esi + 0x58], eax
mov dword [esi + 0x54], eax
and dword [edi + 0x64], 0
jmp 0x45f520
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.00466f6a
add esp, 0x10
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464406
cmp dword [ebp - 0xe4], eax
jmp 0x45f552
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.0046735d
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464406
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x40], 0
jmp 0x45f520
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 0x46264e
lea eax, [ebp - 0x1cc]
push eax
push esi
call fcn.00448097
mov eax, dword [ebp - 0xcc]
pop ecx
pop ecx
mov eax, dword [eax + 0x5c]
cdq
cmp dword [ebp - 0x1c8], edx
jg 0x460006
mov esi, dword [ebp - 0x1cc]
jl 0x462667
cmp esi, eax
jmp 0x462661
push esi
call fcn.0043aaf0
mov eax, dword [ebp - 0xcc]
mov esi, dword [esi + 0x1c]
pop ecx
cmp esi, dword [eax + 0x5c]
ja 0x460006
push 0x20
pop eax
cmp esi, eax
cmova eax, esi
push eax
mov eax, dword [ebp - 0xf4]
push eax
call fcn.0046579e
pop ecx
pop ecx
test eax, eax
jne 0x460f7e
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 0x4626ca
push 0
push eax
push esi
push 0
push dword [ebp - 0xe0]
call fcn.0042e891
add esp, 0x14
jmp 0x4626dc
push eax
push esi
push 0
push dword [ebp - 0xe0]
call fcn.00447729
add esp, 0x10
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464406
mov eax, dword [ebp - 0xf4]
mov byte [eax + 0xa], 1
jmp 0x45f520
push ebx
push edi
call fcn.0043e3e2
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 0x462729
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x45f5b2
cmp byte [esi + 3], 0
je 0x462746
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x194], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x190], eax
jmp 0x4627cd
push 2
pop eax
cmp byte [esi], al
jne 0x46277f
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.00467d67
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x464400
jmp 0x4627cd
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x462791
push esi
call fcn.0043aec3
pop ecx
jmp 0x462793
xor eax, eax
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp byte [esi + 2], al
je 0x4627b6
mov ecx, dword [ebp - 0xe0]
inc eax
mov word [ecx + 8], ax
jmp 0x461187
lea eax, [ebp - 0x194]
push eax
push dword [esi + 0x14]
call fcn.00448097
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 0x45f5b2
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 0x45f520
push dword [eax + 0x14]
call fcn.0044723c
jmp 0x46028b
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.004480b8
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 0x464400
cmp dword [ebx + 8], eax
jle 0x45f5b2
jmp 0x461f9a
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 0x4628a8
lea eax, [ebp - 0x110]
push eax
push esi
call fcn.004672fa
pop ecx
pop ecx
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0xd4], eax
jmp 0x4628ee
mov eax, dword [esi + 0x14]
push eax
mov dword [ebp - 0xe8], eax
call fcn.0043cda2
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x4628e0
mov ecx, dword [ebp - 0xe8]
cmp byte [ecx + 0x42], al
je 0x4628e0
push ecx
mov dword [ebp - 0xe0], eax
call fcn.0043ccd3
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 0x464400
mov byte [esi + 2], cl
jmp 0x461f9a
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.004671a4
add esp, 0xc
jmp 0x462957
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x45f520
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 0x464400
cmp dword [ebp - 0x168], eax
jne 0x462981
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x74]
jmp 0x463d3f
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x46306a
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 0x4629ae
inc dword [edi + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4629c8
push esi
call fcn.00465834
pop ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x4629ca
xor eax, eax
test eax, eax
jne 0x464400
cmp byte [ebx], 0x7b
jne 0x4629e5
push esi
push ecx
call fcn.004673b9
pop ecx
pop ecx
jmp 0x46179e
push 0x10
pop eax
test byte [ebx + 3], al
je 0x4629f2
mov eax, dword [ecx + 0x20]
jmp 0x4629f4
xor eax, eax
push eax
push dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x480904
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [ecx + 0x14]
call fcn.00447b95
mov ecx, dword [ebp - 0xe0]
add esp, 0x24
and dword [ecx + 0x40], 0
jmp 0x46179e
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.004481ae
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp dword [ebp - 0x1ac], eax
jne 0x462ab1
push 4
pop eax
push eax
push dword [ebp - 0xe8]
call fcn.00447765
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464400
and dword [esi + 0x40], 0
jmp 0x45f5b2
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 0x462ad5
push esi
call fcn.0043aec3
pop ecx
jmp 0x462ad7
xor eax, eax
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp byte [esi + 2], al
jne 0x462b75
lea eax, [ebp - 0x170]
xorps xmm0, xmm0
push eax
push dword [esi + 0x14]
movlpd qword [ebp - 0x170], xmm0
push dword [ebp - 0xcc]
call fcn.00464f6d
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
cmp byte [ebx], 0x7e
jne 0x462b53
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 0x45f5b2
push ebx
push edi
call fcn.0043e3e2
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 0x462720
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xd8]
jmp 0x460c72
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.00464ed4
mov ecx, dword [ebp - 0x114]
add esp, 0x10
test byte [ebx], 1
mov dword [ebp - 0xd4], eax
jne 0x462bf4
neg ecx
jmp 0x462bfb
mov eax, dword [ebp - 0xd4]
inc ecx
test eax, eax
jne 0x464406
test ecx, ecx
jg 0x463fc4
jmp 0x45f520
push ebx
push edi
call fcn.0043e3e2
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 0x46415c
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.004479e4
lea eax, [ebp - 0x100]
push eax
push esi
push edi
call fcn.00431fd9
push edi
mov dword [ebp - 0xd4], eax
call fcn.00448110
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 0x4643fa
test edi, edi
je 0x45f823
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 0x462cfc
mov edx, dword [ebp - 0x104]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], edi
jne 0x462cec
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x462ce1
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + esi + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x462d20
mov ebx, dword [ebp - 0x104]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], edi
jne 0x462d14
mov dword [ecx + 0x2c], ebx
mov eax, dword [eax]
test eax, eax
jne 0x462d09
mov ebx, dword [ebp - 0x110]
mov al, byte [ebp - 0xfc]
inc al
mov byte [ebp - 0x11d], al
jmp 0x45f823
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.00447257
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0xc], 0
je 0x4602dc
mov edx, dword [ebp - 0xfc]
add dword [edi + 0x64], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x4602dc
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 0x4602d0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x462dbb
push dword [eax + 0x14]
push esi
call fcn.0046721a
pop ecx
jmp 0x46028b
mov eax, dword [eax + 0x14]
push 0
push dword [eax + 0x34]
push dword [eax]
call fcn.00447257
jmp 0x461af5
push ebx
push edi
call fcn.0043e3e2
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.004476b6
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x464400
mov eax, dword [ebp - 0xe8]
cdq
jmp 0x4607bf
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.00453c89
mov esi, eax
add esp, 0x14
test esi, esi
je 0x46416a
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x1ec]
and dword [ebp - 0x1e0], 0
push 0
push ecx
push fcn.00451ea1
push esi
push eax
mov byte [eax + 0x95], 1
call fcn.004291a4
test eax, eax
push esi
cmove eax, dword [ebp - 0x1e0]
mov esi, dword [ebp - 0xcc]
push esi
mov dword [ebp - 0xd4], eax
call fcn.0044af3c
add esp, 0x1c
mov byte [esi + 0x95], 0
cmp dword [ebp - 0xd4], 0
jne 0x464179
jmp 0x45f520
push dword [ebx + 4]
push esi
call fcn.00445a5d
pop ecx
pop ecx
jmp 0x461af8
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.004519e0
push eax
push esi
call fcn.0044bb89
add esp, 0x14
push 2
pop eax
or dword [esi + 0x18], eax
jmp 0x45f520
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.0045cc11
jmp 0x45f9a8
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.0045cc7f
jmp 0x45f9a8
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.00447d8e
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.00465cfb
add esp, 0x18
cmp dword [ebp - 0x148], 0
je 0x462fc0
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x460f7e
push fcn.00429cb2
push 1
push 0xffffffffffffffff
push eax
push esi
call fcn.00465d93
add esp, 0x14
movzx eax, byte [ebp - 0x11c]
push eax
push esi
call fcn.0045ee7d
pop ecx
jmp 0x45fa10
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 0x46300b
push esi
call fcn.00465d1e
test byte [esi + 8], 0x20
pop ecx
je 0x460f7e
mov eax, dword [ebp - 0xe8]
push dword [eax + 4]
push dword [eax]
push dword [esi]
call fcn.004596d1
jmp 0x460c64
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xd8]
test byte [esi + 8], 0x20
je 0x4630df
lea eax, [ebp - 0x1d4]
push eax
push dword [esi]
call fcn.0045971d
pop ecx
pop ecx
test eax, eax
je 0x4630df
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
add eax, dword [ebp - 0xd8]
push eax
call fcn.00465cc5
add esp, 0xc
xor eax, eax
inc eax
mov esi, dword [ebp - 0xcc]
cmp dword [esi + 0xf8], 0
jne 0x4643ca
mov ecx, dword [esi + 0x130]
mov edx, dword [ebp - 0xd0]
test ecx, ecx
je 0x45f529
cmp edx, dword [ebp - 0x14c]
jb 0x45f529
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 0x45f520
push 9
jmp 0x464097
push esi
call fcn.00465cfb
pop ecx
jmp 0x463d3f
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 0x463131
push esi
call fcn.00465d1e
test byte [esi + 8], 0x20
pop ecx
je 0x460f7e
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
je 0x463155
push dword [eax + 4]
push dword [eax]
push ecx
push dword [esi]
call fcn.0045977d
add esp, 0x10
test eax, eax
jne 0x463fc4
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
js 0x45f5b2
mov eax, dword [ebp - 0xfc]
jmp 0x46300b
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 0x4631ac
mov eax, dword [edi + 0xb8]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4631a6
cmp dword [eax + 0x1c], ecx
je 0x46319e
mov eax, dword [eax + 4]
test eax, eax
jne 0x463192
test eax, eax
jne 0x45f5b2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edi + 0xc0]
cmp ecx, dword [edx + 0x84]
jge 0x464196
test byte [eax + 8], 0x40
jne 0x4632ce
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.0044b061
mov esi, eax
add esp, 0xc
test esi, esi
je 0x460f7e
push dword [ebp - 0xf0]
call fcn.00465c73
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 0x4632c6
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 0x4632ac
mov edi, dword [ebp - 0x108]
mov ebx, dword [ebp - 0xf8]
mov ecx, dword [edi + 0xc0]
jmp 0x4632d6
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 0x460c64
push ebx
push edi
call fcn.0043e3e2
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 0x45f8a2
test dword [esi + 0x18], 0x2000000
mov eax, dword [ebx + 8]
cdq
je 0x4633c2
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x45f520
cmp dword [ebx + 4], 0
je 0x4633d9
add dword [esi + 0x1b8], eax
adc dword [esi + 0x1bc], edx
jmp 0x45f520
add dword [edi + 0x98], eax
adc dword [edi + 0x9c], edx
jmp 0x45f520
cmp dword [ebx + 4], 0
je 0x463413
mov eax, dword [esi + 0x1b8]
or eax, dword [esi + 0x1bc]
jne 0x45f520
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jmp 0x460856
mov eax, dword [edi + 0x98]
or eax, dword [edi + 0x9c]
jmp 0x4633fc
mov ecx, dword [edi + 0xb8]
test ecx, ecx
jne 0x46347d
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xd8]
push eax
mov dword [ebp - 0xe8], eax
call fcn.00465ad6
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xd8]
push esi
call fcn.00465ad6
mov eax, dword [ebp - 0xe8]
mov edx, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x45f5b2
jl 0x463471
cmp dword [eax], ecx
jae 0x45f5b2
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x45f5b2
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x46347b
imul eax, dword [ebx + 4], 0x28
add eax, dword [ecx + 0x10]
jmp 0x463435
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
test eax, eax
jl 0x45f5b2
jg 0x4634ae
test esi, esi
je 0x45f5b2
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 0x463fc4
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.0043e3e2
cmp dword [esi + 4], 0
mov edx, eax
pop ecx
pop ecx
jg 0x4634fc
jl 0x4634f5
cmp dword [esi], 0
ja 0x4634fc
or eax, 0xffffffff
or ecx, eax
jmp 0x46352d
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test ecx, ecx
jl 0x463511
jg 0x463528
test eax, eax
jne 0x463528
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 0x45f5b2
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0xd8]
mov esi, dword [ecx]
mov eax, esi
or eax, dword [ecx + 4]
jmp 0x4634a8
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 0x460856
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.0044afb1
mov esi, eax
add esp, 0xc
test esi, esi
je 0x460f7e
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 0x463618
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x463618
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 0x4635f5
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 0x4636a5
cmp dword [esi + 0x14], 0
je 0x46368a
lea eax, [ebp - 0x26c]
push 1
push eax
call fcn.0045eb7b
push eax
push 0x488a84
push edi
call fcn.0045f37f
mov eax, dword [esi + 0x14]
add esp, 0x14
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x26c]
push eax
call fcn.00465c73
mov eax, dword [ebp - 0xd4]
pop ecx
test eax, eax
jne 0x464400
cmp byte [esi + 0x18], 0
je 0x45f5b2
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x45f5b2
imul eax, eax, 0x28
push 0
push 1
add eax, dword [ebp - 0xd8]
push eax
call fcn.00465cc5
jmp 0x460c64
imul esi, dword [ebx + 4], 0x28
push dword [ebx + 0x10]
add esi, dword [ebp - 0xd8]
push esi
call fcn.0046588d
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x4641b8
movzx eax, byte [ebp - 0x11c]
push eax
push esi
call fcn.0045ee7d
push esi
jmp 0x45fff6
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.00449130
add esp, 0x14
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x463760
cmp eax, 5
jne 0x464406
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.00465cc5
add esp, 0xc
add esi, 0x28
inc edi
cmp edi, 3
jl 0x46376c
jmp 0x45f823
push ebx
push edi
call fcn.0043e3e2
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 0x4637dd
xor eax, eax
jmp 0x4637f6
mov eax, dword [ecx + 0x44]
cmp dword [eax], 0
je 0x4637f3
cmp dword [ecx + 0x54], 0
jl 0x4637f3
jg 0x4637d9
cmp dword [ecx + 0x50], 0
ja 0x4637d9
xor eax, eax
inc eax
test eax, eax
mov esi, edx
mov eax, 0x480904
cmovne esi, dword [ebp - 0xe8]
cmp byte [ecx + 0x10], 0
jne 0x463812
mov eax, dword [ecx + 0xb0]
cmp esi, 5
jne 0x463848
push eax
call fcn.0045c510
pop ecx
test eax, eax
je 0x463832
push dword [ebp - 0xe4]
call fcn.00455d77
pop ecx
test eax, eax
jne 0x46383c
mov edx, dword [ebp - 0xf4]
mov esi, edx
jmp 0x463842
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe4]
cmp esi, edx
je 0x4638d9
cmp edx, 5
je 0x46385a
cmp esi, 5
jne 0x4638d9
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x43], 0
je 0x4641cf
cmp dword [eax + 0x9c], 1
jg 0x4641cf
cmp edx, 5
jne 0x46389d
push ecx
call fcn.00454a40
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x4638e1
push esi
push dword [ebp - 0xe4]
call fcn.004558cb
pop ecx
pop ecx
jmp 0x4638ba
push 4
pop eax
cmp edx, eax
jne 0x4638b0
push 2
pop eax
push eax
push ecx
call fcn.004558cb
pop ecx
pop ecx
mov eax, dword [ebp - 0xd4]
test eax, eax
jne 0x4638e1
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0xfc]
call fcn.00448f08
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x4638df
mov eax, dword [ebp - 0xd4]
test eax, eax
mov eax, dword [ebp - 0xf4]
cmove eax, esi
push eax
push dword [ebp - 0xe4]
call fcn.004558cb
mov esi, dword [ebp - 0xe0]
pop ecx
pop ecx
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x463910
xor eax, eax
jmp 0x463917
mov eax, dword [eax*4 + 0x486300]
push eax
mov dword [esi + 0x10], eax
call fcn.0045c510
mov dword [esi + 0xc], eax
movzx eax, byte [ebp - 0x11c]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.0045ee7d
jmp 0x4602cd
lea eax, [edi + 0x2c]
push esi
push eax
call fcn.00459bb4
jmp 0x462eda
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00447aca
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x45f520
cmp eax, 0x65
jne 0x464406
and dword [ebp - 0xd4], 0
jmp 0x463fc4
cmp dword [ebx + 4], 0
jne 0x463992
push esi
call fcn.0044c6dd
add esp, 4
jmp 0x45f520
or dword [edi + 0x58], eax
jmp case.0x45f4d3.110
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x174], al
test al, al
jne 0x4639b5
mov eax, 0x4000
test dword [esi + 0x18], eax
jne 0x45f520
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.0044815d
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x45f520
cmp al, 6
jne 0x464406
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0045f37f
add esp, 0xc
mov eax, dword [ebp - 0xd4]
jmp 0x464406
mov esi, dword [ebx + 0x10]
push esi
push dword [ebp - 0xcc]
call fcn.00467736
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test esi, esi
je 0x4602d6
push dword [esi + 8]
push edi
call fcn.00467d67
pop ecx
pop ecx
jmp 0x4602d0
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.004657c9
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x294]
push 1
push eax
call fcn.0045eb7b
add esp, 0x1c
test eax, eax
je 0x463a92
lea ecx, [edi + 0x2c]
push ecx
push eax
push dword [ebx + 4]
push esi
call fcn.00467929
add esp, 0x10
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x294]
push eax
call fcn.00465c73
pop ecx
jmp 0x461846
inc dword [esi + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.004679e1
add esp, 0xc
mov dword [ebp - 0xd4], eax
dec dword [esi + 0xa8]
jmp 0x4602dc
mov eax, dword [ebx + 0x10]
and dword [ebp - 0xf8], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x46420f
mov eax, dword [esi]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x46420f
lea ecx, [ebp - 0xf8]
push ecx
push esi
call dword [eax + 0x18]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.00467d67
mov eax, dword [ebp - 0xd4]
add esp, 0x10
test eax, eax
jne 0x464400
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.0042f348
add esp, 0x14
test eax, eax
je 0x4641fa
mov ecx, dword [ebp - 0xf8]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x45f5b2
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 0x463bad
mov edi, dword [ebp - 0xe8]
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x463b9c
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.00467d67
mov eax, dword [ebp - 0xd4]
add esp, 0x1c
test eax, eax
jne 0x464400
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 0x46037a
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 0x463c36
push eax
call fcn.00465cfb
jmp 0x46028b
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.00467d67
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.0045ee7d
push esi
call fcn.00466004
add esp, 0x2c
test eax, eax
jne 0x460006
jmp 0x4602d0
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 0x45f520
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.00467d67
mov eax, dword [ebp - 0xd4]
add esp, 0xc
test eax, eax
jne 0x464400
mov eax, dword [ebp - 0xe8]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xfc]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x463067
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 0x463070
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.0045ee7d
pop ecx
pop ecx
test eax, eax
jne 0x464400
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.00467d67
add esp, 0x10
and dword [edi + 0x58], 0xfffffffe
jmp 0x4602d0
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x46420f
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x46420f
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je 0x45f5b2
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 0x463e1b
mov edi, dword [ebp - 0xe8]
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x463e0a
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.00467d67
mov eax, dword [ebp - 0xd4]
add esp, 0x18
mov esi, dword [ebp - 0xcc]
test eax, eax
jne 0x463e91
cmp dword [ebx + 4], eax
je 0x463e91
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 0x463ec9
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x463ec9
mov cl, byte [ebx + 3]
push 4
pop eax
cmp cl, al
jne 0x463eb5
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x45f520
movzx eax, cl
cmp cl, 5
push 2
pop ecx
cmove eax, ecx
mov byte [edi + 0x56], al
jmp 0x461846
inc dword [edi + 0x64]
jmp 0x461846
push ebx
push edi
call fcn.0043e3e2
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 0x45f520
push ebx
push edi
call fcn.0043e3e2
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 0x463f2c
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x2c]
cmp esi, edx
cmovb esi, edx
push ecx
call fcn.004479e4
pop ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test esi, esi
jle 0x463f4a
mov dword [eax + 0xa4], esi
jmp 0x463f50
mov esi, dword [eax + 0xa4]
push ecx
call fcn.00448110
pop ecx
mov ecx, dword [ebp - 0xfc]
mov eax, esi
jmp 0x46055a
cmp dword [esi + 0xb4], 0
je 0x463fb2
push 2
pop eax
test byte [edi + 0x58], al
jne 0x463fb2
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x463f86
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x463fb2
push eax
push edi
call fcn.0046472f
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.0044af3c
add esp, 0x18
cmp dword [ebx + 8], 0
je 0x45f520
jmp 0x463fc4
mov edi, dword [ebp - 0x108]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x118]
add ebx, 0xffffffec
add ebx, eax
jmp 0x45f5b2
mov dword [edi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x464056
mov al, byte [ebx + 3]
test al, al
je 0x46402b
movzx eax, al
push dword [eax*4 + 0x486284]
push str._s_constraint_failed
push edi
call fcn.0045f37f
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x46403c
push dword [ebx + 0x10]
push dword [edi + 0x2c]
push str._z:__s
push dword [ebp - 0xcc]
call fcn.00453c89
add esp, 0x10
mov dword [edi + 0x2c], eax
jmp 0x46403c
push dword [ebx + 0x10]
push 0x488a84
push edi
call fcn.0045f37f
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.0042d5bc
add esp, 0x14
push edi
call fcn.00464c45
mov esi, dword [ebp - 0xcc]
pop ecx
push 5
pop ecx
mov dword [ebp - 0xd4], eax
cmp eax, ecx
je 0x4640d2
cmp dword [edi + 0x50], 0
push 0x65
pop eax
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
jmp 0x464118
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0045f37f
pop ecx
pop ecx
push 5
pop eax
jmp 0x464406
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0045f37f
pop ecx
pop ecx
push 5
jmp 0x460254
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 0x464118
mov eax, dword [ebp - 0xf4]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.0045f37f
add esp, 0xc
xor eax, eax
inc eax
jmp 0x464400
push 8
jmp 0x464097
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.00465153
mov eax, dword [ebp - 0xd4]
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00478405
leave
ret
mov eax, 0x204
jmp 0x464406
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x56], cl
jmp 0x464406
mov esi, dword [ebp - 0xcc]
push 7
pop eax
mov dword [ebp - 0xd4], eax
push esi
call fcn.004591df
mov eax, dword [ebp - 0xd4]
pop ecx
push 7
pop ecx
cmp eax, ecx
je 0x460f84
jmp 0x464409
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0xd4], 1
call fcn.0045f37f
pop ecx
pop ecx
mov eax, dword [ebp - 0xd4]
jmp 0x464400
push esi
call fcn.0042b3c4
push eax
push 0x488a84
push edi
call fcn.0045f37f
add esp, 0x10
jmp 0x4641ad
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.0045f37f
add esp, 0xc
jmp 0x4641ad
mov eax, dword [ebp - 0xe8]
push dword [ebp - 0xf8]
call dword [eax + 0x1c]
pop ecx
jmp 0x460f7e
push 6
jmp 0x460254
mov eax, dword [esi + 0x130]
test eax, eax
je 0x46423f
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0x14c]
jb 0x46423f
push dword [esi + 0x134]
call eax
pop ecx
test eax, eax
jne 0x4630d8
push 0
push edi
call fcn.0045ef74
pop ecx
pop ecx
test eax, eax
jne 0x464406
push 1
push edi
call fcn.0045f08b
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 0x4642b9
mov eax, 0x1000
test word [esi + 8], ax
je 0x46429d
push esi
call fcn.00465b02
pop ecx
test eax, eax
jne 0x460f7e
push esi
call fcn.00465bb0
mov eax, dword [ebp - 0x148]
add esi, 0x28
inc eax
pop ecx
mov dword [ebp - 0x148], eax
cmp eax, dword [ebx + 8]
jl 0x464283
mov esi, dword [ebp - 0xcc]
cmp byte [esi + 0x45], 0
jne 0x460f84
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 0x464118
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 0x4643a3
test esi, esi
mov esi, dword [ebp - 0xcc]
je 0x464323
push 0x204
push esi
call fcn.00459592
pop ecx
pop ecx
mov al, 1
jmp 0x464364
test edx, edx
je 0x46433a
cmp dword [esi + 0xa0], 0
jle 0x46433a
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x46408d
push 1
push edi
mov dword [ebp - 0x174], edx
call fcn.0045ef74
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
jne 0x464118
mov eax, dword [ebp - 0x174]
mov byte [ebp - 0x148], al
push edi
mov byte [esi + 0x43], al
call fcn.00464c45
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x464397
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 0x4640cc
push esi
call fcn.004492f1
pop ecx
jmp 0x464070
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.0045f37f
pop ecx
pop ecx
jmp 0x4640ec
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.0044c5a7
push eax
push 0x488a84
push edi
call fcn.0045f37f
add esp, 0x10
jmp 0x4639f9
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 0x46443e
cmp eax, 0xc0a
je 0x46443e
push eax
call fcn.0044c5a7
push eax
push 0x488a84
push edi
call fcn.0045f37f
mov eax, dword [ebp - 0xd4]
add esp, 0x10
push eax
push esi
mov dword [edi + 0x50], eax
call fcn.0045c580
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.0042d5bc
push edi
call fcn.00464c45
add esp, 0x20
cmp ebx, 0xc0a
jne 0x46448b
push esi
call fcn.004542f9
add esp, 4
mov al, byte [ebp - 0x11d]
mov dword [ebp - 0xd4], 1
test al, al
je 0x464118
movzx eax, al
dec eax
push eax
push esi
call fcn.00459231
pop ecx
pop ecx
jmp 0x464118